数据和商业智能词汇表

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X

A

聚合

使用数学函数汇总数据的行为,例如计算列中值的平均值,或计算表中行数。

什么是聚合? 聚合是使用数学函数汇总数据的行为,例如计算列中值的平均值,或计算表中行数。 结果数字通常称为指标,这与 Metabase 中的指标不同。 字段中的单个值本身可能没有太多意义,但是当我们以某种特定方式组合这些值时,我们可以更全面地了解我们的数据。 聚合是将这些值折叠成单个结果的过程,通常与分组结合使用——即,基于特定值组合多行,例如按维度分组(例如,产品类别或国家/地区)。 聚合可以动态计算,但您可能还希望创建包含结果的摘要表,并保存这些聚合函数的结果以供将来使用。 当处理大型数据集时,摘要表尤其有用;由于摘要表是预先计算的,因此依赖于它们的查询可以运行得更快。 SQL 中常见的聚合函数 不同的数据库有不同的函数集,但以下是您将遇到的一些最常见的聚合函数: COUNT() - 计算表中的行数。 AVG() – 计算字段中值的平均值。 MIN() – 识别字段中的最小值。 MAX() – 识别字段中的最大值。 SUM() – 返回字段中值的总和。 STDEV() – 计算字段中值的标准差。 聚合示例 使用 Metabase 的示例数据库,假设我们想知道我们产品的平均价格,按产品类别分组。 在这种情况下,我们将使用 Products 表。 我们的 SQL 查询如下所示: SELECT category, avg(price) FROM products GROUP BY category 正如我们想要的那样,我们计算了 Products 表 Price 列中值的平均值,并根据它们在 Category 字段中的值对这些平均值进行分组。 如果我们想在 Metabase 的查询构建器中执行相同的聚合,我们将通过价格平均值进行汇总,然后按类别分组,如下图所示: 图 1. 在查询构建器中执行聚合:按产品类别分组的产品平均价格。

阅读更多
属性

属性是描述或标识某个实体的属性。 在某些 Metabase 计划中,用户属性用于限制人们可以访问哪些数据。

什么是属性? 属性是描述或标识某个实体的属性。 数据世界的人们在几种不同的上下文中使用“属性”,因此我们将尽力在此处消除歧义。 基本上,属性是某事物的特征。 该事物可能是表,但属性也可能指特定记录的特征,例如 Metabase 中的用户属性。 关系数据库中的属性 在关系数据库中,人们经常将属性与列或字段同义使用,例如产品类别是该产品的属性(或描述)。 属性的这种用法在数据建模和设计实体关系图的上下文中经常出现。 属性示例 以下是 Metabase 示例数据库中 People 表的示例,其中包括 ID、姓名、地址、城市、州等字段: 图 1. People 表的示例。 这些字段中的每一个都是一个属性——这些字段中的值描述了它们关联的记录的某些信息,在本例中是 People 表中的“人”。 Metabase 中的用户属性 同步用户属性仅在 Pro 和企业版计划(自托管和 Metabase Cloud)中可用。 属性也可以指与特定用户关联的不同的变量值,例如 User_ID。 这种结构称为键值对,有时称为属性值对。 在 Metabase 中,某些计划允许您自己设置用户属性(或通过 SSO 将其传递给 Metabase)。 您可以使用这些用户属性在仪表盘上设置自定义目标,例如,当用户单击图表时,使用用户 ID 参数化 URL。 用户属性也是数据沙盒的重要组成部分,数据沙盒使您可以精细控制使用 Metabase 实例的人员可以访问的数据。 由于数据沙盒与单个用户相关联,因此设置不同的用户属性使 Metabase 确切地知道如何根据查看者过滤表。

阅读更多

B

BI 工具

一种专为人们在不依赖代码的情况下查看数据而设计的应用程序。

什么是 BI 工具? BI 工具是一种专为人们在不依赖代码的情况下查看数据而设计的应用程序。 这些应用程序允许人们以表格、图表和仪表盘的形式可视化和共享数据。 BI 工具可以插入您组织中现有的数据源,例如您的数据仓库、CRM 或事件分析服务。 常见的 BI 工具 电子表格应用程序 BI 工具的经典示例是电子表格应用程序,如 Microsoft Excel 或 Google Sheets,您可以在其中以表格、透视表或图表的形式可视化数据,并将结果共享为单个文件(或云中这些文件的链接)。 BI 平台 BI 工具通常被认为是仅用于可视化数据和制作报告的应用程序。 像 Metabase 这样的 BI 平台是一种 BI 工具,可以处理与报告相邻的其他任务,例如数据建模、数据编目、版本控制和权限管理。 BI 工具如何融入数据堆栈? 图 1. BI 工具适用于现代数据堆栈的分析组件。 BI 工具是可以设置在数据堆栈面向用户端的众多分析工具之一。 特别是 BI 平台可以处理与堆栈其他部分相同的任务。 以下是您可以期望各个部分如何交互: BI 工具与数据库 BI 工具不是数据源——它们不会取代生产数据库或数据仓库来存储您组织拥有的数据。 BI 工具通过运行查询并显示结果来从数据库中提取信息。 BI 工具与 ETL BI 工具不会取代 ETL(或 ELT)来按计划摄取或转换大量数据。 但是,与 ETL 类似,某些 BI 平台可以通过动态运行查询来处理数据建模和数据拼接(连接来自不同数据库的数据)。 BI 工具与事件分析服务 事件或 Web 分析服务(如 Google Analytics、Segment 或 Amplitude)会收集您产品的使用情况数据。 尽管这些服务带有自己的界面来可视化和共享数据,但它们不被视为 BI 工具。 您可以将它们视为可以独立使用的迷你数据堆栈。 通过将事件分析服务与中央 BI 工具结合使用,可以将其集成到您的核心数据堆栈中。 您可以从服务中下载事件数据,并将其移动到连接到您的 BI 工具的数据仓库中,或者如果支持,将服务连接起来以直接连接到您的 BI 工具。 BI 工具与开源编码工具 像 Jupyter Notebook 和 RShiny 这样的开源工具使用 Python 和 R 等编程语言来处理数据。 它们可以用于构建用于分析的报告和仪表盘,但它们不被视为 BI 工具,因为它们依赖于代码而不是可视化界面。

阅读更多
分箱

用于对图表中的值进行分组的连续值的单个范围。

什么是分箱? 分箱是用于对图表中的值进行分组的连续值的单个范围。 分箱数据有助于简化数据可视化,因此人们可以了解其数据的分布并轻松发现异常值。 您最常看到分箱与直方图一起使用,但它们并非直方图独有,并且对于其他可视化(如折线图或饼图)也很有用。 如果数据集中的度量包含许多唯一值,则在图表上绘制每个单独的数据点可能会显得杂乱,并且可能不是数据的最佳表示形式。 当您对数据进行分箱时,这些值将被分组为大小相等的间隔(如 1-10、11-20、21-30 等),并且您的结果图表将显示每个箱中的值计数。 数据分箱示例 图 1 显示了 Metabase 示例数据库中产品的价格,以直方图形式显示。 图 1. 我们的示例数据库中产品的价格,以直方图形式显示。 Metabase 会根据数据的分布情况自动生成分箱。 此处的分箱是价格范围;我们可以看到,在 37.50-50.00 美元的价格范围内,我们的产品比任何其他范围都多。 Metabase 自动对这些值进行了分箱,但我们也可以选择我们想要的分箱数量(10、50 或 100 个)以进一步调整此图表。 如果您的分箱大小太小,您将有太多分箱,并且很可能最终得到一个难以解释的可视化。 但是,分箱太少会给您数据的分布带来不完整或过度压缩的图片,因此请尝试一下并找出最适合您数据的方法。

阅读更多

C

卡片

仪表板的组件,用于显示数据或文本。

什么是卡片?卡片是仪表板的组件,用于显示数据或文本。Metabase 仪表板由卡片组成,每个卡片显示一些数据(可视化为表格、图表、地图或数字)或文本(如标题、描述性信息或相关链接)。卡片和问题 仪表板上的卡片不仅仅是您提出的问题的迷你版本。如果您只是将已保存的问题添加到仪表板就结束了,您可能会错过卡片可以做的很多事情。您可以在单个卡片中组合多个已保存的问题,只要它们共享一个维度。您的卡片也不必包含不同的问题。在仪表板上多次包含相同的卡片可能很有用,例如,如果您想将一个问题可视化为折线图和条形图。在仪表板上编辑卡片 编辑仪表板时,您可以: 在仪表板的网格上排列和调整卡片大小。 更改卡片的可视化选项,而不影响底层问题。 将卡片连接到仪表板过滤器以过滤问题的结果。 设置卡片的点击行为以更改某人点击卡片时发生的情况。 虽然让仪表板上的这些卡片看起来光滑且具有视觉吸引力很棒,但更重要的是您要传达人们需要看到的信息,而没有太多额外的累赘。仪表板上卡片的示例 图 1 中的仪表板包括充当标题和描述的文本卡片,以及带有数字、趋势、折线图和区域地图的卡片:图 1. 仪表板上带有问题和文本的卡片。卡片和 Metabase API 在 Metabase API 中,api/card 路由指的是问题,而不是仪表板上的卡片。您仍然可以使用 API 编辑和获取有关仪表板上卡片的信息(例如使用 api/dashboard),但请记住这种区别,并查看 API 文档以获取完整的路由和端点列表。

阅读更多

值的列表,通常属于特定字段,在表格中垂直显示。

