v0.200.0
This release represents a complete overhaul of MetricFlow targeted at a first class integration with dbt! Complete changelog below:
MetricFlow 0.200.0 - August 02, 2023
Breaking Changes
- License Change - Version 0 to 0.140.0 was covered by the Affero GPL license. Version 0.150.0 and greater is covered by the BSL license. (#465)
- Removing time_format from DimensionTypeParams (#494)
- Use Templates For Defining Metric Filters (#505)
- Rename Metric.constraint to Metric.filter (#511)
- Deprecate and refactor CLI commands
- Removes async query and query cancel methods from SqlClient protocols (#577)
- Remove time spine introspection and table creation, which may break cumulative metric queries (#592)
- Remove SqlEngineAttributes construct from SqlClient interface in favor of dialect rendering and engine type properties (#577)
- CLI needs to be ran in a dbt project root directory
- Remove expr & ratio metrics and bundle with derived metrics. (#504)
explain_get_dimension_values
&get_dimension_values
take a list of metrics parameters- Remove MetricFlow config file - all future configuration must originate with the dbt project (#624)
- Update to dbt-semantic-interfaces==0.1.0.dev8. (#634)
- Changed the --group-bys option in mf query to be --group-by
- Add Support for
primary_entity
in Semantic Models (#694)
Features
- Added new entity calls to CLI/MetricFlowEngine
- Script to Generate Snapshots for Supported SQL Engines. (#609)
- Add dbt adapter support for postgres and enable it for tests (#578)
- Use dbt adapter to run queries and warehouse validations from MetricFlow CLI (#624)
- Enable Snowflake queries in dbt <-> MetricFlow CLI integration (#579)
- Refactor
mf tutorial
to work alongside a dbt project. - New package
dbt-metricflow
which bundles dbt-core and metricflow and dbt-adapters - Add Support for Python 3.10 / 3.11 (#659)
- Include metric_time in List Dimensions Output Where Appropriate (#673)
- Enable support for Redshift queries in dbt-metricflow integration (#582)
- Enable Databricks support for the dbt-metricflow integration (#580)
- Enable support for BigQuery for dbt metricflow integration users (#581)
Fixes
- Removes MySQL from SqlEngine and SqlDialect options since it is not supported. (#0)
- Derived metrics were not respecting the constraint defined in the original input metric's definition.
- Fixes type error in BigQuerySqlExpressionRenderer (#536)
- Fix broken type signature for log_call decorator
- Apply transformations to dbt-generated serialized model to fix issue with query generation (#624)
- Improve error message rendering in MetricFlow CLI (#646)
- Added --version and fix manifest transformer rules for dbt-core-=1.6.0b8 (#650)
- Include granularity suffix on time dimension name rendering for all time dimension granularities
- Clean up list dimensions outputs
Under the Hood
- Adding Changie (#457)
- Ensure use of ValidationIssue instead of ValidationIssueType. ValidationIssueType was from a time before ValidationIssue classes had proper inheritance, and it's continued use was become problematic for typing.
- Removing
model
from theModelValidator.validate
return type. The model isn't altered, and thus doesn't need to be returned. - Moving AggregationType enum into dbt-semantic-interfaces
- Moving errors relevant to dbt_semantic_interfaces to dbt_semantic_interfaces
- Migrating to RapidFuzz (#470)
- Matching dbt-core issue templates (#457)
- Removing the transform CLA (#450)
- Pinning dbt-core to 1.4 (#475)
- Removing YamlLint (#472)
- Add ObjectToReference class in preparation of removing the .reference calls (##463,, ##464)
- Moving all *Reference objects to dbt-semantic-interfaces.
- Add pytest flag to use a persistent source schema for faster repeat testing. (#482)
- Renamed instances of and related to Identifiers to Entities. (#dbt-semantic-interfaces#9)
- Improves typechecking coverage by updgrading to MyPy 0.942 and removing blanket ignore all imports setting (#536)
- Push mypy to run using local environment packages in pre-commit. Developers should always use a clean virtual environment to ensure consistency with CI. (#530, #536)
- Update mypy to 1.3.0 (#546)
- Migrate from Poetry -> Hatch for Project / Package Management (#549)
- Enable the ability to return only dimensions requested in the query, specifically used for dimension values queries.
- Raising a UnsupportedEngineFeatureError instead of a generic RuntimeError when a data platform doesn't support a feature
- Remove SqlIsolationLevel constructs and other vestigial remnants of defunct SqlClient features (#577)
- Raise a more specific exception when a Metric isn't found during linking.
- Update test environment configuration to allow for more streamlined dependencies
- Remove DDL and other unused methods from SqlClient protocol
Dependencies
- Switches MetricFlow SemanticManifest dependencies from the local dbt semantic interfaces package to the initial dev release (#540)
- Clean up unused dependencies, relax tabulate version pin (#545)
- Update dbt dependencies to support development on the new integration (#571)
- Move SQLAlchemy and SQL engine dependencies out of the production package (#672)
- Update dependencies and attribution file in preparation for 0.200.0 release (#703)