数据和商业智能术语表

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、Name、Address、City、State 等字段:图 1. People 表概览。这些字段中的每一个都是一个属性——这些字段中的值描述了与它们关联的记录的某些方面,在这种情况下是 People 表中的一个“人”。Metabase 中的用户属性 同步用户属性仅在专业版和企业版(自托管和 Metabase Cloud)中可用。属性也可以指与某个特定用户关联的独特变量值,比如 User_ID。这种结构被称为键值对,有时也称为属性值对。在 Metabase 中,某些版本允许您自己设置用户属性(或通过 SSO 将它们传递给 Metabase)。您可以使用这些用户属性在仪表盘上设置自定义目标,例如,当用户点击图表时,使用用户 ID 来参数化 URL。用户属性也是数据沙箱的重要组成部分,它让您可以精细控制使用您的 Metabase 实例的人可以访问的数据。由于数据沙箱与单个用户关联,设置独特的用户属性可以让 Metabase 确切地知道如何根据查看者来过滤表格。

阅读更多

B

BI 工具

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

BI 工具是一款专为人们在不依赖代码的情况下查看数据而设计的应用程序。这些应用程序允许人们以表格、图表和仪表盘的形式可视化和共享数据。BI 工具可插入您组织中现有的数据源,例如您的数据仓库、CRM 或事件分析服务。常见的 BI 工具 电子表格应用程序 BI 工具的一个经典例子是像 Microsoft Excel 或 Google Sheets 这样的电子表格应用程序,您可以在其中以表格、数据透视表或图表的形式可视化数据,并将结果作为单个文件(或云中这些文件的链接)共享。BI 平台 BI 工具通常被认为是一个仅用于可视化数据和制作报告的应用程序。而 BI 平台(如 Metabase)是一种 BI 工具,可以处理报告之外的其他任务,例如数据建模、数据目录、版本控制和权限管理。BI 工具如何融入数据栈?图 1. BI 工具属于现代数据栈的分析组件。BI 工具是可以在数据栈的用户端设置的众多分析工具之一。特别是 BI 平台,可以处理与数据栈其他部分相同的一些任务。以下是您可以预期各部分如何交互的方式:BI 工具 vs. 数据库 BI 工具不是数据源——它们不能取代生产数据库或数据仓库来存储您组织拥有的数据。BI 工具通过运行查询并显示结果来从数据库中提取信息。BI 工具 vs. ETL BI 工具不能取代 ETL(或 ELT)来按计划摄取或转换大量数据。但是,与 ETL 一样,一些 BI 平台可以通过动态运行查询来处理数据建模和数据拼接(连接来自不同数据库的数据)。BI 工具 vs. 事件分析服务 事件或网络分析服务(如 Google Analytics、Segment 或 Amplitude)从您的产品中收集使用数据。尽管这些服务带有自己的界面来可视化和共享该数据,但它们不被视为 BI 工具。您可以将它们视为可以独立使用的迷你数据栈。事件分析服务可以通过与中央 BI 工具结合来集成到您的核心数据栈中。您可以从服务中下载事件数据并将其移动到连接到您的 BI 工具的数据仓库中,或者如果支持,直接将服务连接到您的 BI 工具。BI 工具 vs. 开源编码工具 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 示例数据库中 Orders 表的图像,其中“创建于”列已突出显示。“创建于”列的数据类型是 DateTime,此列中的每个值都对应于单个订单的时间戳。图 1. Orders 表概览,其中“创建于”列已突出显示。列与字段 虽然列和字段在技术上不是一回事,但通常可以互换使用这些术语。请参阅列与字段。但是,请记住,列并不总是直接对应数据库中的字段。例如,您可能想在 Metabase 中创建一个包含计算值的自定义列,比如一个显示每个订单折扣百分比的列。您可以通过告诉 Metabase 计算折扣除以小计并在新列中显示结果值来创建此自定义列。列式存储 虽然许多传统的关系数据库以行的形式存储数据,并且通常最适合保存事务数据,但一些数据库(如为分析优化的数据仓库)利用列式存储。列式数据库(也称为面向列的数据库)物理上将一列的值存储在一起,而不是基于整行进行索引。这可以大大加快分析查询和聚合函数的速度,因为这些查询将能够从磁盘上的同一位置检索相似的数据,而不是执行跨数据库的大量读取来从单个记录中提取列的值。

阅读更多

D

仪表盘

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

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

阅读更多
数据字典

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

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

阅读更多
数据湖