什么是列?列是值的列表,通常属于特定字段,在表格中垂直显示。在关系数据库表中,列中的每个值都对应于不同的记录。列中的值共享数据类型。也就是说,如果列的数据类型为整数,则表示该列中的每个值都必须是整数。可能还有其他约束,与格式、字符长度或该值是否为强制性有关。列示例 这是 Metabase 示例数据库中“订单”表的图像,其中突出显示了“创建时间”列。“创建时间”列的数据类型为 DateTime,此列中的值均对应于单个订单的时间戳。图 1. “订单”表的概览,其中突出显示了“创建时间”列。列 vs 字段 虽然列和字段在技术上不是同一件事,但通常可以互换使用这些术语。请参阅“列 vs 字段”。但是,请记住,列并不总是直接对应于数据库中的字段。例如,您可能想在 Metabase 中创建一个自定义列,其中包含计算值,例如一个显示每个订单折扣百分比的列。您可以通过告诉 Metabase 计算“折扣”除以“小计”并在新列中显示结果值来创建此自定义列。列式存储 虽然许多传统的关系数据库将数据存储为行,并且通常最适合用于保存事务数据,但一些数据库(如针对分析优化的数据仓库)利用列式存储。列式数据库(也称为面向列的数据库)物理上将一列的值存储在一起,而不是基于整行建立索引。这可以大大加快分析查询和聚合函数的速度,因为这些查询将能够从磁盘上的同一位置检索相似的数据,而不是在数据库中执行大型读取以从单个记录中提取一列的值。

阅读更多
国家代码

标识国家的标准两位或三位字母代码。

什么是国家代码?国家代码是标识国家的标准两位或三位字母字符串。Metabase 支持 alpha-2 国家代码。国家代码列表 AD 安道尔 AE 阿拉伯联合酋长国 AF 阿富汗 AG 安提瓜和巴布达 AI 安圭拉 AL 阿尔巴尼亚 AM 亚美尼亚 AO 安哥拉 AQ 南极洲 AR 阿根廷 AS 美属萨摩亚 AT 奥地利 AU 澳大利亚 AW 阿鲁巴 AX 奥兰群岛 AZ 阿塞拜疆 BA 波斯尼亚和黑塞哥维那 BB 巴巴多斯 BD 孟加拉国 BE 比利时 BF 布基纳法索 BG 保加利亚 BH 巴林 BI 布隆迪 BJ 贝宁 BL 圣巴泰勒米 BM 百慕大 BN 文莱达鲁萨兰国 BO 玻利维亚(多民族国) BQ 博内尔岛,圣尤斯特歇斯和萨巴 BR 巴西 BS 巴哈马 BT 不丹 BV 布韦岛 BW 博茨瓦纳 BY 白俄罗斯 BZ 伯利兹 CA 加拿大 CC 科科斯(基林)群岛 CD 刚果民主共和国 CF 中非共和国 CG 刚果 CH 瑞士 CI 科特迪瓦 CK 库克群岛 CL 智利 CM 喀麦隆 CN 中国 CO 哥伦比亚 CR 哥斯达黎加 CU 古巴 CV 佛得角 CW 库拉索岛 CX 圣诞岛 CY 塞浦路斯 CZ 捷克 DE 德国 DJ 吉布提 DK 丹麦 DM 多米尼克 DO 多米尼加共和国 DZ 阿尔及利亚 EC 厄瓜多尔 EE 爱沙尼亚 EG 埃及 EH 西撒哈拉 ER 厄立特里亚 ES 西班牙 ET 埃塞俄比亚 FI 芬兰 FJ 斐济 FK 福克兰群岛(马尔维纳斯群岛) FM 密克罗尼西亚联邦 FO 法罗群岛 FR 法国 GA 加蓬 GB 大不列颠及北爱尔兰联合王国 GD 格林纳达 GE 格鲁吉亚 GF 法属圭亚那 GG 格恩西 GH 加纳 GI 直布罗陀 GL 格陵兰 GM 冈比亚 GN 几内亚 GP 瓜德罗普 GQ 赤道几内亚 GR 希腊 GS 南乔治亚和南桑威奇群岛 GT 危地马拉 GU 关岛 GW 几内亚比绍 GY 圭亚那 HK 香港 HM 赫德岛和麦克唐纳群岛 HN 洪都拉斯 HR 克罗地亚 HT 海地 HU 匈牙利 ID 印度尼西亚 IE 爱尔兰 IL 以色列 IM 马恩岛 IN 印度 IO 英属印度洋领地 IQ 伊拉克 IR 伊朗(伊斯兰共和国) IS 冰岛 IT 意大利 JE 泽西 JM 牙买加 JO 约旦 JP 日本 KE 肯尼亚 KG 吉尔吉斯斯坦 KH 柬埔寨 KI 基里巴斯 KM 科摩罗 KN 圣基茨和尼维斯 KP 朝鲜民主主义人民共和国 KR 大韩民国 KW 科威特 KY 开曼群岛 KZ 哈萨克斯坦 LA 老挝人民民主共和国 LB 黎巴嫩 LC 圣卢西亚 LI 列支敦士登 LK 斯里兰卡 LR 利比里亚 LS 莱索托 LT 立陶宛 LU 卢森堡 LV 拉脱维亚 LY 利比亚 MA 摩洛哥 MC 摩纳哥 MD 摩尔多瓦共和国 ME 黑山 MF 法属圣马丁 MG 马达加斯加 MH 马绍尔群岛 MK 北马其顿 ML 马里 MM 缅甸 MN 蒙古 MO 澳门 MP 北马里亚纳群岛 MQ 马提尼克 MR 毛里塔尼亚 MS 蒙特塞拉特 MT 马耳他 MU 毛里求斯 MV 马尔代夫 MW 马拉维 MX 墨西哥 MY 马来西亚 MZ 莫桑比克 NA 纳米比亚 NC 新喀里多尼亚 NE 尼日尔 NF 诺福克岛 NG 尼日利亚 NI 尼加拉瓜 NL 荷兰 NO 挪威 NP 尼泊尔 NR 瑙鲁 NU 纽埃 NZ 新西兰 OM 阿曼 PA 巴拿马 PE 秘鲁 PF 法属波利尼西亚 PG 巴布亚新几内亚 PH 菲律宾 PK 巴基斯坦 PL 波兰 PM 圣皮埃尔和密克隆 PN 皮特凯恩 PR 波多黎各 PS 巴勒斯坦国 PT 葡萄牙 PW 帕劳 PY 巴拉圭 QA 卡塔尔 RE 留尼汪 RO 罗马尼亚 RS 塞尔维亚 RU 俄罗斯联邦 RW 卢旺达 SA 沙特阿拉伯 SB 所罗门群岛 SC 塞舌尔 SD 苏丹 SE 瑞典 SG 新加坡 SH 圣赫勒拿,阿森松和特里斯坦-达库尼亚 SI 斯洛文尼亚 SJ 斯瓦尔巴群岛和扬马延 SK 斯洛伐克 SL 塞拉利昂 SM 圣马力诺 SN 塞内加尔 SO 索马里 SR 苏里南 SS 南苏丹 ST 圣多美和普林西比 SV 萨尔瓦多 SX 荷属圣马丁 SY 阿拉伯叙利亚共和国 SZ 埃斯瓦蒂尼 TC 特克斯和凯科斯群岛 TD 乍得 TF 法属南部领地 TG 多哥 TH 泰国 TJ 塔吉克斯坦 TK 托克劳 TL 东帝汶 TM 土库曼斯坦 TN 突尼斯 TO 汤加 TR 土耳其 TT 特立尼达和多巴哥 TV 图瓦卢 TW 中国台湾省 TZ 坦桑尼亚联合共和国 UA 乌克兰 UG 乌干达 UM 美国本土外小岛屿 US 美利坚合众国 UY 乌拉圭 UZ 乌兹别克斯坦 VA 梵蒂冈 VC 圣文森特和格林纳丁斯 VE 委内瑞拉玻利瓦尔共和国 VG 英属维尔京群岛 VI 美属维尔京群岛 VN 越南 VU 瓦努阿图 WF 瓦利斯和富图纳 WS 萨摩亚 YE 也门 YT 马约特 ZA 南非 ZM 赞比亚 ZW 津巴布韦

阅读更多

D

仪表板

数据可视化工具,用于在一个屏幕上收集和排列重要的图表和文本。

什么是仪表板?仪表板是一种数据可视化工具,用于在一个屏幕上收集和排列重要的图表和文本。仪表板提供了对 KPI 和其他业务指标的高级、集中式视图,可以涵盖从整体业务健康状况到特定项目或活动的成功等所有内容。这个术语来自汽车仪表板,它——就像其商业智能对应物一样——提供有关重要功能的状态更新和警告(只是针对刹车油液位低之类的事情,而不是您最近的营销活动表现如何)。仪表板 vs. 报告 仪表板与报告不完全相同,尽管您有时会听到人们将仪表板称为报告。不同之处在于,仪表板往往更容易阅读和一目了然地理解,而传统报告则提供对主题更详细的了解。与传统报告不同,仪表板可以在单个屏幕上查看,并且通常包含一些交互式元素。您可能不会打印出仪表板来阅读,这对于依赖静态历史数据的传统报告来说更有意义。但是,就像传统报告一样,您可以根据设定的时间表发送更新的仪表板,例如 Metabase 中的仪表板订阅。Metabase 中的仪表板 在 Metabase 中,仪表板由包含问题或文本的卡片组成。在 Metabase 中创建和编辑仪表板时,您有很多选择,例如: 排列和调整卡片大小以适应您所需的仪表板设计。 通过设置自定义点击行为并将一个仪表板链接到另一个仪表板,使您的仪表板具有交互性。 添加过滤器小部件并将它们连接到单个卡片上的特定字段。 使用 Markdown 用文本或 GIF 注释您的仪表板。 通过链接共享您的仪表板或将其嵌入您的网站或应用程序中。 仪表板示例 图 1 显示了 Metabase 中仪表板的示例,其中包含三个问题卡片和三个过滤器小部件。如果有人将客户 ID、客户名称或日期输入到其中一个过滤器小部件中,图表将相应调整以反映添加的过滤器。图 1. 包含三个问题卡片和三个过滤器小部件的仪表板。

