数据和字段类型
Metabase 区分两种类型的列元数据:数据类型和字段类型。
- 数据类型是数据库中定义的底层列类型,如
Date
或Text
。Metabase 在数据库同步过程中读取数据类型。 - 语义类型,也称为字段类型,是描述数据应如何解释的标签。例如,如果您有一个数据类型为
Text
的列,用于存储电子邮件,您可以添加一个Email
语义类型,让人们(和 Metabase)知道该列存储的是哪种文本。
数据类型和语义类型决定了 Metabase 如何格式化数据、哪些图表可用、筛选器如何工作以及其他功能。
数据类型
数据类型是数据库中定义的底层列类型。Metabase 在数据库同步过程中读取数据类型。由于 Metabase 连接到许多不同的数据库,它在底层使用自己的类型层次结构,以便能够处理 PostgreSQL 和 MongoDB 等不同数据库中的日期字段。
Metabase 中的主要数据类型
数据类型 | 示例数据库类型 |
---|---|
数值 | INTEGER , FLOAT |
时间 | DATE , TIMESTAMP |
文本 | VARCHAR , TEXT |
类文本 | MongoDB BSONID , Postgres Enum |
布尔 | 布尔 |
集合 | JSON , BigQuery RECORD , MongoDB Object |
Metabase 目前不支持数组类型。对于包含数组的列,您只能通过“为空”或“不为空”进行筛选。
对于某些字段,您可以告诉 Metabase 将其转换为不同的数据类型(例如,将文本类型更改为日期类型)。
语义类型
您可以将语义类型视为为字段添加额外“风味”,以传达意义并启用附加功能。可用的语义类型取决于底层数据类型。
任何字段的语义类型
-
实体键。用于指示字段唯一标识每一行。可以是产品 ID、序列号等。
-
外键。用于引用另一张表的实体键,以连接相关表中数据。例如,在产品表中,您可能有一个指向客户表的客户 ID 字段,其中客户 ID 是实体键。如果您想在仪表板上使用关联筛选器,则必须设置外键关系。
数值字段的语义类型
- 数量
- 分数
- 百分比
- 财务
- 货币
- 折扣
- 收入
- 位置
- 纬度
- 经度
- 类别
时间字段的语义类型
- 创建日期
- 创建时间
- 创建时间戳
- 加入日期
- 加入时间
- 加入时间戳
- 生日
文本字段的语义类型
- 实体名称
- 电子邮件
- URL
- 图片 URL
- 头像 URL
- 类别
- 名称
- 标题
- 描述
- 产品
- 来源
- 位置
- 城市
- 省/州
- 国家
- 邮政编码
集合字段的语义类型
-
包含 JSON 的字段。
请参阅使用 JSON。
编辑数据和语义类型
管理员以及具有管理表元数据权限的用户可以在“管理设置”的“表元数据”选项卡中转换数据类型和编辑语义类型。
转换数据类型
数据类型不能在 Metabase 中直接编辑,但您可以将某些数据类型转换为不同类型,例如,Metabase 将文本数据类型解释为日期类型。
在“表元数据”中所做的更改将应用于整个 Metabase。Metabase 目前只支持在元数据设置中转换为日期时间类型。但是,如果您在查询生成器中构建查询,则可以使用类型转换自定义表达式,如 date()
或 integer()
,在查询中将字符串转换为不同的类型。
语义类型不改变数据类型
您可以在表元数据设置中选择与底层数据类型兼容的语义类型
语义类型仅增加含义;它们不应用于类型转换。例如,如果您将文本字段的语义类型设置为“数量”,Metabase 仍会将其视为文本字段。相反,应用语义类型是为了告诉 Metabase 如何格式化或可视化该字段(例如,告诉 Metabase 某个数值表示百分比)。
数据和语义类型的功能
显示格式
某些语义类型会改变字段中数据的显示方式。
表元数据设置中的格式设置将应用于整个 Metabase,但用户可以针对单个图表进行更改。
语义类型 | 格式 |
---|---|
百分比 | 显示为百分比,例如 0.75 将显示为 75\% |
货币 | 在图表和详情视图中,值前会加上货币符号,例如 $134.65 。默认情况下,在表格视图中,货币符号仅显示在表头中,但您可以更改元数据格式设置以在每行中显示符号。 |
纬度/经度 | 显示为坐标,例如 0.00000000° N |
电子邮件 | 显示为 mailto 链接 |
URL | 可格式化为可点击链接 |
图片 URL | 可显示为图片。请参阅表格格式设置 |
头像 URL | 可显示为圆形头像图片。请参阅表格格式设置 |
包含 JSON 的字段 | 在详细视图中,显示为美化后的 JSON |
实体和外键 | 在表格视图中突出显示 |
可视化
当您在查询生成器中创建问题时,Metabase 将根据“按...分组”步骤中的数据类型和字段类型自动为您选择最合适的图表(您稍后可以更改图表类型)。
按数据类型分组 | 自动图表 |
---|---|
文本/类别 | 柱状图 |
时间 | 折线图 |
数值 - 分箱 | 柱状图 |
数值 - 未分箱 | 表格 |
布尔 | 柱状图 |
无聚合 | 表格 |
此外,如果您使用位置语义类型
按语义类型分组 | 功能 |
---|---|
纬度/经度 - 分箱 | 网格地图 |
纬度/经度 - 未分箱 | 图钉地图 |
国家 | 世界区域地图 |
省/州 | 美国区域地图 |
从列中提取值
对于某些字段,您可以使用表格视图中的快捷方式或查询生成器中的自定义表达式编辑器,快速从列中提取值
按数据类型分组 | 提取 |
---|---|
URL 语义类型 | 提取主机、域、子域、路径 |
电子邮件语义类型 | 提取主机、域 |
时间数据类型 | 提取日期部分,如月份、日期等 |
X 射线
当您X 射线一个表、模型或实体时,Metabase 会同时考虑数据类型和字段类型,以显示总结该数据的不同图表。
字段筛选器
了解字段类型及其工作原理对于使用字段筛选器很有帮助,因为您只能为某些字段类型创建字段筛选器。
JSON 展开
请参阅使用 JSON。
在模型中设置语义类型,以使人们能够使用查询生成器探索结果
您可以为模型设置字段类型,这有助于 Metabase 了解如何处理使用 SQL 构建的模型中的数据。如果您在 SQL 模型中设置了每列的类型,人们就可以使用查询生成器和深入分析菜单探索该模型。
对于包含整数实体键的记录,您还可以在模型中配置文本字段,以通过匹配此列在搜索中显示单个记录。
延伸阅读
阅读其他Metabase 版本的文档。