v0.120.0
Highlights
We now support Databricks! If you use Databricks for your metrics data warehousing needs, give it a go! You'll need your server hostname
, http path
, and access token
(see the databricks documentation on where to find these). You'll need to use the keys dwh_host
, dwh_http_path
, and dwh_access_token
for these properties in your data warehouse configuration.
We have also fixed some bugs and improved support for semi-additive measures, and added the ability to use measure-specific constraints inside of more complex metric definitions!
Breaking Changes
- Minor API change on SqlClient protocol could break existing API users writing custom SqlClient classes. MyPy should detect this issue. See the relevant PR for details.
Added
- Support for Databricks! Now you can use Metricflow with your Databricks-backed warehouse! (@courtneyholcomb)
- The ability to define constraints on input measures for ratio and expr metric types. This is a temporary quality of life improvement until full-featured derived metrics (i.e., metrics based on other metrics) are available. (@tlento)
- Support for different time granularities, improved group by expression handling, and corrected constraint handling on semi-additive measures (@WilliamDee)
- Support for
count
as a measure aggregation type. Note this is implemented as an alias aroundsum
, so use of theDISTINCT
keyword in expressions is not supported, and will be blocked via validation in a separate update. Users wishing for aCOUNT(DISTINCT thing)
equivalent should continue to use thecount_distinct
aggregation type. (@WilliamDee)
Fixed
- Resolved incorrect constraint handling with semi-additive measures (@WilliamDee)
- Eliminated Dataclass deserialization errors on default parameters (@tlento)
Updated
- Optimized multi-hop join candidate selection (@plypaul)
- Improved error handling and error messages on config validation (@QMalcolm, @tlento)
- Streamlined our project README (@nhandel)
- CLI now accepts metric-only queries in limited circumstances. See the assertion checks in the PR for details. We will announce this as a new feature when it is complete, but for the time being users may try it out to see if it meets their needs in its current form. (@WilliamDee)