1897年瑟尔斯·罗伯克目录(Sears Roebuck,一家知名零售商)
简介听到“商品目录”这个词,你会想到什么?对我来说,成长过程中想到的是西尔斯公司的邮购商品目录,它运行了接近一百年(从1894年到1993年,)。西尔斯商品目录包含应有尽有的产品,包括服装、医疗用品、家居用品和家电,甚至整套房屋!①
单独使用时,“目录”这个词可能会有歧义,通常定义为“系统地排列并带有描述性细节的项目完整列表”² 或者是“通常系统排列的事物完整列表”³。因此,我们需要在“目录”这个词前加上描述性词语(或形容词)来明确我们指的是哪种类型的目录。对于西尔斯来说,我们通常称它为“邮购零售目录”,或者简称为“西尔斯目录”就好。
目录是什么? 目录是...接下来,我们将重点放在数据与分析市场。当你听到“目录”这个词,你会想到什么?你是否想到一系列被称为“数据目录”的产品?你是否想到具体名称中包含“目录”这个词的产品或功能,例如“Hive目录”、 “Spark目录”、AWS的“Glue数据目录”、Databricks的“Unity目录”,或是“Iceberg目录”?
在我与客户的交流中,我发现客户们对“目录”的目的和范围感到非常困惑。最近这种困惑增加,部分原因是某些数据平台过于宽松地使用“目录”这个词,将许多以前不在“目录”中的功能和能力也纳入其中,以及它们相关的开放表格格式和目录。由于大多数关于“目录”的讨论集中在评估/比较数据平台解决方案上,因此使用清晰的词汇并明确说明比较的内容非常重要,这样我们才不会不小心将苹果和橙子混为一谈(打个比方)。
那么,咱们试试理解一下数据和分析市场中的“数据目录”。
不同的目录种类我认为“分类目录”可以分为以下三种:
- 企业数据目录:提供关于组织内所有数据的信息目录,涵盖不同数据库。
- 数据治理目录:提供信息的治理政策目录,集中定义的治理政策涵盖不同的数据库,这些政策被定义并由各个数据库强制执行。
- 数据库对象目录:操作型目录,直接被数据平台和查询引擎用于读写数据/对象,通常称为元存储。
在这里,术语“信息性的”和“操作性的”用于区分这些目录与数据库或查询引擎的关系——具体来说,操作性指的是引擎直接使用目录来查询数据或与其他对象进行操作,而信息性目录则不直接由数据库或查询引擎访问,而是供人们用来记录、发现和管理企业内部的数据资产,帮助企业内的员工理解和保护数据资产。
在我的经验中,“目录”这个词在数据和分析领域通常指的是企业数据目录,但它们经常与数据治理目录有重叠,这可能会导致混淆。最近,数据库对象元数据存储也开始被称作“目录”,这进一步增加了混乱。下面的维恩图可以帮助你更清晰地理解。
值得注意的是,将数据库对象目录放置在企业数据平台内部的位置并不完全准确。比如,当使用Hive Metastore和Glue Catalog时,一些数据库对象的元数据则由数据库之外的独立服务来管理。即便如此,其他大多数数据库对象的元数据仍然由各个数据库服务自行管理。我将在以后的博客文章中对此进行更多讨论,不过,目前这个图还是能大致说明问题,有助于阐明我的观点。
在接下来的部分,我将简单介绍一下不同类别的“产品目录”,并举一些热门产品的例子,同时介绍它们通常会提供的功能。
请注意:为了尽可能清晰地列出,我将为每个类别列出一些具体的产品和功能。在这里,我想说明我没有列出每个类别下的所有可用产品,也没有列举出每个类别下产品的所有功能。
企业数据目录例如以下产品:
-
专有
- Collibra
- Alation
- Atlan - 开放源代码
- Apache Atlas
- DataHub
- OpenMetadata
主要特点如下:
- 对象元数据
- 搜索和发现
- 分类
- 数据质量
- 治理政策定义
- 对象历史
- 业务词汇表
- 跨库
如上所述,根据我的经验,在数据和分析领域,“目录”这个词通常指的是企业数据目录。传统上,这些产品帮助企业编目企业内部存在的所有数据,这些数据分散在多个不同的数据存储中。结合易于搜索的功能,企业数据目录成为了组织查找数据的一站式平台。
除了提供丰富的数据目录之外,这些工具还提供了一个业务词典特性,允许数据负责人提供额外信息,比如描述、业务定义、所有者联系方式等。
尽管各工具的功能有所不同,但它们通常也包含与数据治理相关的一些功能,例如数据分类、数据质量,甚至定义数据治理政策的内容,这些政策会被推行到源数据库以确保执行。
近年来,我发现了一个有趣的行业趋势,即企业数据平台开始加入许多传统上由企业数据目录提供的功能。特别是搜索和发现、分类、数据质量和对象血缘。它们主要支持其平台上数据的这些功能,比如搜索和发现、分类、数据质量以及对象血缘。这确实是一个值得关注的趋势。
这里的关键在于,这些工具几乎总是信息性的,这意味着它们不会被数据库或查询引擎直接用来查询数据(这会被归类为操作性的)。相反,这些工具从各种源系统中提取元数据并进行存储和增强。
数据治理分类目录(用于管理数据的分类指南)例如的产品如下:
- 专有软件
- Immuta(专有软件)
- Privacera(专有软件) - 开源软件
- Apache Ranger(开源软件)
主要特点包括:,
- 对象元数据
- 搜索与发现
- 分类
- 数据质量
- 治理政策定义
- 监控
- 审批工作流
- 跨数据库功能
数据治理目录工具在许多方面与企业数据目录相似,特别是它们都跟踪来自各种源系统的对象元数据,让使用者可以搜索和发现数据。此外,它们还能帮助分类敏感信息,监控数据的质量并定义治理策略。
这些工具与企业数据目录的主要区别在于它们在管理和执行数据治理政策时提供的广度和深度。这些工具允许定义治理政策,支持强大的审批流程,并提供了高级功能来监控源系统中的访问和治理情况。
就像企业数据目录一样,数据治理目录工具主要提供信息,用于集中定义跨越不同数据库的治理规则,并将这些规则推送到底层数据库执行。
这些最初的两类工具经过多年的发展,支持了许多相同的功能特性,这也导致了“目录”这个词被滥用。
数据库对象清单示例产品如下:
-
企业数据库
- 任何企业 RDBMS
- Teradata
- Redshift
- Snowflake -
基于 Hive API 的元数据存储
- Hive 元数据存储
- Spark 目录
- Glue 目录
- Unity 目录
- Unity 目录开源版本 - Iceberg 目录 (元数据存储)
- Tabular 系统
- Polaris
主要特点:
- 对象的元数据
- 关于表和列的统计信息
- 其他对象相关的元数据
- 事务管理
数据库对象目录(通常简称为“元存储”这一名词)具有操作性,直接被数据平台和查询引擎用于读写数据及其他数据库对象。企业数据库自1974年IBM的System R起就开始包含对象元存储,因此这一功能并不新鲜。此外,企业数据库传统上不仅限于数据表,还提供了许多其他类型的对象,包括用户、角色、视图、存储过程、UDxFs(用户定义的函数)等。因此,数据库对象目录在不同数据平台上的范围可能存在很大差异。
但所有数据库对象目录系统都具有一个共同点,即它们会持久化其所支持的每种对象的相关元数据。表是最常见且基础的对象,除了记录基本的结构和元数据信息(如表属性、列名和类型等)之外,元存储通常还会记录关于数据的统计信息,以便优化查询性能。除了持久化对象元数据外,这些产品或功能还可以提供一些基本的表管理功能,例如事务管理。
在文件为基础的数据湖世界里,最近的对象元存储几乎都是从Hive元存储API发展而来的。而如今备受关注的最新版本是Iceberg目录及其相关的REST API。在我的下一篇博客文章里,我将详细讨论数据库对象目录及其演变。
让人摸不着头脑的目录我们应该如何应对Databricks的Unity Catalog,以及他们即将推出的Unity Catalog的开源(OSS)项目?在上面提到的数据库对象目录说明中,我在上面标记了这两个Unity Catalog产品,以便进一步讨论。
我将最近在这个领域的许多混乱归因于Databricks及其对“目录”这个词的随意使用。他们的专有Unity目录远不仅仅是像Hive元存储库那样的简单数据库对象目录。他们继续添加各种功能,而不仅仅是原三个类别中的,仍称其为“目录”。这是“目录”这个词被过度使用的一种方式。
结尾在与客户的交谈中,我发现关于“目录”的目的和范围有很多困惑。正如我之前提到的,我认为“目录”主要分为三大类:企业数据目录、数据治理目录和数据库对象目录。虽然一些工具可以很好地归入某一类别,但现在也有一些工具似乎故意模糊这些界限,使得导致了很大的混淆。
如果不小心使用,或者故意含糊使用诸如“目录”之类的术语可能会引起很多混淆。重要的是,数据“目录”提供的具体功能才是关键。比较不同数据平台或查询引擎所提到的“目录”功能时,重要的是要比较相似的功能。所以下次当你听到供应商使用“目录”这个术语时,问问自己这个可能模糊的“目录”术语具体包含了哪些功能。
对我来说,最有趣的“目录”类别是数据库对象目录(或元数据存储),尤其是因为目前在这个特定领域发生了如此多的变化。当我们行业最初面对“大数据”的出现时,我们放弃了传统的关系型数据库,包括它们提供的所有强大的管理和治理功能在内的所有功能,直接在自己的文件系统中存储数据。这大约是在2006年,当时Hadoop的第一个版本发布。从那时起,基于Hadoop和Spark的查询引擎一直在努力恢复原来失去的功能(当然是在不同的规模上),包括最基本的一项功能,即对象元数据存储。
所以请继续关注我的下一篇文章,我们将更深入地探讨数据库对象目录(或元数据仓库)的历史和功能,重点关注Iceberg目录!与此同时,不妨看看Apache Polaris,这是第一个开源的Iceberg元数据仓库,具备集中式的跨引擎安全和访问功能。另外,Snowflake现在提供了一个托管版本的Polaris,这使得即使您不使用Snowflake,也能更轻松地上手。
注释[1]: 参见早期邮购目录的历史了解关于 Sears 目录早期历史的好文章
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章