使用 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 文件中包含 JSON,您可能需要更新数据库中的数据/类型。请注意,您无法通过 Metabase 编辑数据类型;您只能更改其字段类型。因此,即使 Metabase 中的字段类型为 包含 JSON 的字段
,如果数据/类型不是 JSON
,Metabase 也不会为您提供展开列的选项。您需要自行更改数据库中的列类型。
支持 JSON 展开的数据库
关于 BigQuery 的说明:Metabase 支持 BigQuery 中的 STRUCT 数据类型,但它不会展开存储在 BigQuery 中作为 JSON
类型的 JSON。如果您的数据在 BigQuery 中以 STRUCT
类型存储,您可以查询该表的嵌套字段。这里有一些背景信息:BigQuery 与其他数据库的不同之处在于,嵌套字段是表定义本身的一部分。因此,当 Metabase 与您的 BigQuery 数据库同步时,它能够获取有关您任何表的元数据,包括带有嵌套字段的表。然而,查询嵌套字段的功能不适用于 BigQuery 中的数组(REPEATED (STRUCT))。
阅读其他 Metabase 版本的文档。