数据湖是用来存储结构化和非结构化信息的地方,通常以文件或二进制大对象 (blob) 的形式存在。

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

阅读更多
数据模型

任何组织和标记信息的模式。

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

阅读更多

E

ERD

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

ERD,即实体关系图 (entity relationship diagram),是数据库中表如何相互连接的图形表示。ERD 从高层次展示了数据库的结构(或模式)。在设计新的数据模型或识别现有模式中的问题时,ERD 是一个有用的工具。实体关系图基本上就是用方框(您的实体或表)和连接线(它们之间的关系)组成的。您的数据库软件可能有一些内置功能来创建 ERD,但您也可以使用您最喜欢的设计软件,或者采用传统方式,在一张纸上画出您的 ERD。如何做并不重要;真正重要的是确保您的图表准确且合乎逻辑,这样您才能为您的特定用例设计出最有效的数据库。ERD 示例这是一个 ERD 示例,展示了 Metabase 的示例数据库:图 1. Metabase 示例数据库的简单 ERD。四个表,Orders(订单)、Products(产品)、People(用户)和 Reviews(评论),是我们的实体,连接线显示了它们之间的三个一对多关系。ERD 设计和表示法在绘制实体关系图时,每个方框应包含该表的名称、字段和键信息(主键和外键)等信息。您会注意到在上面的示例中,每个表的键信息都在字段名称旁边用 (PK) 和 (FK) 标出。实体之间的线条类型说明了每个表与其他表的关系类型。不同的组织和行业使用不同的 ERD 表示法约定,但最常见的一种是鸦爪表示法 (crow’s foot notation),之所以这样命名,是因为三叉符号(用于表示“多”的那个)看起来有点像鸟的脚。图 2 显示了鸦爪表示法中常用的符号及其对应的关系类型:图 2. 鸦爪表示法中用于表示不同类型表关系的线条。

阅读更多
嵌入式分析

使用第三方软件在您的应用程序中包含图表和仪表盘,以便客户可以进行查询。

嵌入式分析 (Embedded analytics) 指的是在您的应用程序中使用第三方软件,以允许您的用户查询他们的数据。嵌入式分析可以指在您的应用中简单地插入静态图表(通常通过 iframe),但通常指的是一种更具交互性的体验,用户可以查看和创建图表、表格和仪表盘,并总体上自行探索他们的数据。嵌入式分析不仅仅是在您的应用中使用图表库;分析软件应该能够与单点登录 (SSO) 协同工作、管理组和权限,甚至进行数据建模,所有这些都使得将分析功能整合到您的产品中变得更加容易。提供嵌入式分析的软件通常允许您对图表和仪表盘进行白标处理,使其看起来像是您应用的一部分。组织通常使用第三方工具(如 Metabase)来嵌入分析,而不是自己构建,原因有二:1) 通常更便宜(无论是短期还是长期),2) 您提供的用户体验会比自己构建解决方案更好。分析很快就会变得非常复杂,大多数人宁愿将资源投入到他们的核心业务上,也不愿尝试自己内部开发分析功能。嵌入式分析示例请查看一个包含三个不同网站的演示,每个网站都嵌入了使用 Metabase 作为后台的分析功能。(您可以在右上角的导航栏中切换网站)metaba.se/sdk-demo。

阅读更多
嵌入

将一个应用的部分功能置于另一个应用之内。Metabase 使用 iframe 来嵌入问题、仪表盘或(在某些套餐中)完整的 Metabase 应用程序。

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

阅读更多

F

G

H

I

J

连接

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