阅读更多
数据字典

描述数据库中的表、字段和其他元素并解释其含义和来源的文档。

什么是数据字典?数据字典是一个文档,它描述数据库中的表、字段和其他元素,并解释它们的含义和来源。数据字典是数据库元数据的存储库,存储人们需要理解和使用该数据的管理信息。将它们想象成典型的字典,但数据字典包含的是关于构成数据库的对象的定义和信息,而不是语言中的每个单词。最新且全面的数据字典有助于确保每个人都对某些字段或表在实践中的含义保持一致。数据字典还可以帮助确保不同的部门都在一致地使用这些术语。数据字典通常是与它们描述的数据库一起存储的单独文件或文件集。虽然数据库数据字典的某些方面可能对所有数据库用户都可访问(例如每个人都需要知道的重要描述),但其他部分可能只能由数据库管理员查看(例如关于数据库物理实现的技术细节)。Metabase 中的数据字典 在 Metabase 中,数据参考部分充当数据字典。数据字典中包含什么?数据字典收集和存储与数据库关联的元数据,通常包括如下信息: 表和字段描述 数据类型 完整性约束 命名约定 文件位置 虽然数据字典的确切格式将取决于您的组织和数据集的复杂性,但数据字典通常格式化为表格或一系列表格,其中包含元数据字段,如字段名称、描述、数据类型、字符长度以及是否允许空值。您可以使用简单的电子表格、关系数据库软件,甚至文本文件来创建数据目录。数据字典 vs. 模式 vs. 数据目录 这里与数据库的模式有一些重叠,但一般来说,模式定义了数据库的结构以及表及其字段如何组合在一起,而数据字典提供有关该数据的上下文信息。也许您也听说过数据目录,这是另一个类似的概念。一些组织利用数据目录来更好地促进其数据的发现和分析;它们就像具有一些附加功能和特性的数据字典,比传统的基于文档的数据字典更进一步。

阅读更多
数据湖

数据湖是存储结构化和非结构化信息的地方,通常以文件或 blob 的形式存储。

什么是数据湖?数据湖是存储结构化和非结构化信息的地方,通常以文件或 blob 的形式存储。您可以将数据湖视为所有数据的倾倒场,无论结构、格式或预期用途如何。“湖”的概念在很大程度上是营销术语,但水生比较来自于数据湖中的信息以比更严格和分层的数据仓库更“自然”的状态流动的想法。并且由于它们可以保存不需要遵守特定模式的原始数据,因此在扩展以存储大量信息(达到 PB 级)时,数据湖往往具有成本效益。由于无需在开始时定义模式,因此数据湖的设置可能很简单;您可以加载数据以供特定用途或仅将其保留在手边以备将来使用,即使您尚不确定需要对其运行哪种类型的查询。但是,一旦您完成设置,配置使数据湖真正有用的工具可能会变得复杂且昂贵——通常需要数据工程师的专业知识。这些工程师将根据需要设置 ETL,甚至在数据湖的部分数据上训练机器学习模型。数据湖依赖于读取时模式系统,这意味着只有当数据从数据湖中提取出来进行查询时,才会根据模式进行验证,而不是在首次写入时。然而,这确实意味着从数据湖中提取和使用数据需要更多的工作。仅仅因为数据湖允许更大的灵活性并不意味着您应该将所有数据治理都抛到窗外;进入湖泊的信息仍应具有良好的质量,经过清理和注释,以便您的 ETL 或查询引擎(以及扩展后的需要数据的人员)可以充分利用它。何时使用数据湖 如果您需要分析大量的半结构化和/或非结构化信息(例如,如果您是一家物联网公司),那么数据湖可能是一个不错的选择。由于在写入数据时无需强制执行总体模式,因此如果您同时处理多种不同类型的数据源(如流数据、结构化应用程序数据库、来自物联网设备的数据、社交媒体或网络流量),则数据湖也可能是一个有效的解决方案。最终,具有复杂数据需求的组织可能不仅仅依赖于数据湖或数据仓库(甚至数据湖仓),而是构建可以同时包含两者的数据架构,同时考虑到组织的总体战略、将使用它的人员的需求以及这些人需要执行的查询类型。设置数据湖 假设您想设置一个数据湖。概括来说,该过程如下所示: 选择云存储提供商。那里有一些数据湖服务可以帮助您设置所需的各种层和工具,但其核心是您的“湖”是您的存储层——无论您在哪里将结构化和非结构化数据放在一起(例如在 AWS S3 或 Microsoft Azure 中)。 识别您的数据源。这些数据源可能是结构化的(如应用程序数据库)、半结构化的(如 XML 或 JSON 文件)或非结构化的(如社交媒体帖子、图像或文本文档)。 清理并从这些来源摄取数据。在此阶段,您将注释这些数据源(尤其是半结构化和非结构化的数据源),添加元数据并根据您可能对该数据提出的问题类型对其进行标记和分类。清理后,这些注释副本将被加载到您的数据湖中,可能以列式格式(如 parquet)加载,这更适合分析查询。 根据需要创建 ETL 并查询您的数据湖。由于数据湖具有混合格式和通常非结构化的性质,因此工程师和数据科学家通常是直接访问数据湖的人。像您的数据分析师这样的人员将通过使用查询引擎(如 Presto 或 SparkSQL)查询数据湖,这些引擎在数据湖上运行 ETL,按常规计划对其进行结构化,以便可以通过 SQL 查询数据。这些查询在清理后的、注释的、列式数据副本上执行,而不是在原始数据源本身上执行(原始数据和清理后的数据都存储在您的数据湖中)。

阅读更多
数据模型

组织和标记信息的模式。

什么是数据模型?术语“数据模型”用于描述组织和标记信息的任何模式。人们会使用“数据模型”作为通用方式来指代诸如模式、派生表(视图)或 ERD 之类的概念。一个好的数据模型可以帮助人们更快地找到事物。例如,购物中心目录就是一个数据模型,它组织了有关购物中心商店的信息。它按类别或位置对商店进行分组和标记,并通过在地图上显示商店来解释商店之间的关系。与独自在购物中心闲逛或阅读随机的商店名称列表相比,此模型使人们更容易找到要去的地方。数据建模示例 为了在数据建模期间做出决策,最好从弄清楚人们想要查找什么以及原因开始。假设我们想要创建一个数据模型来存储有关电影的信息,以帮助人们查找新的观看内容。您可以将此数据模型视为一个模板,可以为任何电影填写。该模板应完成两件事: 表示电影中对查找特定电影有用的部分。例如,人们可能会按标题、导演、类型或演员搜索他们想看的电影。 描述各部分之间的关系,以便可以轻松地根据一组信息查找另一组信息。例如,模板应确保任何电影标题都与至少一位导演相关联。 最简单类型的数据模型将相关部分组合到一个模板中,并包含一些关于如何填写的信息。例如,以下模板可以用作任何电影的数据模型。 电影 标题:任何文本(必填)。 导演:姓名列表(必填)。 类型:任何文本(可选)。 演员:姓名列表(可选)。 该模型可以通过添加更多与电影相关的部分来扩展,例如发行年份或运行时长。如果现有部分对于查找内容很有用,我们也可以扩展这些部分。例如,人们可能想要通过有关电影演员的具体信息来搜索电影,例如他们获得的任何表演奖项。由于“演员”仅跟踪演员姓名,我们可以将奖项信息拆分到一个新的数据模型中。 表演奖项 奖项:表演奖项名称(必填)。 获奖年份:年份(必填)。 演员:名字和姓氏(可选)。 由于演员姓名同时出现在两个模型中(在“演员”下或在“演员奖项”下),因此存在连接“电影”模型和“表演奖项”模型的关系。当两个模板都用真实的电影和奖项信息填充后,人们将能够通过特定奖项查找电影。 上述书面模板是思考如何分解数据模型信息的​​基本方法,但您可以根据用例遵循许多最佳实践。您可以在下一节中找到常见数据模型格式的示例。 常见数据模型 模式 模式是一种概念数据模型。数据库工作人员使用它们。信息由命名的列和数据类型表示。关系由表或 JSON 对象等结构描述。 ERD ERD 是一种可视化数据模型。需要讨论信息管理和架构的人员使用 ERD。信息由不同的形状表示,例如矩形或菱形。关系由不同的线条描述,例如箭头或虚线。 Metabase 模型 Metabase 模型是一种数据模型,您可以从问题或 SQL 查询创建和保存它。信息由命名的列和任何关联的元数据表示。关系由问题或 SQL 查询中使用的逻辑描述。 人们实际如何使用术语“数据模型” 您可能会发现不同的团队非正式地使用术语“数据模型”来表示不同的事物: 编写 SQL 的人可能会用它来指代派生表或视图。 程序员可能会用它来指代模式或 ERD。 Metabase 中的数据模型 如果您是 Metabase 管理员,您将可以访问 Metabase 中的“数据模型”页面。您在此处所做的更改将影响数据在整个 Metabase 中的显示方式。“数据模型”页面和 Metabase 模型之间有什么区别? “数据模型”位于连接到 Metabase 的原始数据仓库表之上。它是您可以用来清理您的组织可以看到的表的建模层。您可以将其视为通过分配人类可读的名称并保存段或指标的通用定义,在数据世界和业务世界之间“翻译”信息的一种方式。 Metabase 模型位于“数据模型”之上。任何有权使用底层数据库表的人都可以创建它们。

