Release 0.11.0 - Improved UI Workflows for Tables and Materializations
Released: Nov 17, 2022
TL;DR
This release is packed with improvements to streamline your workflow!
It adds a new UI to view and manage Tables, a feature introduced in the previous release. In addition, you can now kick off Materializations directly from the UI without accessing the Python SDK. Finally, we made a host of other small-but-mighty changes to the frontend and backend to improve your workflow.
Featured in this release
- View and manage Tables in the UI
- Run a Materialization from the UI
- Improved statuses for Materializations
- Approximate equality in Scowl
- A more powerful
Lookup
function
View and manage Tables in the UI
See all of your tables in one place! From the main menu, click "Tables" to see every table your team has uploaded to Sumatra.
Clicking on a table name displays all available versions and their statuses, and clicking the row for a version displays the schema.
Check out the Tables documentation to learn how to upload and use Tables.
Tip
Click the copy button next to the version number to add it to your clipboard.
Run a Materialization from the UI
The Materializations view, added in 0.9.1, provided visibility into the status of materialization jobs initiated by the Python SDK. This release expands on that with the ability to run a Materialization directly from the UI.
To create a new Materialization, start from an existing Materialization and clone its configuration as a starting point.
- Go to the Materializations view
- Click the menu on the right side of a materialization
- Click "Clone" to access the workflow.
Improved statuses for Materializations
Old Status | New Status |
---|---|
New | Processing |
Offline | Processing |
Online | Ready |
Error | Error |
The status of materializations were previously displayed by icons, without any other explanation. We revamped the status indicators with clear text labels so you always know what's going on.
When creating a new table or updating a table via the Python SDK, the statuses provided by the .status
property are now more clear. The statuses are only Processing
, Ready
, and Error
.
Tip
If your materialization displays an Error
status in the UI, hover over the error status indicator to see the error message.
Approximate equality in Scowl
The problem with floating point equality
When operating with floating point numbers, often two numbers that are expected to be the same actually have slightly different values. As a result, the standard equality comparison operator fails to capture the developer's intent.
-- as expected
(0.1 + 0.1 = 0.2) is true
-- huh?
(0.1 + 0.2 = 0.3) is false
Absolute comparison operator
To help, we added a ~=
operator for approximate equality.
0.1 + 0.2 ~= 0.3
(1 ~= 9) is false
(1e-20 ~= 9e-20) is true
Note that the operator is the same as the new IsCloseTo
function
(with default tolerance).
Relative comparison function
Additionally, this release introduces the IsRelativelyCloseTo
function to handle situations where relative differences are more relevant.
(12e-20 - 9e-20).IsRelativelyCloseTo(3e-20)
IsRelativelyCloseTo(1e-15, 9e-15) is false
This function is typically preferred when comparing numbers very close to zero. See the full documentation for details, including the tolerance argument.
A more powerful Lookup function
The Lookup
function for querying Tables has been enhanced in a couple
of key ways.
Arbitrary key expression
The key, which follows the by
keyword in the lookup,
is no longer required to be a named feature. Instead,
you can now use any arbitrary expression as the key.
Lookup<geozip>(lat, lng by Join('', '9', '02', '10')))
Value now optional
The value, which precedes the by
keyword in the lookup,
is now optional. When omitted, the function returns true
or false
, indicating whether the key is present in the table.
Lookup<geozip>(by "notanip") is false
Additional improvements
- Fixed bug that caused collision between Scowl keywords and struct field names
- Fixed bug that occasionally timed out during aggregate writes
ZipLocate
is now deprecated in favor of using Tables
Questions or feedback?
Questions or feedback about this release? Email us at hello@sumatra.ai or message us in our Slack Community!