连接 (join) 是关系数据库中两个表的结果的组合。虽然“连接”这个词听起来像是您在合并表本身,但连接实际上是取自两个(或更多)不同表的行,并返回一个新的行集,该行集结合了这些表的列,使用实体键和外键来确定哪些行是相关的。连接的类型有四种 SQL 连接类型:* **左外连接 (Left outer join)**:选择表 A 的所有记录,以及表 B 中满足连接条件的记录(如果有的话)。* **右外连接 (Right outer join)**:选择表 B 的所有记录,以及表 A 中满足连接条件的记录(如果有的话)。* **内连接 (Inner join)**:仅选择表 A 和表 B 中连接条件得到满足的记录。* **全外连接 (Full outer join)**:选择两个表的所有记录,无论连接条件是否得到满足。Metabase 中的连接示例Metabase 在查询构建器中提出的问题默认使用左外连接,但原生 SQL 查询默认使用内连接(即,如果您在查询中只使用 `JOIN` 而没有指定连接类型)。假设我们想要返回 Metabase 示例数据库中 `People` 和 `Orders` 表的结果,例如一个包含订单 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 "Order ID", people.name AS "Name", people.id AS "User ID" FROM people JOIN orders ON people.id = orders.user_ID`在这里,我们确定了连接发生的位置(在这种情况下,连接在 `People` → `ID` 和 `Orders` → `User_ID`,一个实体键和一个外键)。

阅读更多

K

L

M

元数据

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

元数据 (Metadata) 是描述数据的信息,以便更容易地查找、操作和利用该数据。元数据示例想一想您计算机上的一个文件,比如一个数字图像或文本文档。除了许多其他属性外,该文件还有一个名称、文件类型、扩展名、大小以及记录其创建、上次打开和上次修改时间的时间戳。这些都是元数据——这些属性本身都不是文件,但它们确实告诉您关于文件的重要信息。理解和跟踪这些元数据告诉您和您的计算机该如何对该文件进行排序和处理,比如向您的计算机指示在打开该文件时使用什么软件。元数据存在于分析世界之外,几乎无处不在。它在各种行业中都很重要,从摄影到图书馆再到广播电视,因为任何处理或生成数据的组织都需要能够找到和组织它。元数据有时是人类可读的(比如书的标题或数据库中的字段名),但也可以是机器可读的,比如 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 显示了示例数据库的 `Products` 表的元数据视图。如您所见,此视图提供了有用的信息,如列名、描述、字段类型和数据类型:{% include image_and_caption.html url=”/glossary/images/metadata/metadata-data-reference.png” description=”图 2. 在数据参考部分查看 `Products` 表的元数据。” %}

阅读更多
指标

指标是在度量上执行的计算。在 Metabase 中,大写的“指标”(Metric) 是一个基于单个表的、带或不带筛选器的已保存聚合。

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

阅读更多

N

规范化

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

数据规范化 (Data normalization) 是在关系数据库中构建信息以减少冗余的过程。规范化数据可确保数据库中的表尽可能高效地运行,消除歧义,使每个表都有单一的用途。从非规范化数据库迁移到规范化数据库时,您可能需要拆分现有表以创建更多、更小的表。这些新表将具有更窄的关注点,并通过实体键和外键与其他表链接。规范化还带来了减少整体数据库大小和简化数据库维护的额外好处,因为您不再在多个地方存储相同的信息。数据规范化示例规范化过程是根据相互构建的规则进行的,这些规则被称为范式 (normal forms)。第一范式 (1NF) 规定字段不应在单个单元格内存储多个值,并且表中的每个字段都应是唯一的。这是一个例子:**非规范化表**| 产品_ID | 产品_名称 | 产品_颜色1 | 产品_颜色2 ||---|---|---|---|| P001 | 针织开衫 | 粉色 | 栗色 || P002 | 靴型牛仔裤 | 海军蓝 | | | P003 | 亚麻背心 | 驼色 | 米白色 || P004 | 跑鞋 | 橙色 | |您会注意到我们有两个包含相似信息的字段,关于产品颜色。为了使这个表符合 1NF,我们需要将这个表拆分成两个可以连接在一起的独立表。**规范化的产品名称表**| 产品_ID | 产品_名称 ||---|---|| P001 | 针织西装 | P002 | 靴型牛仔裤 | P003 | 亚麻背心 | P004 | 跑鞋 **规范化的产品颜色表**| 产品_ID | 产品_颜色 ||---|---|| P001 | 粉色 || P001 | 栗色 || P002 | 海军蓝 || P003 | 驼色 || P003 | 米白色 || P004 | 橙色 请查看我们的学习文章,了解 2NF 和 3NF 的示例。虽然存在超出这三种的范式,但它们的使用在很大程度上是理论性的,前三种范式对于大多数实际的数据库需求来说应该足够了。

阅读更多

O

P

参数

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

参数 (parameter) 是一种特殊类型的变量,用于指定查询的输入。设置参数允许最终用户输入一个值(例如在仪表盘或报告中),以更改该查询返回的数据,通常是按度量或维度进行筛选。参数将该值传递给正在运行的查询,该查询的结果将取决于用户输入的任何值。参数 vs. 变量 vs. 参数值您可能会看到“参数”与“变量”或“参数值”互换使用,因此有必要在此指出一些区别。* **参数**是一种变量;它只是一个将某个特定输入值传递给正在运行的程序或查询的变量。但并非所有变量都是参数——您可能还有在程序或查询内部设置的变量,不能被另一端的人修改。* **参数值** (argument) 指的是在您的程序或查询运行时传递的值本身。例如,如果您将参数设置为 `{% raw %}{{productID}}{% endraw %}`,并输入值为 34,那么您的参数值就是 34。参数定义了将有一个输入值,但输入值本身是参数值。所以是的,从技术上讲,这些术语都有所不同,但可以互换使用,只要您通常指的是一个用于传递值以便筛选结果的位置或容器即可。Metabase 中的参数在 Metabase 中,您可以使用筛选小组件或通过 URL 设置参数。参数在 Metabase 中有几种不同的应用方式:**SQL 模板**通过向 Metabase 中的 SQL 查询添加参数,您可以创建 SQL 模板,为这些查询添加筛选小组件,从而让人们在运行查询时可以轻松更改该参数的值。如果我们想在使用示例数据库的 `People` 表的查询上创建一个 SQL 模板,以计算每个州的客户数量,我们会使用:`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 问题和仪表盘时,您可以设置参数来自定义不同用户在查看这些嵌入内容时看到的内容。