阅读更多

E

ERD

ERD,或实体关系图,是数据库中表之间如何相互连接的图形表示。

什么是 ERD? ERD,或实体关系图,是数据库中表之间如何相互连接的图形表示。ERD 以高层级显示数据库的结构(或模式)。在设计新的数据模型或识别现有模式中的问题时,ERD 是一个有用的工具。实体关系图基本上只是框(您的实体或表)与线(它们之间的关系)连接。您的数据库软件可能具有一些内置功能来创建 ERD,但您也可以使用您最喜欢的任何设计软件,或者采用模拟方式并在纸上绘制您的 ERD。方法并不重要;真正重要的是确保您的图表准确且合乎逻辑,以便您可以为您的特定用例设计最有效的数据库。 ERD 示例 这是一个 ERD 示例,显示了 Metabase 的示例数据库: 图 1. Metabase 示例数据库的简单 ERD。四个表,订单、产品、人员和评论,是我们的实体,连接线显示了它们之间三个一对多的关系。 ERD 设计和符号 在草绘实体关系图时,每个框都应包含诸如表名、字段和键信息(主键和外键)之类的信息。您会在上面的示例中注意到,每个表的键信息都在字段名称旁边用 (PK) 和 (FK) 表示。每个实体之间的线条类型说明了每个表与另一个表的关系类型。不同的组织和行业使用不同的 ERD 符号约定,但最常见的约定之一是乌鸦脚符号,之所以这样命名,是因为三叉符号(用于“多对多”的符号)有点像鸟的脚。图 2 显示了乌鸦脚符号中使用的常用符号及其对应的关系类型: 图 2. 乌鸦脚符号中用于表示不同表关系类型的线条。

阅读更多
嵌入式分析

使用第三方软件在您的应用程序中包含图表和仪表板,供客户查询。

什么是嵌入式分析? 嵌入式分析是指在您的应用程序中使用第三方软件,以允许您的用户查询他们的数据。嵌入式分析可以指在您的应用程序中简单地插入静态图表(通常通过 iframe),但嵌入式分析通常指更具交互性的体验,人们可以在其中查看和创建图表、表格和仪表板,并在一般情况下自行探索他们的数据。嵌入式分析不仅仅是在您的应用程序中使用图表库;分析软件应该能够与 SSO 协同工作,管理组和权限,甚至数据建模,所有这些都使将分析集成到您的产品中变得更容易。提供嵌入式分析的软件通常允许您对图表和仪表板进行白标处理,使其看起来像是属于您的应用程序。组织通常使用第三方工具(如 Metabase)嵌入分析,而不是自己构建分析,因为 1) 它通常更便宜(无论是短期还是长期),并且 2) 您提供的用户体验比您自己构建解决方案更好。分析很快就会变得非常复杂,大多数人宁愿将资源投入到他们的核心业务中,而不是试图在内部推出自己的分析。 嵌入式分析示例 查看三个不同站点的演示,每个站点都具有使用 Metabase 作为底层技术的嵌入式分析。(您可以在右上角的导航栏中在站点之间切换。)metaba.se/sdk-demo。

阅读更多
嵌入

将一个应用程序的某些功能放置在另一个应用程序内部。 Metabase 使用 iframe 来嵌入问题、仪表板或(在某些计划中)完整的 Metabase 应用程序。

什么是嵌入? 嵌入是将一个应用程序的某些功能放置在另一个应用程序内部的过程。在分析中,这通常意味着将数据可视化集成到父应用程序中,允许人们在其自己的应用程序的上下文中查看图表。嵌入也可以为父应用程序节省时间和资源,允许团队利用现有的分析工具,而不是从头开始构建所有内容。虽然不是嵌入内容的唯一方法,但在 Metabase 中嵌入涉及使用 iframe(内联框架)将问题、仪表板或(在某些计划中)完整的 Metabase 应用程序放置在另一个应用程序中。 嵌入 Metabase 图表和仪表板 嵌入不仅仅是将图表的静态图像放置到您的站点或应用程序中。相反,该 iframe 会在您的主浏览器或应用程序中创建一个嵌套的浏览器,该浏览器指向其自己的独立 URL。这样,嵌入的 Metabase 图表或仪表板就会保持最新。当您查看嵌入的图表时,您仍然看到的是 Metabase 图表本身——只是嵌套在父应用程序中。根据安全配置,您的各个嵌入式图表和仪表板要么是公共嵌入,要么是安全嵌入。您还可以配置或锁定参数以影响人们在这些图表上看到的内容,如图 1 所示: 图 1. 在发布仪表板以进行嵌入之前,使参数可编辑并启用深色模式。 嵌入完整的 Metabase 应用程序 交互式嵌入仅在 Pro 和 Enterprise 计划(自托管和 Metabase Cloud 上)中可用。对于某些计划,您可以在您的应用程序中嵌入完整的 Metabase 体验。交互式嵌入对于多租户分析尤其有用,例如为您的客户提供他们可以查看和交互的特定报告,同时始终保持在您的应用程序中。

阅读更多

F

过滤器

过滤器是一个谓词表达式,它根据某些声明的条件限制查询的结果。

什么是过滤器? 过滤器是一个谓词表达式,它根据某些声明的条件限制查询的结果。例如,您可能希望限制“订单”表中的记录,以便您只看到“总计”字段值超过 100 的订单。我们可以使用谓词表达式“总计 > 100”来过滤订单。对于每条记录,查询评估该表达式是否解析为真或假,并相应地缩小结果范围。因此,在这种情况下,如果记录的总计大于 100,则该记录将包含在结果中。在 SQL 中,查询使用 WHERE 子句进行过滤,例如 WHERE 总计 > 100。您还可以在 SQL 中使用 HAVING 子句过滤聚合,例如 HAVING AVG(rating) > 3.5。 Metabase 中的过滤器 过滤您问题的结果。 向您的仪表板添加过滤器。 设置交叉过滤器,以便在有人单击卡片时更新仪表板过滤器。 链接仪表板上的过滤器以根据另一个过滤器的值限制结果。 在本机 SQL 查询中配置智能字段过滤器,这些过滤器知道根据字段类型和列数据呈现哪些过滤选项。 创建过滤器小部件,充当仪表板上的搜索功能,例如查找工具。 Metabase 中的过滤器示例 图 1 显示了 Metabase 示例数据库中的“产品”表,添加了一个过滤器,将结果缩小为仅包含“标题”字段包含单词“Hat”的产品: 图 1. Metabase 中添加了一个过滤器的查询。

阅读更多

G

H

I

J

连接

关系数据库中两个表的结果的组合。

什么是连接? 连接是关系数据库中两个表的结果的组合。虽然“连接”这个词听起来像是您正在合并表本身,但连接实际上是从两个(或更多)不同的表中获取行,并返回一组新的行,这些行组合了这些表中的列,使用实体键和外键来确定哪些行是相关的。 连接类型 有四种类型的 SQL 连接: 左外连接:从表 A 中选择所有记录,以及表 B 中满足连接条件的记录(如果有)。 右外连接:从表 B 中选择所有记录,以及表 A 中满足连接条件的记录(如果有)。 内连接:仅选择表 A 和 B 中满足连接条件的记录。 全外连接:选择两个表中的所有记录,无论是否满足连接条件。 Metabase 中的连接示例 对于在查询构建器中提出的问题,Metabase 默认使用左外连接,但对于本机 SQL 查询,内连接是默认设置(也就是说,如果您只是在查询中使用 JOIN 而不是指定连接类型)。假设我们想从 Metabase 示例数据库中的“人员”和“订单”表返回结果,例如包含订单 ID、下订单的人员姓名及其用户 ID 的表。 查询构建器连接 图 1 显示了此连接在 Metabase 的笔记本编辑器中的外观。我们还需要选择哪些列是可见的,这样我们就不会显示两个表中的每一列。 {% include image_and_caption.html url=”/glossary/images/join/join-notebook-editor.png” description=”图 1. 查询构建器中的连接。” %} 本机 SQL 查询连接 如果我们要在 SQL 中编写相同的查询,它可能看起来像这样: SELECT orders.id AS "订单 ID", people.name AS "姓名", people.id AS "用户 ID" FROM people JOIN orders ON people.id = orders.user_ID 在这里,我们已经确定了连接发生的位置(在本例中,连接在人员 → ID 和订单 → User_ID,一个实体键和一个外键)。

阅读更多

K

L

M

元数据

描述数据的信息,以便更容易查找、操作和使用该数据。

