数据类型和语义类型
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 是实体键。如果您想在仪表板上使用链接过滤器,则必须设置外键关系。
数字字段的语义类型
- 数量
- 分数
- 百分比
- 财务
- 货币
- 折扣
- 收入
- 地点
- 纬度
- 经度
- Category
时间字段的语义类型
- 创建日期
- 创建时间
- 创建时间戳
- 加入日期
- 加入时间
- 加入时间戳
- 生日
文本字段的语义类型
- 实体名称
- 电子邮件
- 网址
- 图片 URL
- 头像 URL
- Category
- 名称
- Title
- 描述
- 产品
- 来源
- 地点
- 城市
- 州
- 国家
- 邮政编码
集合字段的语义类型
-
包含 JSON 的字段。
请参阅处理 JSON。
编辑数据和语义类型
管理员以及有权管理表元数据的用户可以在管理员设置的“表元数据”选项卡中,强制转换数据类型和编辑语义类型。
强制转换数据类型
数据类型不能在 Metabase 中直接编辑,但您可以将某些数据类型强制转换为不同类型,例如,让 Metabase 将文本数据类型解释为日期类型。
在“表元数据”中所做的更改将应用于您的整个 Metabase。但是,如果您在查询构建器中构建查询,则可以使用诸如date() 或integer() 之类的类型强制转换自定义表达式,仅在您的查询中将字符串强制转换为其他类型。
语义类型不会改变数据类型
您可以在表元数据设置中选择与底层数据类型兼容的语义类型。
语义类型仅添加含义;不应用于类型强制转换。例如,如果您将文本字段的语义类型设置为“数量”,Metabase 仍会将该字段视为文本字段。而是应用语义类型来告诉 Metabase 如何格式化或可视化该字段(例如,告诉 Metabase 数值代表百分比)。
数据和语义类型支持的功能
显示格式
某些语义类型会更改字段中数据的显示方式。
“表元数据”设置中的格式设置将应用于您的整个 Metabase,但用户可以为单个图表更改它们。
| 语义类型 | 格式 |
|---|---|
| 百分比 | 显示为百分比,例如 0.75 将显示为 75% |
| 货币 | 在图表和详细信息视图中,值前面会加上货币符号,例如 $134.65。默认情况下,在表格视图中,货币符号仅显示在标题中,但您可以更改元数据格式设置,以便为每一行显示符号。 |
| 纬度/经度 | 显示为坐标,例如 0.00000000° N |
| 电子邮件 | 显示为 mailto 链接 |
| 网址 | 可格式化为可点击链接 |
| 图片 URL | 可显示为图片。请参阅表格格式设置 |
| 头像 URL | 可显示为头像圆形图片。请参阅表格格式设置 |
| 包含 JSON 的字段 | 在详细信息视图中,显示为格式化的 JSON |
| 实体和外键 | 在表格视图中高亮显示 |
可视化
当您在查询构建器中创建问题时,Metabase 将根据“分组依据”步骤中的字段的数据类型和语义类型自动为您选择最合适的图表(稍后可以更改图表类型)。
| 按数据类型分组 | 自动图表 |
|---|---|
| 文本/类别 | 条形图 |
| 时间 | 折线图 |
| 数字 - 分箱 | 条形图 |
| 数字 - 未分箱 | 表格 |
| 布尔值 | 条形图 |
| 无聚合 | 表格 |
此外,如果您使用地理位置语义类型
| 按语义类型分组 | 功能 |
|---|---|
| 纬度/经度 - 分箱 | 网格地图 |
| 纬度/经度 - 未分箱 | 图钉地图 |
| 国家 | 世界区域地图 |
| 州 | 美国区域地图 |
提取列中的值
对于某些字段,您可以使用表格视图中的快捷方式或查询构建器中的自定义表达式编辑器快速提取列中的值。
| 按数据类型分组 | 提取 |
|---|---|
| URL 语义类型 | 提取主机、域、子域、路径 |
| 电子邮件语义类型 | 提取主机、域 |
| 时间数据类型 | 提取月份、日期等日期部分 |
X 射线
当您分析表、模型或实体时,Metabase 会同时考虑数据类型和字段类型,以显示汇总该数据的不同图表。
字段过滤器
了解字段类型及其工作原理对于使用字段过滤器很有帮助,因为您只能为某些字段类型创建字段过滤器。
JSON 展开
请参阅处理 JSON。
在模型中设置语义类型,以便用户可以通过查询构建器探索结果
您可以为模型设置字段类型,这有助于 Metabase 理解如何处理使用 SQL 构建的模型中的数据。如果您在 SQL 模型中设置了每个列类型,用户将能够使用查询构建器和钻取菜单来探索该模型。
对于包含整数实体键的记录,您还可以配置模型中的文本字段以在搜索中显示单个记录。
进一步阅读
阅读其他版本的 Metabase 的文档。