基于数据虚拟化技术构建现代企业数据架构

发布时间:2024-04-10 09:50:19 | 来源:中国网 | 作者:辛文 | 责任编辑:乔沐

在当今数据驱动的世界中,很多企业都在生成大量数据,这些数据经过有效分析后,可以提供有价值的见解。为了实现这一目标,组织需要一种能够处理数据集成、数据管理和数据交付的强大数据基础设施。目前,有三种流行的方法可为用户提供对数据的快速访问:大数据湖仓引擎、数据虚拟化和数据编织。虽然大数据湖仓引擎可以提供方便、可扩展的 SQL查询功能,但它们可能并不适合所有企业。投资数据湖引擎而不考虑未来需求,可能会导致长期遗憾。因此,在选择可随贵组织共同成长的解决方案之前,必须比较和对大比数据湖仓引擎、数据虚拟化和数据编织的功能。

大数据湖仓技术的兴起

近年来,大数据湖/湖仓一体技术概念特别受追捧,因为它们使组织能够存储来自各种数据源的结构化和非结构化数据。传统数据仓库要求在存储之前对数据进行结构化和清洗,而数据湖可以摄取原始数据,使用户能够直接存储和分析信息,而无需进行耗时且必须投入大量资源的预处理。

随着数据量的不断增长,企业要求解决方案必须能够高效处理和分析数据以获得可行见解。数据湖允许组织在没有预定义架构的情况下以原始格式摄取数据,进而提供所需的灵活性。数据按原样存储,从而实现速度更快的摄取。数据湖经过不断发展,增加了很多功能,如 ACID合规,因此现在它们的功能可与数据仓库的功能融合。通常,短语“数据湖仓”是指数据湖架构的这一后续阶段。

为何企业需要的不仅仅是数据湖或数据湖仓

数据湖和数据湖仓建立在这样一种理念之上,即组织必须首先收集并以物理方式整合数据,然后才能从中获得价值。对于很多应用场景,这可能是一种可行的方法。尽管如此,由于几个原因,数据仍将保持分布状态: 

一刀切行不通:有很多类型的数据平台,如操作关系数据库管理系统 (RDBMS)、noSQL数据源、数据湖和企业数据仓库 (EDW)。例如,Amazon Web Services (AWS)提供超过十五种专用引擎来支持各种数据模型,每种引擎都专门针对特定应用场景。事实是,没有任何一种数据平台能够支持所有这些应用场景。

整合可能会被禁止:数据隐私和数据主权规则正在不断发展。某些国家/地区对原国家/地区以外的数据传输有限制。此外,某些国家/地区的隐私法律限制向第三方披露个人数据。处于法律原因,在这些国家/地区开展业务的公司可能无法传输其数据,或将其数据发送给第三方提供商进行存储或处理。

现代数据架构必须适应分布式数据长期存在的趋势

三十多年来,组织一直使用的数据仓库基于相同的集中式数据架构构建。但在这段时间里,很少有(如果有)公司将所有数据成功整合到一个平台中。这可能是由于上述一个或多个原因,或者很多其他原因。尽管这些平台基于云的现代版本消除了传统的本地部署的限制,简化了扩展,并且是现代数据架构的关键组成部分,但过去阻碍全面整合到一个平台的因素今天依然存在。为了成功实现数据架构的现代化,组织必须将逻辑数据管理添加到其数据策略中。

新的概念:逻辑数据管理

现代数据架构必须平衡数据的物理收集(在集中式架构中进行)与数据的逻辑连接(在去中心化架构中进行)。逻辑数据管理提供跨所有企业数据资产的统一数据访问层,可以实现立即访问任何数据集,而无需首先拷贝或复制数据集。逻辑数据管理的优势包括: 

易于使用:使用者可从一个位置访问任何数据。 

敏捷的数据集成选项:一个平台可实现几乎所有数据集成操作,包括完全复制和转换、缓存以及实时联合。

集中式安全和治理:在一个逻辑数据访问层应用访问控制和策略实施,从而确保一致性。 

经得起未来考验:通过将数据访问与底层数据源分离,IT部门可以自由更改底层数据存储,而不会影响业务用户。在进行更改时,更新逻辑数据访问层中的单个条目会自动将数据使用者引导到新位置,甚至不会引起察觉。企业可以按照所需速度运营,IT部门可以按照所需速度进行更改。

不断发展的逻辑数据管理生态系统

逻辑数据管理领域并非新鲜事物,包含很多成熟技术和新的产品类别。我们将探讨集成和管理分布式数据的三种流行方法的优势和局限性,以帮助您做出明智的决策。

数据湖引擎使用户能对存储在数据湖中的数据运行 SQL查询。其关键功能之一是能在交互式 SQL查询中,改善针对存储在数据湖中的大型复杂数据集运行的查询的性能。因此,一些分析机构将这些系统称为“查询加速器”,而相比之下,第一代基于 Hadoop的数据湖则更专注于速度较慢的批处理。这些系统通常使用类似于经典大规模并行处理 (MPP)数据库管理系统的查询架构,并且通常需要专门技能进行操作和维护。有些数据湖引擎还提供对外部源的实时访问,但通常功能有限。