什么是元数据?元数据是描述数据的信息,以便更容易查找、操作和使用该数据。 元数据示例 想想您计算机上的文件,例如数字图像或文本文档。在众多其他属性中,该文件具有名称、文件类型、扩展名、大小和时间戳,记录了文件何时创建、上次打开和上次修改。 这都是元数据——这些属性都不是文件本身,但它们确实告诉您有关文件的重要信息。 了解和跟踪此元数据会告诉您和您的计算机如何对该文件进行排序和处理,例如指示您的计算机在打开该文件时使用什么软件。 元数据存在于分析领域之外,并且几乎无处不在。它在从摄影到图书馆到广播电视的各种行业中都很重要,因为任何处理或生成数据的组织都需要能够查找和组织数据。 元数据有时是人类可读的(例如书名或数据库中的字段名称),但也可能是机器可读的,例如 XML 或 JSON 文件。 关系数据库和数据仓库中的元数据 在关系数据库中,元数据包括构成该数据库模式的所有信息,如下所示: 表名 字段名 实体键 外键 数据类型 视图 完整性约束 但是,数据库元数据不仅仅是其模式。用户信息、业务定义、表和字段描述、数据库大小和存储信息也都是重要的元数据。 根据数据库的配置方式,您可以将一些元数据存储在数据库本身中(例如表名和字段名),也可以存储在单独的文件或一组文件中,这些文件包含数据库的所有元数据。 这被称为数据字典。 在数据仓库中,元数据就像索引或目录,定义了数据仓库中存储的所有对象,以及有关各种 ETL 作业的信息,这些作业处理数据,使其对需要它的人员有用。有关 ETL 的元数据可能包括作业名称、其用途、运行时间和频率、作业使用的数据以及数据最终位置。如果该作业使用大量有用的元数据进行了正确注释,那么您或同事就更容易理解该作业的确切作用和原因。 在 Metabase 中使用元数据 元数据在 Metabase 中扮演着重要角色!例如,指定列的字段类型(本身就是一种元数据形式)使 Metabase 了解该字段的实际含义,因此 Metabase 可以知道如何格式化该字段或显示哪种类型的可视化效果。模型也使用元数据。在创建模型时使用描述注释列可以极大地帮助人们更好地理解您的数据。图 1 显示了当鼠标悬停在该模型中的列上时,这些描述是如何显示的: {% include image_and_caption.html url=”/glossary/images/metadata/hover-description.png” description=”图 1. 在数据参考部分查看 Products 表的元数据。” %} 最后,您始终可以在 Metabase 数据浏览器的数据参考部分中查看表元数据。图 2 显示了 Sample Database 的 Products 表的外观。如您所见,此视图提供了有用的信息,例如列名、描述、字段类型和数据类型: {% include image_and_caption.html url=”/glossary/images/metadata/metadata-data-reference.png” description=”图 2. 在数据参考部分查看 Products 表的元数据。” %}

阅读更多
指标

指标是对度量执行的计算。在 Metabase 中,大写 M 的指标是基于一个表的已保存聚合,可以带有或不带有过滤器。

什么是指标?指标是对度量执行的计算。指标是数据的定量属性,应用了一些汇总。 指标与度量 您会看到术语指标和度量互换使用,它们的概念非常相似,都指的是来自(或从)数据的某个数值。但是,有一个重要的区别:度量是原始的、未聚合的数据,而指标是聚合(或汇总)的数据。例如,虽然像“折扣”这样的字段是一个度量,但该“折扣”字段的标准差将是一个指标。有些人也会使用“指标”来表示专门与绩效目标相关的度量计算,例如 CRR(客户流失率)或 NRR(净收入留存率)。根据这个定义,指标基本上是一个 KPI(关键绩效指标),具体取决于是否有人将该指标指定为“关键”。 指标示例 如果我们想确定 Metabase Sample Database 中订单小计的平均值,我们将通过汇总来实现,如图 1 所示: {% include image_and_caption.html url=”/glossary/images/metric/example-metric-summarization.png” description=”图 1. 按小计平均值(指标)汇总 Orders 表。” %} 在这种情况下,“小计”是一个度量,但平均小计是我们的指标。 Metabase 中的指标 在 Metabase 中,大写 M 的指标是基于一个表的已保存聚合,可以应用或不应用过滤器。如果您的团队需要定期引用和使用某些聚合(例如收入),您可能需要在 Metabase 中创建一个指标,以便在提问时访问它,而无需每次都重新构建该聚合。

阅读更多

N

规范化

在关系数据库中组织信息以减少冗余的过程。

什么是规范化?数据规范化是在关系数据库中组织信息以减少冗余的过程。规范化数据确保数据库中的表尽可能高效地运行,消除歧义,使每个表都服务于单一目的。当从非规范化数据库迁移到规范化数据库时,您可能需要分解现有表以创建更多更小的表。这些新表的重点将更窄,并将通过实体键和外键链接到其他表。规范化还带来了减少整体数据库大小和简化数据库维护的额外好处,因为您不再在多个位置存储相同的信息。 数据规范化示例 规范化过程根据相互构建的规则进行,称为范式。第一范式 (1NF) 规定字段不应在单个单元格中存储多个值,并且表中的每个字段都应是唯一的。 这是一个例子: 非规范化表 Product_ID Product_name Product_color1 Product_color2 P001 针织开衫 粉色 深红色 P002 靴型牛仔裤 海军蓝   P003 亚麻背心 卡其色 米白色 P004 跑步运动鞋 橙色   您会注意到我们有两个字段包含类似的信息,即产品颜色。为了使此表符合 1NF,我们需要将此表分解为两个可以连接在一起的单独表。 规范化产品名称表 Product_ID Product_name P001 针织外套 P002 靴型牛仔裤 P003 亚麻背心 P004 跑步运动鞋 规范化产品颜色表 Product_ID Product_color P001 粉色 P001 深红色 P002 海军蓝 P003 卡其色 P003 米白色 P004 橙色 查看我们的 Learn 文章,了解 2NF 和 3NF 的示例。虽然存在超出这三种范式的范式,但它们的使用在很大程度上是理论性的,前三种范式应该足以满足大多数实际数据库需求。

阅读更多

O

P

参数

一种特殊类型的变量,用于指定查询的输入。

什么是参数?参数是一种特殊类型的变量,用于指定查询的输入。设置参数允许最终用户输入一个值(例如在仪表板或报告中)来更改该查询返回的数据,通常按度量或维度进行过滤。参数将该值传递给正在运行的查询,并且该查询的结果将取决于该人输入的任何值。 参数与变量与参数 您可能会看到“参数”与“变量”或“自变量”互换使用,因此值得在此处指出一些区别。参数是一种变量;它只是一种特定的输入值被传递给正在运行的程序或查询的变量。并非所有变量都是参数,尽管——您可能还有在程序或查询中设置的变量,并且任何人都无法在另一侧修改。 参数指的是程序或查询运行时传递的值本身。例如,如果您将参数设置为 {% raw %}{{productID}}{% endraw %},并输入值 34,则您的参数为 34。参数定义将有一个输入值,但输入值本身就是参数。因此,是的,从技术上讲,这些术语都不同,但是可以互换使用它们,只要您通常指的是一个位置或容器来将值传递到其中,以便您可以过滤结果。 Metabase 中的参数 在 Metabase 中,您可以使用过滤器小部件或通过 URL 设置参数。参数在 Metabase 中以几种不同的方式发挥作用: SQL 模板 通过向 Metabase 中的 SQL 查询添加参数,您可以创建 SQL 模板,这些模板会向这些查询添加过滤器小部件,从而使人们可以在运行该查询时轻松更改该参数的值。如果我们想在查询中创建一个 SQL 模板,以使用 Sample Database 的 People 表计算每个州/省的客户数量,我们将使用: SELECT count(*) FROM people WHERE state = {%raw%}{{State}}{%endraw%} 通过将 {%raw%}{{State}}{%endraw%} 用双花括号括起来,我们创建了一个参数,该参数为此问题添加了一个过滤器小部件,使人们可以输入他们想要的州/省,而无需更改查询本身的文本,如图 1 所示: {% include image_and_caption.html url=”/glossary/images/parameter/parameter-sql-template.png” description=”图 1. 创建一个 SQL 模板,该模板向查询添加过滤器小部件。” %} 仪表板过滤器 仪表板过滤器允许您设置应用于仪表板的参数。例如,您可以创建一个仪表板过滤器,让人们输入州/省值,并将该过滤器链接到仪表板上的问题或卡片中的“州/省”列。然后,当人们输入他们想要的值(例如北卡罗来纳州,如图 2 所示)时,他们将看到这些卡片相应地更改。 {% include image_and_caption.html url=”/glossary/images/parameter/parameter-dashboard-filter.png” description=”图 2. 应用了“州/省”列过滤器的仪表板。” %} 当您在仪表板过滤器中输入值时,您会注意到 URL 更改为包含该值。 自定义目标 您还可以将参数插入 URL 中,以指示当人们单击仪表板中的图表时会发生什么。例如,您可以通过使用卡片结果中的值来构造一个 URL,将人们定向到另一个仪表板或外部站点,并将该 ID 作为 URL 的一部分,从而设置自定义目标。 也许您有一个仪表板,其中包含跟踪库存中不同产品的销售情况的问题,以及一个仪表板过滤器,让人们输入他们想要查看的产品。您可以更进一步,将该产品的 ID 传递到自定义目标,使用该 ID 值参数化 URL,并将人们发送到您网站上该产品的页面。当您访问该站点时,其 URL 可能如下所示: https://www.your-website.com/products/id?productID=34 在这种情况下,URL 中的 productID=34 就是您的参数。 嵌入 在将 Metabase 问题和仪表板嵌入到您的应用中时,您可以设置参数来自定义不同用户在查看这些嵌入时看到的内容。

阅读更多
数据透视表

一种数据可视化,用于汇总表的行和列,并允许您旋转(透视)列。

