处理 JSON
过滤JSON
在查询构建器中,Metabase无法解析列中的JSON,因此您只能通过“为空”或“不为空”进行过滤。
JSON展开
对于某些数据库,Metabase可以将JSON列展开为其组成部分字段,然后您可以使用查询构建器进行过滤。
这里是一个包含JSON列的表格。
Metabase可以展开该JSON列,使得JSON对象中的每个键都成为表中的一个单独列。以下是上面图片中JSON列的展开字段
以下是表中的值
这种展开允许您过滤原始JSON对象中找到的值。
Metabase将在展开的列名前加上原始包含JSON的列名。您可以在“管理设置” > 表元数据中更改列名,或者通过创建一个模型并编辑列元数据。
切换数据库的JSON展开
如果您注意到由于JSON展开导致性能下降,我们建议您将其关闭。
要关闭数据库的JSON展开
- 点击右上角的齿轮。
- 选择管理设置
- 访问数据库选项卡。
- 选择相关的数据库。
- 点击显示高级选项。
- 切换允许展开JSON列。
- 滚动到页面底部并点击保存更改按钮。
- 点击立即同步数据库模式。
- 点击立即重新扫描字段值。
切换特定列的JSON展开
如果性能下降,或者您希望保留原始列中的JSON,您可以在其设置中关闭单个字段的展开。
- 点击右上角的齿轮。
- 选择管理设置。
- 访问表元数据选项卡。
- 选择包含您要更新的字段的数据库。
- 选择包含该字段的表。
- 选择包含原始JSON的字段。
- 滚动到展开JSON选项并选择是或否。如果列已展开,Metabase会将其从视图中隐藏,因此如果您想再次显示JSON列,需要将列的可见性更改为任何地方。
- 滚动到页面底部并点击重新扫描此字段。
为了使JSON展开工作,该列的数据类型必须是JSON
例如,如果您上传了一个包含JSON的CSV文件,可能需要更新数据库中的数据/类型。请注意,您无法通过Metabase编辑数据类型;您只能更改其字段类型。因此,即使Metabase中的字段类型为包含JSON的字段
,如果数据/类型不是JSON
,Metabase也不会为您提供展开列的选项。您需要更改数据库中的列类型。
支持JSON展开的数据库
- PostgreSQL
- MySQL
- Druid (JDBC)
- BigQuery (始终启用)
查看其他Metabase版本的文档。