阅读更多
透视表

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

数据透视表 (pivot table) 是一种数据可视化工具,可以汇总表的行和列,并允许您旋转(“透视”)列以不同方式查看这些汇总。汇总行通常是小计或总计,但也可以是其他指标,如平均值。这种将列旋转 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 中,谓词 (predicate) 是一种条件表达式,其计算结果为真或假,例如 `quantity > 0`。在查询中包含谓词可以通过根据表达式返回真或假来筛选掉不需要的行,从而缩小结果范围。谓词表达式都包含某种比较元素,如 `=`、`>` 或 `<`。计算时,得到的真和假的值被称为布尔值,但并非所有数据库都支持布尔值作为一种数据类型。并非所有数据库都支持相同的谓词列表,特别是超出数学比较范围的谓词(如 `BETWEEN` 或 `ISNULL`),因此请查阅您的数据库文档以确定哪些谓词适用于您的用例。空值:不是零,只是不存在虽然谓词通常计算为两个布尔值之一(如真或假),但如果被计算的字段完全没有值,它就被称为空值 (null)。这并不意味着它的值是零,而是该字段中不存在值。如果您的谓词表达式要求 `quantity > 0`,那么没有值的行将不会返回真或假,而是返回空值。谓词示例谓词的一个例子是简单 SQL `SELECT` 查询中跟在 `WHERE` 之后的条件,如下所示:`SELECT * from orders WHERE subtotal > 35`在这种情况下,我们的谓词表达式是 `subtotal > 35`。`Orders` 表中的每一行在 `Subtotal` 字段中都有一个值,对于每一行,这个谓词都会评估小计是否大于 35 美元这个条件是真还是假。然后,我们的查询只返回那些小计大于 35 美元的行。在 Metabase 的查询构建器中,您在筛选数据时会使用谓词。您还可以在笔记本编辑器中使用自定义表达式编写自己的谓词。在下面的问题中,我们正在筛选示例数据库中的 `People` 表,以仅显示 `State` 字段等于蒙大拿州,即 `state = MT` 的记录:{% include image_and_caption.html url=”/glossary/images/predicate/predicate-filter.png” description=”图 1. Metabase 查询构建器中的一个谓词表达式(或筛选器),它将只返回 `State` 字段等于蒙大拿州 (MT) 的记录。” %}

阅读更多

Q

查询构建器

了解查询构建器,这是在 Metabase 中提问的图形界面。