什么是数据透视表?数据透视表是一种数据可视化工具,用于汇总表的行和列,并允许您旋转(“透视”)列以不同的方式查看这些汇总。汇总行通常是小计或总计,尽管它们也可以是其他指标,例如平均值。这种将列旋转 90 度的能力,使该列中的值成为透视表的列本身,在尝试跨多个维度(例如时间、位置和类别)分析数据时非常有用。 数据透视表示例 如果我们想查看订单在一周中每天的表现,并按不同的产品类别进行细分,那么数据透视表是一个不错的选择,因为它将使我们能够轻松地浏览大量数值数据。该数据透视表可能如下所示: {% include image_and_caption.html url=”/glossary/images/pivot-table/pivot-table.png” description=”图 2. 一个数据透视表,其中包含有关四个产品类别在一周中不同日期的表现的信息。” %} 拥有包含一周中每天总计的汇总行很不错,但仍然不容易比较不同日期的类别销售额。但是,如果我们透视“创建于”列,使其值成为列标题,则我们的结果如下所示: {% include image_and_caption.html url=”/glossary/images/pivot-table/pivot-table-pivoted.png” description=”图 2. 我们的同一个数据透视表,“创建于”列已透视,使我们能够更好地查看表中的所有数据。” %} 现在我们可以快速比较每天和产品类别的订单,同时仍然可以看到两者的小计,而无需滚动浏览长长的行列表。

阅读更多
谓词

一个求值为真或假的表达式,例如 quantity > 0。真值和假值称为布尔值。

什么是谓词?在 SQL 中,谓词是一种条件表达式,求值为真或假,例如 quantity > 0。在查询中包含谓词可以通过根据表达式返回真还是假来过滤掉不需要的行,从而缩小结果范围。谓词表达式都包含某种比较元素,例如 =、> 或 <。求值后,生成的真值和假值称为布尔值,尽管并非所有数据库都支持布尔值作为数据类型。并非所有数据库都支持相同的谓词列表,尤其是超出数学比较的谓词(例如 BETWEEN 或 ISNULL),因此请查看数据库的文档以确定哪些谓词适用于您的用例。 空值:不是零,只是不存在 虽然谓词通常求值为两个布尔值之一(例如真或假),但如果正在求值的字段完全缺少值,则称为空值。这并不意味着它的值为零,而是该字段中不存在任何值。如果您的谓词表达式要求 quantity > 0,则没有值的行将不会返回真或假,而是返回空值。 谓词示例 谓词的一个示例是简单 SQL SELECT 查询中 WHERE 后面的条件,如下所示: SELECT * from orders WHERE subtotal > 35 在这种情况下,我们的谓词表达式是 subtotal > 35。Orders 表中的每一行在 Subtotal 字段中都有一个值,对于每一行,此谓词评估小计是否大于 35 美元。从那里,我们的查询仅返回小计大于 35 美元的行。 在 Metabase 的查询构建器中,您可以在过滤数据时使用谓词。您还可以在笔记本编辑器中使用自定义表达式编写自己的谓词。在下面的问题中,我们正在过滤 Sample Database 中的 People 表,以仅显示“州/省”字段等于蒙大拿州或 state = MT 的记录: {% include image_and_caption.html url=”/glossary/images/predicate/predicate-filter.png” description=”图 1. Metabase 查询构建器中的谓词表达式(或过滤器),它将仅返回“州/省”字段等于蒙大拿州 (MT) 的记录。” %}

阅读更多

Q

查询构建器

用于在 Metabase 中提问的图形界面。

什么是查询构建器?在 Metabase 中,查询构建器是用于提问的图形界面。如果您不是 SQL 人员,或者只是喜欢使用按钮和下拉菜单而不是代码来分析数据,那么查询构建器可以满足您的需求。如果您不确定要弄清楚关于该数据的什么内容,这些按钮和下拉菜单可以为您提供一些想法,例如列出您可以添加到起始表、模型或已保存问题的过滤器和分组的选项。 使用 Metabase 的查询构建器提问 您可以通过以下几种方式使用查询构建器来提问有关数据的问题: 从数据浏览器开始。 使用数据可视化右侧的侧边栏添加过滤器和汇总。 使用查询构建器界面从头开始创建问题。 查询构建器为构建问题提供了更大的灵活性:除了常规的过滤和汇总选项外,您还可以使用自定义表达式来创建更复杂的过滤器和聚合。您还可以连接表、创建自定义列,并在可视化最终产品之前预览每个步骤的结果。 这些路径不是互斥的——您可以从数据浏览器开始,可视化您的数据,使用侧边栏调整您的问题,打开查询构建器进行其他更改,依此类推。 示例:使用查询构建器 我们将使用查询构建器来构建一个使用 Metabase Sample Database 的问题。假设我们想知道我们的大订单(即小计大于 100 美元的订单)是如何按产品 → 类别细分的。图 1 显示了我们如何在查询构建器中构建此问题: {% include image_and_caption.html url=”/glossary/images/query-builder/notebook-editor.png” description=”图 1. 使用查询构建器提问。” %} 一旦我们可视化了我们的问题,让我们添加另一个过滤器,以便我们仅查看全价订单(即未应用折扣的订单)。图 2 显示了在添加第二个过滤器之前我们的查询构建器的外观: {% include image_and_caption.html url=”/glossary/images/query-builder/second-filter.png” description=”图 2. 在查询构建器中可视化数据时添加第二个过滤器。” %}

阅读更多
问题

在 Metabase 中,问题是查询、其结果及其可视化。

什么是问题?在 Metabase 中,问题是查询、其结果及其可视化。如果您尝试在 Metabase 中弄清楚有关数据的某些信息,那么您可能正在提问或查看团队中其他人创建的问题。在日常使用中,“问题”几乎与“查询”同义。 您可以使用 Metabase 中的问题做什么 您可以使用图形查询构建器或原生查询编辑器在 Metabase 中提出问题,然后执行以下操作: 将您的问题保存到集合中,以便您可以稍后返回或在其基础上构建。 将该问题添加到相关的仪表板。仪表板上的问题称为卡片。 在您的问题上设置电子邮件或 Slack 警报。 通过向团队中的人员发送链接来共享您的问题的结果——即使是您尚未保存的问题。 将您的问题的结果下载为 CSV、XLSX 或 JSON。 将您保存的问题转换为模型。 问题示例 图 1 显示了一个基于 Metabase Sample Database 的问题——我们公司产品的平均评分,按类别细分。在这里,我们将此问题可视化为条形图: {% include image_and_caption.html url=”/glossary/images/question/example-question.png” description=”图 1. 一个示例问题,带有一个汇总,可视化为条形图。” %} 图 2 显示了同一个问题作为表格的外观: {% include image_and_caption.html url=”/glossary/images/question/example-question-table.png” description=”图 2. 同一个问题,可视化为表格。” %} 问题和 Metabase API 在 Metabase API 中,您可以使用 api/card 路由编辑和获取有关 Metabase 实例中问题的信息。

阅读更多

R

关系数据库

表格数据的集合,或管理表格数据存储和检索的应用程序。

什么是关系型数据库?关系型数据库是表格数据的集合,或是管理表格数据存储和检索的应用程序。关系型数据库包含表,表由列(也称为字段)和行(也称为记录)组成。您可以通过将单个字段分配给两个或多个表,在数据库中的表之间建立关系。对于其中一个表,该字段将被指定为实体键,而对于其他表,它将是外键。通过这些关系的建立,您可以跨表查询数据(可能使用 SQL),而无需重新组织或复制该数据。关系型数据库于 1970 年代初期引入,至今仍然是(即使不是唯一的)用于构建数据的主要模型。虽然从技术上讲,关系型数据库指的是您的数据本身,而关系型数据库管理系统 (RDBMS) 指的是您用于管理该数据的软件应用程序,但在现实中,人们经常互换使用这两个术语。关系模型非常普遍,以至于在许多情况下,“数据库”一词本身就暗示了关系型数据库,除非另有说明。 关系型数据库示例 Metabase 的示例数据库(您在我们的文档和教程中看到的示例中使用的数据库)是一个 H2 关系型数据库。图 1 显示了示例数据库中四个表的概览:{% include image_and_caption.html url=”/glossary/images/relational-database/tables-in-sample-db.png” description=”图 1. Metabase 的示例数据库(一个关系型数据库)包含四个表:Products(产品)、Orders(订单)、People(人员)和 Reviews(评论)。” %}

阅读更多

S

SQL

一种标准化且广泛使用的语言,用于访问和操作关系型数据库中的数据。

