Skip to content

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.

  1. View and manage Tables in the UI
  2. Run a Materialization from the UI
  3. Improved statuses for Materializations
  4. Approximate equality in Scowl
  5. A more powerful Lookup function

View and manage Tables in the UI

1-tables-and-versions-large

See all of your tables in one place! From the main menu, click "Tables" to see every table your team has uploaded to Sumatra.

2-tables

Clicking on a table name displays all available versions and their statuses, and clicking the row for a version displays the schema.

3-table-versions

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

4-materialize-from-UI-large

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.

5-clone-materialization

To create a new Materialization, start from an existing Materialization and clone its configuration as a starting point.

  1. Go to the Materializations view
  2. Click the menu on the right side of a materialization
  3. 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!