数据虚拟化使用户能够通过统一的逻辑视图访问来自多个不同来源的数据,从而隐藏底层数据源的复杂性,并为用户提供简化、标准化的数据视图。这使用户能够像在单个集成数据源中一样查询和分析数据,即便数据以不同的格式、结构或位置存储也无妨。数据虚拟化提供了一个跨整个企业的语义数据模型,使数据分析师、开发人员和业务用户只需很少的培训即可轻松理解和使用该模型。

数据编织可跨混合/多云环境集成数据,并使数据工程任务能够自动执行。数据编织提供了全面的自动化功能,可跨不同数据源和类型实现高效、自动化的数据管理和分析。这些功能包括数据集成、数据准备和处理、数据目录和发现,以及数据治理和安全。请注意,数据虚拟化通常是数据编织计划的核心,它支持跨环境的逻辑数据访问,而不是总是采用点对点物理数据复制。但从数据虚拟化转变为数据编织,还需要很多其他功能。 

采用逻辑方法进行数据管理所需的功能

数据编织架构越来越受欢迎,因为它们提供了比传统数据湖架构更全面、更灵活的数据管理方法。通过统一来自多个源的数据,并提供高级数据处理和分析功能,数据编织使组织能够获得更深入的见解、制定更明智的决策。此外,数据编织还可以提供更全面的治理和安全控制措施,让企业能更轻松地做到遵守数据隐私和合规性法规。

正如技术行业常见的那样,当新架构流行起来时,供应商会争相让自己的产品和服务与该领域关联。然而,在提供必要功能方面,供应商的能力千差万别。我们需要对各类别产品的关键功能进行细化分析,以有效评估来自不同产品类别的不同软件技术,并制定出最适合您的业务需求的明智决策。

1. 数据访问层可以简化对来自多个源的数据的访问和集成(通常通过 SQL),即便这些源可能并非原生支持 SQL。它还可为数据使用者提供一致、统一的数据视图,而不管底层数据源的位置或格式如何。数据访问层包括用于连接到各种数据源(如数据库、应用程序、API或 Web服务)的连接器或适配器。在评估不同技术时,需要查看可用连接器、其下推功能的复杂性,以及它们支持的系统类型。您肯定不希望向可能不支持您当前或未来所有数据源的解决方案投资。

2. 数据湖查询优化可以优化针对数据湖执行的查询,确保查询高效执行,并且具有可接受的性能水平。技术包括大规模并行处理 (MPP)和不同风格的查询加速。在选择其中某一工具时,数据湖查询优化是一项重要考虑因素,因为它能改善查询性能、降低数据传输成本,并提高整体系统效率。请注意,数据湖引擎的设计决定了当数据湖是主要信息源时其通常可非常高效地运行,但在分布式环境中性能会下降。请务必了解您的全部或大部分数据是否都位于数据湖中,如果答案是否定的,可能对性能产生什么影响。

3. 联合和分布式查询引擎使用户能够访问和查询来自多个源的数据,仿佛一切都来自单个数据库。此类查询引擎可以处理跨多个数据源的查询,并将结果合并到可返回给用户的单个结果集中。它们可以访问和集成来自不同类型来源的数据,包括数据库、应用程序、Web服务和数据湖。联合查询引擎负责识别相关数据源、检索所需数据,并将结果合并到单个视图中。除了具有与独立查询加速器相同的多种技术以外,联合查询引擎还将提供其他经过专门设计和优化的技术,以跨多个数据源运行,如高级查询下推、查询重写、查询加速及缓存。 

4. 数据复制(持久性)是指创建和管理数据副本。复制可以采用多种形式:用于点对点复制的提取-转换-加载 (ETL)流程、用于数据湖或数据湖库内操作的提取-加载-转换 (ELT)流程、来自外部 API的微批处理、从流式传输通道摄取,以及缓存和加速结构。每种应用场景都不相同,现代架构必须提供技术灵活性,以创建、管理和执行这些复制任务。

5. 元数据存储库是存储有关数据源的元数据(如其架构、数据类型、数据统计信息和关系)的集中式组件。它还提供有关使用者数据模型的信息,如它们与源的映射、它们的沿袭和转换。元数据存储库还可以存储活动元数据(请参阅下面的“主动元数据”)。它不仅是查询优化器的基础,也是数据治理流程(如管理更改、设置安全性以及某些自助服务功能,这些功能将在其他部分中深入描述)的基础。 

6. 安全和治理层提供高级机制,用于管理身份验证和对特定数据的访问。例如,如果列被标记为个人身份信息 (PII),则可以将权限设置为不共享该信息,或仅与某一授权用户子集共享。这是一个非常注重细节的领域。请务必了解您考虑的解决方案是否支持高级功能,如基于属性的访问控制 (ABAC)系统,以强制执行数据访问的安全策略。策略引擎定义并强制执行安全策略,这些策略可以根据各种因素(包括数据敏感性、用户角色和业务需求)进行配置。了解您所考虑的工具是否可与贵组织的现有安全和治理工具集成也很有必要。 

