Skip to content

MetricFlow 0.207.1

Latest
Compare
Choose a tag to compare
@plypaul plypaul released this 28 Jan 02:45
· 71 commits to main since this release
3b0edfc

Changes from 0.206.0:

Note: this release is compatible with / requires dbt-core >= 1.9.0, < 1.10.0 and is cut from 5bb13511d36c6122527a1bd12de9d6e0707a9ddc. The prior version 0.207.0 on Pypi depended on a version of dbt-semantic-interfaces that was later than the versions supported in the latest official release of dbt-core (1.9.1 as of this note).

Breaking Changes

  • Changes MetricFlowQueryRequest.where_constraint to where_constraints and now accepts a list (#1431)
  • Require Python >=3.9 (#1470)
  • Require dbt-core >= 1.9.0, < 1.10.0 (#1615 )

Features

  • Enable predicate pushdown for categorical dimensions (#1011)
  • Support sub-daily granularity options in SQL rendering for all supported SQL engines. (#1258)
  • Adds a new dataflow plan node to re-aggregate metrics using window functions. Needed to calculate cumulative metrics at non-default granularities. (#1274)
  • Build dataflow plan for cumulative metrics queried with non-default granularity. (#1281)
  • Remove restriction on querying non-default granularities with cumulative metrics. (#1282)
  • Enable predicate pushdown optimization by default for all callers (#1011)
  • Use Metric.time_granularity to resolve metric_time. (#1310)
  • Support multiple time spines with different granularities. (#1348)
  • Enable sub-daily queries without metrics. (#1359)
  • Enable sub-daily time constraints. (#1367)
  • Support combining AggregateMeasuresNodes where metric input measures have aliases, so long as there are no duplicates. (#1375)
  • Handle custom granularities in DataflowPlan. (#1382)
  • Support custom granularities in query parsing. (#1413)
  • Support conversion metrics queried with custom granularities. (#1475)
  • Basic support for join_to_timespine metrics with custom grain in the group by. (#1505)
  • Use CTEs instead of sub-queries in generated SQL. (#1040)

Fixes

  • When querying multiple agg time or metric time dimensions with a cumulative metric, select all of them from the time spine table. (#1271)
  • Remove extraneous where filter subqueries added by predicate pushdown (#1011)
  • Add Column header to the exported CSV from query command
  • Allow metrics with matching input measures where one is cumulative and one is not. (#1374)
  • Fixes bug where conversion metric query fails when filter with base semantic model's dimension is provided (#1210)
  • Bug fix: ensure that granularity requested for non-additive dimension is respected. (#1383)
  • Bug fix: when querying a join_to_timespine metric with a metric_time filter that is not included in the group by, unexpected output rows were included. (#1450)
  • Remove unnecessary group bys that make queries less efficient. (#1453)
  • Add new validation that checks for SCDs in the join path to make grouping by metric_time required in this case. (#1451)
  • Make ID generation thread-safe (#1473)
  • Prevent SourceScanOptimizer from combining nodes that use the same input metric alias in different derived metrics (#1494)
  • Fix mf tutorial experience. (#1631)
  • Compatibility Issue with dbt-core 1.9.0 and dbt-metricflow 0.7.1. (#1589)
  • dbt-core dependency issue with metricflow==0.207.0. (#1632)

Under the Hood

  • Add test coverage for more filter + join interactions (#1240)
  • Add dataflow plan optimizer to replace build-time predicate pushdown (#1011)
  • Added filtering for DWH validation tasks and saved query support (#1271)
  • Refine subquery ID generation. This may result in changing subquery ids for rendered SQL. (#1280)
  • Move categorical dimension predicate pushdown to DataflowPlanOptimizer (#1011)
  • Consume cumulative-specific metric type params from new cumulative_type_params field. (#1293)

Dependencies

  • Allow pydantic 2.x installations (#1299)

Contributors