用途:把 Omni 视图中的维度、度量、主键及关系文件里的逻辑导出为 dbt MetricFlow YAML。每个由 dbt 支撑的视图对应一个 semantic model;topic 可选,用于限定视图和字段,其 default_filters 与 sample_queries 转为 saved queries。YAML 合并进 dbt 后,Omni 在下一次 schema 刷新或 dbt sync 时导入,且 Omni 模型层仍优先;技能的收尾环节会移除 Omni 覆盖,使 Omni 回退到 dbt 定义。导出的 YAML 在用户批准写入或提升前视为草稿。
主要能力:视图到 dbt 模型与实体的映射、维度与度量映射、过滤器与 saved query 转换、时间粒度处理、名称冲突检查。需参考 FIELD-MAPPING.md、YAML-REFERENCE.md、FALLBACK-TO-DBT.md。
用法前置:需安装 Omni CLI 并配置 profile(支持 API key 或 OAuth);检查 dbt 与 mf 版本,如缺 mf 需与 dbt 及适配器装在同一 Python 环境,命令示例:pip install "dbt-metricflow[dbt-snowflake]"(按项目适配器替换)。
限制与注意:MetricFlow 的 measure、metric、saved-query 名称为项目级全局;维度名不能是时间粒度关键字;MetricFlow 无按模型设置周起始日;dimension expr 不会喂给 measure;metric filter 会丢弃无匹配行的分组;saved-query group_by 须用对象语法;过滤器须限定为 <entity>__<dimension>;存在模型层 sql 覆盖的维度需停下确认;被忽略字段以 ignored: true 隐藏;引用视图需先推送 dbt 分支再同步。不支持的对象(如 sum_distinct_on、模板 SQL、filter-only 字段、跨视图表达式、不支持的连接、相对时间过滤等)应跳过并报告。具体命令、映射细节与已知问题以技能文档为准。