什么是 SQL?结构化查询语言(称为 SQL)是一种标准化且广泛使用的语言,用于访问和操作关系型数据库中的数据。使用 SQL 涉及编写和执行结构化命令,称为语句,这些语句向数据库传达您需要什么信息或您想要更改什么。SQL 是已发布的 ANSI 和 ISO 标准,这意味着对于该语言包含的内容以及它的工作方式有既定的规则。但是,基于 SQL 的数据库系统(如 PostgreSQL、MySQL、SQL Server 等)各自具有略微不同的功能和它们自己的语法怪癖——没有主要的数据库 100% 符合官方书面标准。 使用 SQL,您可以: 创建和配置数据库、表和索引 在数据库中插入、更新和删除信息 从数据库中检索信息(通常称为查询) 设置和调整数据库权限 “S.Q.L.” 还是 “sequel” 发音?对于发音问题,意见不一,其中一些意见非常强烈。当计算机科学家 Donald Chamberlin 和 Raymond Boyce 在 1970 年代初期首次开发语言规范时,他们称其为 “SEQUEL”(发音为 “sequel”),但在面临商标纠纷时将该语言的名称更改为 SQL。ANSI 和 ISO 标准规定官方发音是首字母缩略词(“S.Q.L.”),但今天两种发音都很常见。所以选择您认为最合适的发音——只是当有人不同意您时不要感到惊讶。 使用 SQL 查询数据库 无论 SQL 查询多么高级或复杂,所有 SQL 查询都涉及告诉数据库从表(或多个表)返回某些列,然后可选地指定关于哪些行应包含在这些结果中以及它们应如何呈现的条件。SQL 不区分大小写,但您经常会看到人们将保留字大写(例如,函数和子句,如 SELECT、WHERE、HAVING 或 ORDER BY)。您可以根据需要将 SQL 语句格式化为单行,但人们通常会将他们的查询分成多行以提高可读性。 SQL 查询示例 这是一个 SQL 查询,要求 Metabase 的示例数据库返回一个订单表,其中订单小计大于 100 美元: SELECT * FROM orders WHERE subtotal > 100 我们可以将此查询分解为三个语句: SELECT * 告诉数据库返回表中的每一列。 FROM orders 告诉数据库那是哪个表。 WHERE subtotal > 100 告诉数据库过滤结果,并且仅返回 Subtotal(小计)字段中的值大于 100 的行。 上面的示例查询是一个非常简单的查询;更高级的查询可以包括连接、聚合、CTEs 和其他用于提取和组织数据的工具。 Metabase 中的 SQL 您不必在 Metabase 中提问时编写 SQL(查询构建器就是为此而设计的),但如果您更喜欢 SQL 查询,则可以使用原生查询编辑器,以及以下功能: SQL 变量(包括字段过滤器) SQL 代码片段 SQL 代码片段控件(在某些计划中可用) 并且如果您选择使用查询构建器在 Metabase 中提问,您可以随时查看为您的查询提供支持的底层 SQL 或将其转换为原生 SQL 查询。

阅读更多
SSO

一种身份验证(auth)设置,允许人们使用一个登录名来访问独立的应用程序。

什么是 SSO?SSO 是一种身份验证(auth)设置,允许人们使用一个登录名来访问独立的应用程序。这有点像使用您的护照进入不同的国家/地区。使用 SSO,您无需为每个帐户使用一个登录名,就像您无需携带特定于每个国家/地区的不同身份证件旅行一样。例如,您可能有两个不同的登录名,用于您的电子邮件和网上银行的两个不同的登录页面。如果您的电子邮件提供商和银行的 IT 团队都设置了 SSO,您将能够使用一个登录页面和登录名来访问这两个网站。{% include image_and_caption.html url=’/glossary/images/sso/google-sign-in.png’ description=”图 1. 您可能从其他应用程序中认出这个“使用 Google 登录”提示。这是一个使用 Google 登录设置 SSO 的示例。” %} SSO 如何工作?由于数字身份验证无法亲自完成,因此您在互联网上的身份由一项服务检查,该服务要求您提供您知道的某些东西(如密码)或您实际拥有的某些东西(如向您的手机发送代码)的证明。这些证明片段称为身份因素。最常见的身份验证方式是通过单个身份因素,例如密码。如果您添加另一个因素,例如电话号码,您将获得双因素身份验证 (2FA)。当然,您可以继续添加因素(电子邮件、验证应用程序等)以获得多因素身份验证 (MFA)。 SSO 不使用您知道或拥有的信息,而是使用称为身份验证令牌的身份因素,该令牌属于 SSO 提供商。身份验证令牌是一个唯一的、匿名的信息片段,当您登录到 SSO 提供商时生成。令牌临时存储在您的浏览器中(如浏览器 cookie)或提供商的服务器上,并且仅在一段时间内有效——通常直到您关闭浏览器,或在您的安全团队设置的过期窗口内。 当您访问使用 SSO 设置的应用程序时,它会自动从 SSO 提供商请求身份验证令牌,而不是要求您登录。如果令牌仍然有效(您在同一会话中登录到 SSO 提供商,并且它尚未过期),则您的身份被视为已验证,并且您将被允许进入应用程序。如果令牌已失效,系统将提示您使用 SSO 提供商登录以创建一个新的令牌。 SSO 在更大的图景中处于什么位置?身份验证仅处理您是谁(身份)。从那里,其他服务会跟踪您被允许去哪里,以及一旦您到达那里可以做什么(访问管理)。身份和访问管理 (IAM) 是这些工具和流程的总称。SSO 和 IAM 工具包的其他部分通常由身份提供商 (IdP)(如 Okta、Auth0 或 OneLogin)打包,并作为云安全的一部分实施。 Metabase 中的 SSO 在 Metabase 中设置 SSO 意味着人们无需创建单独的 Metabase 用户名和密码即可访问您组织的数据。他们只需通过与您选择的身份提供商相同的帐户登录即可。开源版本的 Metabase 可以使用 Google SSO 或 LDAP 进行设置。Metabase 的 Pro 和 Enterprise 版本与 SAML 和 JWT 标准(以及 Google SSO 和 LDAP)配合使用。SSO 还可以与 Metabase Pro 和 Enterprise 计划中的数据沙箱结合使用,以根据用户属性(如他们的部门或角色)定义人们可以查看和交互的数据。

阅读更多
模式

定义数据集组织的设计或结构,包括其表、列、关系、数据类型和完整性约束。

什么是模式?模式是定义数据集组织的设计或结构:哪些列被分组到表中,这些表如何相互关联,以及定义这些列的规则和数据类型。模式是一个过载的术语;它是一个抽象词,积累了很多不同的定义,因此可能会让人感到困惑。根据上下文,模式可以表示: 数据库的总体结构、规范或“蓝图” 展示数据库中表之间如何相互关联的图表 数据库中(众多)表中的单个集合 最后,模式有时意味着特定于您正在使用的数据库平台的内容,例如在 Oracle 中,模式指的是同一用户在数据库中创建的所有对象。 模式作为总体结构:设计和实现 一旦您从高层次的角度弄清楚了您的数据如何组合在一起(即,您的概念数据模型),下一步就是创建一个反映该数据模型的模式,将其从抽象带到一个您的组织可以使用并填充信息的数据库。广义上讲,此过程由两个主要步骤组成: 设计:绘制数据库的结构,在此过程中创建实体关系图 (ERD)。 实现:使用该 ERD 生成 SQL 命令,当在您的数据库中运行时,将创建您想要的模式。 您的模式设计过程的外观取决于您处理的是事务性数据库还是分析型数据库,以及您是从头开始还是已经开始收集数据。无论您在哪个时间点设计模式,您都必须深入思考您组织的需求以及您预计会提出的数据问题。 写时模式 vs. 读时模式 大多数传统的关系型数据库使用写时模式系统,其中数据在写入数据库之前经过验证并格式化为模式。由于正在写入的数据必须符合您已建立的任何特定数据完整性规则(例如,要求字段中的所有值都是唯一的,不接受字段中的空值,或以某种方式格式化日期),因此将此新数据添加到您的数据库可能会很慢。但是,读取时间很快,因为该数据已经过验证。 在读时模式系统中,数据(如数据湖中)仅在读取或从该数据库中提取后才进行验证。读时模式系统往往更灵活,因为您可以存储非结构化数据,而无需担心它是否符合严格的数据模型。在这种情况下,写入数据更快(因为数据在加载时不需要验证),但查询需要更多时间来执行。 您选择写时模式还是读时模式策略将取决于您组织的需求和特定用例。如果拥有结构化且一致的数据集对您的组织很重要,那么写时模式系统可能是您的最佳选择。相比之下,如果您经常需要提取各种数据,而又不总是确切知道数据是什么样的,您可能需要使用读时模式系统。 逻辑模式和物理模式 无论您使用的是写时模式还是读时模式系统,您还需要考虑数据库结构及其实现——即您的逻辑模式和物理模式。逻辑模式定义数据的结构,而该结构的实际实现(例如,您如何以及在何处存储构成数据库的文件和代码)属于物理模式。 逻辑模式 逻辑模式是通过图解表及其字段如何相互关联来创建的。在创建逻辑模式时,您将建立表、关系、字段和视图,回答以下问题: 我们正在收集哪些数据,或者我们想要收集哪些数据? 您的数据库(或其中的单个模式)需要哪些表? 这些表如何相互关联? 每个表需要哪些字段? 这些字段的数据类型是什么? 哪些字段是必需的? 模式作为图表:映射实体和关系 在回答这些和其他问题时,您可能会草绘一个实体关系图 (ERD),该图定义每个表、其字段、它们的完整性约束以及这些表之间的关系,包括建立这些连接的主键和外键,以及表之间的这些关系是一对一、一对多还是多对一。可视化您的表以及它们如何相互关联还可以揭示任何主要的遗漏或冲突。是的,有时您会看到这些图表本身被称为模式。 下图显示了一个模式的实体关系图,该模式包含两个表:PRODUCTS(产品)和 MANUFACTURER(制造商)。“(PK)” 和 “(FK)” 注释告诉我们哪些字段是主键和外键,连接这些表的线表示一对多关系,即一个制造商可以链接到多个产品。{% include image_and_caption.html url=”/glossary/images/schema/simple-erd.png” description=”图 2. 包含两个表的模式的实体关系图。” %} 您可以在纸上或使用设计软件映射您的模式,该软件可以将您的图表直接转换为您需要用来实现数据库的 SQL 命令。此时,您的模式是平台无关的;映射这些规则和关系不会将您限制在任何单个数据库软件上。 物理模式 一旦您确定了数据库的逻辑配置,您将创建一个物理模式以将其实现到特定的 RDBMS 中,定义数据库文件将驻留在何处以及它们在磁盘上的存储分配。 模式作为众多表中的一个集合 虽然如果您的数据库只有少数用户并且包含每个人都需要访问的数据,则单个表集合可能就足够了,但您可能会发现,依赖数据库中的单个模式并不适合您的组织。如果您正在处理大量表(想想几十个、数百个或数千个),将这些表分组到单独的模式中将有助于从组织的角度来看,使您可以将相似的信息存储在一起,同时保留在必要时跨模式查询的能力。在数据库中保留多个模式也可以从安全角度来看有所帮助,例如将包含敏感信息的表分隔到只有需要访问的人才能访问的模式中,通常与视图结合使用。 事务性数据库与分析型数据库的模式设计 在考虑事务性数据库(也称为操作型数据库)的模式时,您的数据将需要进行一定程度的规范化并遵守数据完整性标准,因为对于那些小型事务和 OLTP 而言,效率和性能至关重要。分析型数据库的模式设计看起来会有所不同。首先,您可能已经收集了原始数据,可能来自多个来源,现在需要施加一些结构才能对其进行分析。在这种情况下,冗余是可以接受的,因为分析型数据库更侧重于可探索性,而较少关注性能。在这里,您的模式也可以定义得更宽松,因为不需要固定的模式(如规范化)。 分析型数据库的模式设计更多的是了解来自各个来源的数据的位置,以及了解您需要连接哪些表才能回答您的问题。 星型模式 您将看到应用于分析型数据库的一种常见结构是星型模式,它将数据分为事实表(即定量数据),这些事实表与描述这些事实的多个维度表相关联。在星型模式的简单实现中,几个维度表都围绕着单个事实表并与之相关,在图表形式中看起来像一颗星星,事实表位于其中心,如下所示: {% include image_and_caption.html url=”/glossary/images/schema/star-schema.png” description=”图 2. 简单星型模式的实体关系图。” %} 星型模式中的表通常是非规范化的,这会带来更好的分析查询性能。 创建数据库模式 大多数数据库平台(如 Redshift 和 PostgreSQL)使用“模式”来表示数据集的配置以及该数据集内表和其他命名对象的非嵌套分组,尽管 Oracle 将模式定义为单个数据库用户创建和拥有的所有对象。要在您的 RDBMS 中创建模式,请使用查询 CREATE SCHEMA,如本例所示,我们在其中创建一个模式,其中包含两个由 customer_id 字段链接的表: CREATE SCHEMA new_schema; CREATE TABLE new_schema.orders ( order_id product_id customer_id subtotal order_date ) CREATE TABLE new_schema.customers ( customer_id customer_name customer_address customer_email ); 这是一个非常简单的模式;我们没有指定数据类型或表字段上的任何其他约束。如果我们想要求 customers 表中的 customer_id 字段并指示其数据类型为整数,我们将字段格式化为如下所示: customer_id INT NOT NULL 请注意,在 MySQL 中,CREATE SCHEMA 与 CREATE DATABASE 同义。

