Metabase如何基于JSON字段提取的数据创建Dashboard过滤器
完全可以实现,按下面的步骤操作即可
- 方案1(兼容所有BI工具):在底层数据集的SQL查询中提前提取需要用作过滤的JSON字段,将其作为正式字段输出,就可以和普通字段一样配置过滤器,示例写法:
SELECT -- 保留你原来需要的其他查询字段 json_extract(meta, '$.mp_origin_meta') AS booking_type, -- 其他需要用作过滤的JSON字段可以按同样规则提前提取 meta->'$.xxx' AS custom_field FROM 你的业务表名
- 方案2(无需修改底层查询,适合支持计算字段的Dashboard工具):直接在Dashboard的数据集管理页新建计算字段,表达式填写你用到的JSON提取语句
json_extract(meta, '$.mp_origin_meta'),将字段类型设置为和提取结果匹配的类型(比如字符串、布尔值、数值),保存后该计算字段就能直接加入过滤器组件使用。 - 注意事项:如果提取的是JSON数组类型的值,需要先对数组做展平处理再用作过滤,避免出现匹配失效的问题;目前主流支持JSON操作的数据库(MySQL5.7+、PostgreSQL、ClickHouse等)都兼容你提到的两种JSON提取写法,直接在计算字段里使用即可,不需要额外适配。
内容的提问来源于stack exchange,提问作者Fatemeh Rostami
相关产品推荐
相关产品推荐

