如何在Power BI的Deneb可视化中使用两个不相关表格?
在Deneb中使用Power BI无关联表的解决方法
方案一:创建合并计算表(快速适配现有可视化逻辑)
通过DAX将两个无关联表的所需字段合并为一个计算表,绕过Power BI的关系校验:
CombinedData = UNION( SELECTCOLUMNS(people, "Type", "Person", "ID", people[ID], "Name", people[Name], "StartDate", people[BirthDate]), SELECTCOLUMNS(events, "Type", "Event", "ID", events[EventID], "Name", events[EventName], "StartDate", events[EventDate]) )
创建完成后,将这个计算表的字段拖入Deneb字段面板,即可正常按Vega时间线示例配置映射。
方案二:在Deneb代码中独立加载多数据源(更灵活)
不依赖Power BI自动合并的dataset,直接在Vega/Vega-Lite代码中定义两个独立数据源:
{ "data": [ {"name": "people", "url": "pbiviz://data/people"}, {"name": "events", "url": "pbiviz://data/events"} ], "layer": [ { "data": {"name": "people"}, "mark": "point", "encoding": { "x": {"field": "BirthDate", "type": "temporal"}, "y": {"field": "Name", "type": "nominal"}, "color": {"value": "blue"} } }, { "data": {"name": "events"}, "mark": "point", "encoding": { "x": {"field": "EventDate", "type": "temporal"}, "y": {"field": "EventName", "type": "nominal"}, "color": {"value": "red"} } } ] }
- 无需在字段面板拖任何字段,Deneb会直接读取Power BI模型中的对应表
- 若需联动Power BI切片器,筛选上下文会自动应用到这两个数据源
- 可通过
concat、layer或facet等Vega-Lite组件组合两个数据集的可视化效果
报错原因说明
Power BI可视化框架默认要求所有用于可视化的字段来自存在关系的表,直接拖动无关联表的字段会触发关系校验错误。上述两种方法分别通过预合并数据或绕过自动合并逻辑解决了这个问题。
内容的提问来源于stack exchange,提问作者Carlo Mendoza
相关产品推荐
相关产品推荐