阅读更多
汇总表

聚合的结果,该结果保存在数据库或数据仓库中,以便人们可以使用这些预计算的指标。

什么是汇总表?汇总表是聚合的结果,该结果保存在数据库或数据仓库中,以便人们可以使用这些预计算的指标。“汇总表”一词可能会让人感到困惑,因为有些人使用“汇总表”来描述聚合函数的任何结果,例如您在按某些度量和维度进行过滤和分组后获得的表。根据此定义,汇总表基本上与数据透视表相同,只是没有数据透视。 此处的区别在于这些表是否保存在您的数据仓库中。在您的数据仓库中创建汇总表可以使人们更容易生成报告,而无需查询原始数据。从这个意义上讲,汇总表的功能很像物化视图(不一定聚合数据)。 示例:数据仓库中的汇总表 例如,也许您正在使用一个分析型数据库,该数据库使用星型模式设置,其中包含一个事实表,其中包含数万个单独的订单记录,周围环绕着描述这些订单的维度表。如果您的组织中的某人想要生成一份每周报告,其中包含过去七天按产品类别划分的销售数据,那么每次都从您的原始事实表和维度表计算该数据将是低效且昂贵的。相反,创建汇总表可让您更少地连接这些表并聚合该数据。然后在将来,当有人创建该报告时,他们可以使用汇总表作为基础来执行此操作,而不是需要每次都从头开始计算这些数字。 虽然与汇总表相关联有一些维护工作(例如,确保您的数据按计划刷新或调整过滤器和分组,如果它们与人们的需求不完全一致),但它们仍然往往是处理大型数据集的一种非常有效的方式。

阅读更多

T

V

变量

程序或查询中可以更改的任何值。在 Metabase 中,SQL 查询中的变量用双大括号括起来。

什么是变量?变量是程序或查询中可以更改的任何值。在 SQL 中,声明变量允许您在运行查询时临时存储单个值。参数是一种变量,但并非所有变量都是参数。当人们谈论参数时,他们通常特指仪表板或报告的最终用户修改的变量,而不是查询文本本身内的变量。 Metabase 中的变量示例 在 Metabase 中,变量是 SQL 查询中值的占位符,人们无需重写查询本身即可更改这些值。使用变量允许您过滤数据,通常通过在 SQL 编辑器中的问题上方添加过滤器小部件来实现。变量用双大括号括起来,如下所示:{% raw %}{{variable_name}}{% endraw %}。在下面的示例中,我们创建一个变量来根据示例数据库的“人物”表中的“来源”字段进行过滤: SELECT * FROM people WHERE source = {% raw %}{{source}}{% endraw %} 当您在查询中包含变量(在本例中为 {% raw %}{{source}}{% endraw %})时,Metabase 会在 SQL 编辑器上方添加一个过滤器小部件,如图 1 所示。由于过滤器小部件映射到我们创建的变量,我们可以将不同的值插入其中以过滤不同的来源。 {% include image_and_caption.html url=”/glossary/images/variable/variable-example-source.png” description=”图 1. 查询编辑器上方的过滤器小部件映射到双大括号括起来的变量。” %}

阅读更多
视图

一个查询及其结果,其功能类似于数据库中的虚拟表。

什么是视图?视图是一个查询及其结果,其功能类似于数据库中的虚拟表。数据库按需计算视图,这意味着它们不是预先计算或物化的,因此不占用数据库中的任何存储空间。您可以将视图视为虚拟表或逻辑表。数据库视图允许您组合来自多个表的信息,并以最适合需要查询这些信息的人员的方式格式化该信息。您(或数据库管理员)可以创建一个视图,隐藏杂乱表中的不必要字段,或连接表以汇总相关数据。通过使用视图作为起点,人们无需每次都运行相同的复杂查询,即可获得关于数据的实际问题的答案。查询视图的缺点是这些查询可能需要很长时间才能运行,特别是当该视图是多个表或多个连接的结果时。数据库管理员还出于安全目的使用视图,例如创建视图以隐藏基本表中存在的某些字段。这样,其他用户仍然可以访问和查询他们需要的数据,而不会获得对敏感字段或行的访问权限。 视图 vs. 物化视图 如果视图是虚拟表(根据需要计算),那么物化视图就像数据库中的常规表。虽然视图要求每次引用该视图时都重新运行查询,但物化视图是预先计算并保存在数据库中的视图。因此,物化视图占用数据库中的空间,但由于数据库不必每次都计算物化视图,因此在查询时,它们的性能比标准数据库视图快得多(就像查询普通表一样)。 何时应该(以及不应该)使用数据库视图 如果您有以下情况,那么在数据库中创建视图是一个好主意: 您需要定期访问复杂查询的结果,并且不想每次都键入该查询。 您希望通过限制对敏感信息的访问来加强数据库安全性。 您想要创建自定义列,而无需更改数据库的底层结构。 您希望通过隐藏不太可能被查询的字段来简化表的显示。 但是,如果数据库的底层结构容易发生更改,您可能不想依赖视图;一旦字段名称更改,您已建立为视图的查询可能会中断。 您的 BI 工具可能也具有类似于视图的功能,无论是模型、保存的问题还是 SQL 代码片段。这里重要的区别在于,这些都是 BI 工具世界中的功能,而视图(物化与否)是内置于数据库本身的。 视图示例 使用 Metabase 的示例数据库,假设我们想要基于“人物”表创建一个视图,供我们在宾夕法尼亚州的团队使用,以访问我们位于宾夕法尼亚州的客户的姓名、地址、生日和电子邮件等信息,但不包括用户密码。我们将在数据库中创建该视图,方法是运行下面显示的查询,该查询创建视图,将其命名为 pennsylvania_customers,仅包含我们想要的“人物”表中的列,并且仅显示“州”字段中的值是宾夕法尼亚州缩写 (PA) 的记录。 CREATE VIEW pennsylvania_customers AS SELECT id address email name city state birth_date zip created_at FROM people WHERE state = 'PA' 然后,对于未来的查询,我们在宾夕法尼亚州的团队可以通过查询 pennsylvania_customers 作为他们的起点来访问他们需要的关于客户群的信息。 虽然视图是任何基于 SQL 的数据库或数据仓库的基本功能,但创建、物化和维护视图的具体细节可能因您使用的数据库软件或数据仓库而异。

阅读更多

W

X