-
Notifications
You must be signed in to change notification settings - Fork 136
Get MF using the new dsi transformations #1877
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get MF using the new dsi transformations #1877
Conversation
|
Thank you for your pull request! We could not find a changelog entry for this change. For details on how to document a change, see the contributing guide. |
edd4e74 to
a48c2f4
Compare
3bc07c3 to
ec37377
Compare
ec37377 to
bdcdd56
Compare
a48c2f4 to
50c1434
Compare
50c1434 to
1bb321e
Compare
bdcdd56 to
0fd70d9
Compare
1bb321e to
68f8985
Compare
Version BUUUUUUUMP This PR is just here to pull in the new transformations and such from dsi. Early commits in this PR will be pinned to commits while I'm working on feeding dbt-labs/dbt-semantic-interfaces#436 to the merge-asaurus. Snapshot updates reflect the fact that now(*) we produce more metrics to replace measures, reflecting the changes in structure for the new user YAML. (*) "now" is true, but ONLY IN TESTS. Because of a transformation rule that exists only in MF right now, we don't use the list of transformations directly from dsi. See upstack #1877 for the PR that brings these changes to prod. OTH, tests DO run on the default list of metric transformations from dsi, so the snapshots needed more immediate updating.
68f8985 to
c718dfe
Compare
90b07c1 to
5b55953
Compare
c718dfe to
d0c497e
Compare
| # These individual rules come from rule_set.convert_legacy_measures_to_metrics_rules, but | ||
| # dsi requires AddInputMetricMeasuresRule, and metricflow requires that we do NOT run that rule | ||
| # as it is incompatible with a parser like dbt-core that pre-populates input measures. | ||
| CreateProxyMeasureRule(), | ||
| FlattenSimpleMetricsWithMeasureInputsRule(), | ||
| ReplaceInputMeasuresWithSimpleMetricsTransformationRule(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we're properly motivated, I can refactor this in dsi to make this cleaner here, but for now, I'd really like to get this in and working today.
courtneyholcomb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
curious what happened with AddInputMetricMeasuresRule / if that's an issue? But this looks good
|
It took me a bit of digging to figure this out, but here's what I know about the current situation:
So, imo, the most reasonable clean-up outcomes we could pursue here:
|

Depends on #1876
Upstream PR bumps the dsi version, implicitly updating tests to using the default ruleset from dsi. We can't do that for production MF rn because MF uses an extra transformation internally, so this PR adds all the newer built in PRs from dsi to metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py to be used in real circumstances.
(If time was less limited before coalesce, I'd prefer to move the rule upstream if possible, but I don't want to pick up extra work before code freeze.)
Edit: There's also a rule (AddInputMeasuresToMetrics) that only works in dsi. It probably merits a refactor/rewrite later to clean up the usage code here, but I'd rather prioritize getting this updated here for now.