在 Metabase 中,查询构建器 (query builder) 是用于提问的图形界面。如果您不是 SQL 专家,或者只是更喜欢使用按钮和下拉菜单而不是代码来分析数据,查询构建器可以满足您的需求。而且,如果您不确定自己想从数据中找出什么,这些按钮和下拉菜单可以给您一些想法,比如列出您可以添加到起始表、模型或已保存问题中的筛选和分组选项。使用 Metabase 的查询构建器提问您可以通过几种方式使用查询构建器来对数据提问:* **从数据浏览器开始**。使用数据可视化右侧的侧边栏添加筛选和汇总。* **使用查询构建器界面从头创建您的问题**。查询构建器为构建问题提供了更大的灵活性:除了常规的筛选和汇总选项外,您还可以使用自定义表达式来创建更复杂的筛选和聚合。您还可以连接表、创建自定义列,并在可视化最终产品之前预览每一步的结果。这些路径并非相互排斥——您可以从数据浏览器开始,可视化您的数据,使用侧边栏调整您的问题,打开查询构建器进行其他更改,等等。示例:使用查询构建器我们将使用查询构建器来构建一个使用 Metabase 示例数据库的问题。假设我们想知道我们的大额订单(即小计大于 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 中,一个问题 (question) 就是一个查询、其结果及其可视化。如果您想在 Metabase 中了解您的数据,您可能是在提问,或者在查看团队中其他人创建的问题。在日常使用中,“问题”与“查询”几乎是同义词。您可以在 Metabase 中对问题做什么您可以在 Metabase 中使用图形查询构建器或原生查询编辑器来提问,然后可以做一些事情,比如:* **将您的问题保存到一个集合中**,以便您以后可以回来查看或在其基础上继续构建。* **将该问题添加到相关的仪表盘中**。仪表盘上的问题被称为卡片。* **在您的问题上设置电子邮件或 Slack 提醒**。* **通过向团队成员发送链接来分享您问题的结果**——即使是您尚未保存的问题。* **以 CSV、XLSX 或 JSON 格式下载您问题的结果**。* **将您保存的问题转换为模型**。问题示例图 1 显示了一个基于 Metabase 示例数据库的问题——我们公司产品的平均评分,按类别细分。在这里,我们已将此问题可视化为条形图:{% 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

关系数据库

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

关系数据库 (relational database) 是表格数据的集合,或管理表格数据存储和检索的应用程序。关系数据库包含由列(也称为字段)和行(也称为记录)组成的表。您可以通过将单个字段分配给两个或多个表来在数据库中的表之间建立关系。对于其中一个表,该字段将被指定为实体键,而对于其他表,它将是外键。通过这些关系,您可以跨表查询数据(可能使用 SQL),而无需重新组织或复制该数据。关系数据库于 20 世纪 70 年代初引入,至今仍然是构建数据的主要模型(如果不是唯一的话)。虽然从技术上讲,关系数据库指的是您的数据本身,而关系数据库管理系统 (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

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

结构化查询语言(Structured query language,简称 SQL)是一种标准化的、广泛使用的语言,用于在关系数据库中访问和操作数据。使用 SQL 涉及编写和执行结构化命令,即语句,这些语句会告知数据库您需要什么信息或想更改什么。SQL 是已发布的 ANSI 和 ISO 标准,这意味着关于该语言具体包含什么以及如何工作,都有既定的规则。然而,基于 SQL 的数据库系统(如 PostgreSQL、MySQL、SQL Server 等)各自具有略微不同的功能和自身的语法特性——没有哪个主要数据库是 100% 符合官方书面标准的。使用 SQL,您可以:创建和配置数据库、表和索引;在数据库中插入、更新和删除信息;从数据库中检索信息(通常称为查询);设置和调整数据库权限。它的发音是“S.Q.L.”还是“sequel”?在发音问题上,意见存在分歧,其中一些观点非常坚定。当计算机科学家 Donald Chamberlin 和 Raymond Boyce 在 20 世纪 70 年代初首次开发该语言规范时,他们称之为“SEQUEL”(发音为“sequel”),但在面临商标争议时,将该语言的名称更改为 SQL。ANSI 和 ISO 标准规定,官方发音是首字母缩写词(“S.Q.L.”),但这两种发音在今天都很常见。所以,选择您觉得听起来最好的发音即可——只是当有人不同意您时,不要感到惊讶。用 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 的行。上面的示例查询非常简单;更高级的查询可以包括联接、聚合、CTE 以及其他用于提取和组织数据的工具。Metabase 中的 SQL 在 Metabase 中提问时,您不必编写 SQL(这是查询构建器的用途),但如果您更喜欢 SQL 查询,原生查询编辑器随时为您服务,并提供以下功能:SQL 变量(包括字段筛选器)、SQL 片段、SQL 片段控件(在某些计划中可用)。如果您选择使用查询构建器在 Metabase 中提问,您始终可以查看支持您问题的底层 SQL 或将其转换为原生 SQL 查询。

阅读更多
SSO

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

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)。在 Metabase Pro 和 Enterprise 计划中,SSO 还可以与数据沙箱结合使用,根据用户属性(如他们的部门或角色)来定义人们可以查看和交互的数据。

阅读更多
Schema (数据库结构)

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

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

阅读更多

W

X

© . This site is unofficial and not affiliated with Metabase, Inc.