Release - July 12th, 2021
#
โจ New โจ#
MaterializationsDetails
Product Component
Metrics Framework
More Detail
We're excited to announce that Materializations is a mechanism in Transform that enables the user to produce denormalized tables in a user's data warehouse. These are pre-computed and never evicted from the cache, and can be surfaced in downstream tools directly from the data warehouse.
Users can define a set of metrics and corresponding dimensions that are most commonly used and need to be accessed frequently by their organizations, which Transform will compute ahead of time at a scheduled cadence and write them to the data warehouse.
Verification Steps
We've reached out to most of you about deploying the materialization branch as it depends on a few changes in the framework around time granularity..
- Configure a materialization: Here is an example of a materialization definition that reflects data from a booking service company.
materialization: name: user_bookings_summary # name your materialization. this will be the table name written in your data warehouse. description: #add an optional description. metrics: # list all the metrics you want to materialize in your materialization. all metrics must be defined in your metrics.yaml. - bookings - booking_value - customer_service_tickets - guest_host_messages dimensions: #list all corresponding dimensions you want to include for these metrics. these must all be defined in your data sources. - ds - guest__signup_channel
# Optional destinations sections # By default the location is the datawarehouse. # Optionally provide additional destinations for the materialization and rollup additional_destinations: - location: FAST_CACHE format: WIDE - location: FAST_CACHE format: WIDE rollups: [ds] # provide the location, format, and dimensions for rollups # - locations: [DW, FAST_CACHE] # DW is the only supported option currently # format: WIDE # WIDE is the only supported option currently # dimension_sets: # rollups allow you to create separate tables that group by a subset of the dimensions in your materialization # - [ds] #add a dimension you want to a rollup by. this should be a subset of the dimensions you list in your materialization. These rollups will be stored in separate tables than the core materializations
- Calling a Materialization:
mql materialize --name my_materialization --start-time <date> --end-time <date>
**Usage**Options: --materialization-name TEXT Name of materialization to materialize [required]
--start-time TEXT iso8601 timestamp to materialize from --end-time TEXT iso8601 timestamp to materialize to -t, --timeout INTEGER Sets the timeout to wait for query completion. Not applicable in --detach mode.
--detach BOOLEAN Returns the created query ID to allow for asynchronous querying.
--help Show this message and exit.
#
Measure Based ConstraintsDetails
Product Component
Metrics Framework
More Detail
You can now add constraints to your measures in case you want to bound your metric result set to particular values. This configuration occurs when you define your metric.
This feature is available with the new branch we're rolling out to you to support.
Verification Steps
Example metric config with a constraint:
name: messages_on_days_when_there_were_a_lot_of_messagesdescription: Messages sent of any type, but only for days where message count exceeds the threshold (2000)owners: - messages-team@thecompany.comdisplay_name: Messages Senttype: measure_proxytype_params: measure: messagestier: "2"**constraint: | where messages > 20**
#
Markdown for Metric DefinitionDetails
Product Component
Metrics Catalog
More Detail
We now support markdown in our metrics definition editing module in the user interface - on a metric page.
Verification Steps
- Navigate to a metric page where you are a metric owner
- Choose Edit in the top right-hand corner in the configuration box
- Test your favorite markdown shortcuts!
#
Various UI aesthetic ImprovementsDetails
Product Component
Metrics Catalog
More Detail
This description contains a few different small usability improvements in the UI:
- We've updated the bottom of our left nav menu to distinguish the logout button a little more clearly.
- We removed the "Metric:" introduction on our metric page because it's a little redundant.
- We now sort the list of users and teams owners by the current owners in the Owner selection menu so it's clear who owns the metric while you're selecting others
Verification Steps
- We've updated the bottom of our left nav menu to distinguish the logout button a little more clearly.
- We removed the bolded "Metric:" introduction on our metric page because it's a little redundant
- Navigate to a Metric and choose the "Add/Remove Owners" but and confirm that the owning teams and/or users are listed at the top. Previously, you had to search through them to identify who owned the metric
#
API ExplorerDetails
Product Components
Metrics Catalog
More Detail
We've added an API explorer into the user interface so you can explore GraphQL requests in the interface directly. This is useful for troubleshooting and exploring the capabilities of our APIs.
Verification Steps
- Navigate to Settings โ> MQL Server API explorer
- Start writing GraphQL requests in the console
#
Ability to Delete Saved QueryDetails
Product Component
Metric Catalog
More Detail
We've added a menu option under saved queries that allow you to delete them if you are the creator. In the case of wanting to remove your test queries or if you made a mistake, fear not!
Verification Steps
- Open the Queries panel on the chart and navigate to a query you created
- Open the three-dot menu on the right-hand top corner
- Select 'delete query'
- Confirm your selection
#
Added Verbose Configurations to template repoDetails
More Detail
In order to provide more details around how to build out data sources and metrics, we've added a verbose data source and metric template into our example configs in our template repository.
These files are commented out by default but include detailed instructions on what each field and area in the data source and metric YAML means.
This configuration template will be useful for everyone but especially new users of Transform who are just getting started, and the intent is that you can copy these and fill in your own information.
Verification Steps
When deploying Transform, there's a template repository at metrics-config-template/example/
that includes a set of test data sources including rainfall and stations. In the same folder, we've added two files - one for data sources and one for metrics, that provide comments, instructions, and examples for how to configure these files.
The files are example_datasource.yaml
and example_metric.yaml
#
Amazon Athena SupportDetails
Product Component
Metrics Framework
More Detail
We now support Amazon Athena as a source data warehouse to Transform, and among other things, we're excited to add support for our first database named after a Greek Goddess (of wisdom).
Verification Steps
Work with us to deploy Transform with your Athena instance.
#
๐ Bug Fixes ๐#
Install Page Hanging IssueDetails
Product Component
Metrics Catalog
More Detail
If you tried to access: https://app.transformdata.io/install without being logged in first, the page would hang indefinitely. We hope you didn't think that we didn't want you to install Transform - we really do! So, we fixed it and now lead you to a page with more information and login links.
Verification Steps
Visit https://app.transformdata.io/install before logging into the app and you should see a page that prompts you to log in as opposed to this one:
#
Secondary Time Dimension BugDetails
Product Component
Metrics Framework
We identified and fixed an issue where configuring a time dimension that wasn't primary would cause models to break. We fixed this issue and you can now specify both primary and non-primary time dimensions, as originally intended.
Verification Steps
Add secondary time dimensions to your model using is_primary:false