7. 使用层可为数据使用者提供对所有数据的集中访问。此层将以最终用户的首选形式向其提供数据。大多数系统会为 SQL查询提供 JDBC或 ODBC支持,但要考虑所有潜在使用者,以及是否需要更多选项。其他选项包括 ADO.NET、MDX、RESTful Web服务、OData、GraphQL、GeoJSON、导出到 Microsoft Excel/SQL、订阅 Kafka,以及 JMS消息队列等。

8. 通用语义层可以提供多种功能,用于定义更易于最终用户使用和理解的数据结构。有多种与语义建模相关的功能,如用易记名称和描述定义派生数据模型、公司指标定义、标记和分类、治理控制(如背书或弃用)、数据质量标签等等。这些功能拥有一个共同目标,即通过使数据更易于理解和使用,实现数据访问民主化。如果这是贵组织的一个重要目标,那么语义绝对应该是您评估中的一项关键标准。

9. 设计界面和相关工具有助于管理系统。从仅命令行工具 (command-line-only tools),到使数据工程师和最终用户能够轻松与系统交互的 Web UI,各供应商提供的产品功能差异很大。考虑哪种类型的界面对您来说使用舒适,但请记住,如果您计划将数据民主化以供整个组织的所有人员使用,则应确保该工具对于所有潜在用户而言足够直观。 

10. 增强数据目录提供整个组织内数据资产的集中、可搜索的清单,以及元数据、数据沿袭和有关数据的其他信息。增强数据目录根据数据资产的内容和结构对其进行自动分类和标记。它们还使数据管理员和分析师能够使用其他信息(如业务定义、数据质量指标和使用信息)手动标记和注释数据资产。它们使用户能够快速轻松地发现和访问整个组织中的数据资产,从而实现更好的协作和决策。

11. 主动元数据可以自动执行数据工程任务,以降低复杂性并优化业务成果和价值。传统上,当人们谈论“元数据”时,他们指的是用于描述其他数据的数据。在现代数据管理中,其他技术元数据,如事务日志、用户登录和查询优化计划等元素,也用于创建主动元数据。主动元数据是用于描述系统性能以及人员如何与系统互操作等指标的数据。主动元数据还被用作 FinOps计划的组成部分,以加强履行对组织数据基础设施和成本的共同责任。

12. 推荐引擎利用机器学习算法分析主动元数据(如搜索查询、数据访问和数据下载),以识别模式,并为提高系统运行效率提出建议,或对用户可能感兴趣的其他数据资产提出建议。因此,人工驱动的数据管理任务将会减少,业务用户可以快速访问所需数据。 

13. 数据准备和交付层使用户能在类似沙盒的环境中访问通用语义层,在该环境中,他们可以探索和转换数据以创建新数据集。这是实现自助服务的关键功能,可以确保使用者能够执行最后一步转换,以将数据集调整为最终面向使用者的形式,并能捕捉他们的反馈。

14. 编排和 DataOps 可以管理数据管道和工作流,并自动执行与数据相关的流程。编排是指协调多个与数据相关的任务和工作流(通常跨多个系统或平台),这可能涉及管理集成来自多个源的数据的数据管道、协调数据处理和分析任务。另一方面,DataOps是指将开发运维原则和实践应用于数据管理,强调协作和自动化,旨在提高数据相关流程的速度、质量和可靠性。

数据湖引擎旨在供数据工程师用于处理集中式存储库中的大量结构化和非结构化数据。此类引擎后来得到了增强,以支持其他外部数据源。另一方面,数据虚拟化旨在使用户能够访问和查询来自任何来源的数据,就像数据存储在单个数据库中一样。虽然数据湖引擎对于所有数据都位于数据湖中的查询极为高效,但对于外部引擎(例如 EDW)或数据分布于分布式数据源的查询,数据虚拟化解决方案通常优于数据湖引擎。 

数据编织及数据虚拟化技术利用其他两个类别的最佳功能来提供跨多个源和系统的统一、集成数据视图,包括治理、安全性、数据集成方法等方面的其他高级功能。数据编织与其他产品类别之间的另一个区别是数据编织专注于实现以前手动任务的自动化。

通过提供上述所有功能,数据虚拟化为现代数据架构奠定了基础,让该架构可以不断适应和发展,以满足当今数据驱动型企业的需求。它可提升敏捷性、灵活性和创新性,使组织能够充分释放其数据湖以及整个企业数据资产的潜力,并获得推动业务增长的见解。

张青锋,StarNET(辰星网科)CTO及联合创始人。毕业于新加坡国立大学(硕士)及西安交通大学;曾在Oracle, Sybase, StarNET等公司长期从事解决方案架构、技术咨询、产品研发等工作;在大数据/数据湖、数据虚拟化、图数据库/知识图谱等领域具有多年技术架构及产品研发经验。

查看网址