现代数据栈是云原生应用程序的集合,它们作为企业数据基础架构的基础,成为组织处理数据的事实标准。就像工业价值链一样,现代数据栈包含不同的组件,所有组件都相互关联。在之前的博客中对现代数据栈进行了高级概述,但每个组件都值得详细关注。让我们从头开始:数据集成。这篇博客将通过回答以下问题来总结数据集成的主要方面:
• 什么是数据集成?
• 数据集成的例子有哪些?
• 将数据集成到统一目的地有什么好处?
• 如何整合数据?ETL 与 ELT
• 数据集成有哪些不同的存储选项?
• 为什么数据可观测性在数据集成阶段至关重要
什么是数据集成?
随着企业生成和收集的数据量继续呈指数级增长,公司需要整合这些数据以使其有意义。有效的数据集成意味着从不同来源(如基于云的应用程序、生产数据库、实时数据馈送等)提取数据,并创建一个集中、统一的信息视图。
数据集成技术:ETL 与 ELT
我已经在这篇博客[1]中讨论了这两种技术之间的区别。ETL(提取、转换、加载)和 ELT(提取、加载、转换)是两种最流行的数据集成技术,用于将数据传输到统一的目标,如数据库、数据仓库、数据湖或数据仓库.
正如我在之前的博客[2]中提到的,由于本地存储解决方案的成本很高,因此首选 ETL 方法。将未转换的数据加载到这些仓库的成本太高,导致组织在提取数据后立即进行所需的数据转换。然而随着云计算的兴起,存储变得便宜得多。因此无需在将数据加载到仓库之前执行更改。让我们更详细地介绍这两种不同的技术。
ETL 数据集成
ETL 是一种数据集成技术,其中数据从源系统中提取、转换并加载到统一的目标中。在云数据仓库兴起之前,ETL 是首选方法。然而由于 ETL 的多重缺点,ETL 很快被放弃并被 ELT 取代。ETL 的缺点可能如下:
• 由于只有转换后的数据存储在目的地,因此组织需要事先知道他们将如何使用数据来进行适当的修改。修改这些要求可能非常耗时且成本高昂。
• 在过去几年中,数据量和数据需求急剧增长。不幸的是许多 ETL 流程无法扩展以适当匹配这些重负载。在处理大量数据时,一些常见的错误是加载不相关的数据和由于 CPU 不足和串行数据处理而不是并行数据处理而导致的瓶颈。
• 在 ETL 中,管道一次提取和转换数据,一旦数据源中的模式发生变化,就会中断。例如当一个字段被删除时。这会损害转换数据所需的代码,并且必须由数据工程师重新编写。
• 将大量原始数据加载到存储中时,数据安全性可能会成为一个问题。管理用户对存储在数据仓库中的原始数据的访问对于应对这一挑战至关重要。
• 由于数据以最少的处理方式存储,因此可能需要额外的步骤来确保您遵守领先的安全协议,包括 GDPR 和 HIPAA。
ELT 数据集成
ELT 是一种数据集成方法,其中数据从源系统中提取,加载到目标系统,然后根据组织的需要进行转换。这种方法的核心特点是数据在整个提取和加载阶段保持不变,使团队始终可以访问原始的原始数据。这种方法的主要优势在于,随着组织内数据的需求和用途发生变化,可以使用存储系统中可用的可随时访问的原始数据相应地重新转换数据。除了避免组织在将数据加载到仓库之前了解数据需求的困难之外,ELT 还为数据工程师提供了更多的数据分析自主权,因为他们无需修改管道来重新转换数据。
数据集成有哪些不同的存储选项?
今天有多种数据存储选项可用。数据集成的挑战之一是评估选择是什么,请记住每种技术都是不同的,旨在满足不同类型的数据存储和处理要求。让我们详细介绍三种最常见的数据存储选项。
• 数据仓库。数据仓库可以定义为用于存储和分析来自不同来源的大量信息的数据存储库。最重要的是,数据仓库通常用于商业智能和数据分析。这是因为数据仓库已针对跨大型结构化数据集运行分析进行了优化。如果组织不需要管理非结构化数据,这是上上选。
• 数据湖。数据湖是用于存储大量非结构化数据的系统,其中未定义数据的用途。该解决方案以较低的成本存储大量数据。然而这是以进行有效和快速分析的可能性为代价的。因此如果目标是存储大量未定义用途的非结构化数据,那么将数据集成到数据湖中可能是上上选。
• Lakehouse。Lakehouse是一种新的存储架构,它结合了数据仓库的数据管理功能和数据湖的灵活性和较低的成本。如果组织将受益于数据仓库和数据湖的功能,这将是上上选。
如何选择数据集成工具?
市场上有几种不同的数据集成工具。可能很复杂,并且可能取决于许多不同的变量。让我们简要介绍一下在选择数据集成工具时需要考虑的一些事项:
• 数据连接器质量
• 开源与专有:两者之间的选择可能很复杂。专有软件是指公司拥有的软件。另一方面开源是指任何人都可以访问和修改的软件。这意味着开源连接器适用于更大范围的数据源,但专有连接器通常质量更好。
• 标准化模式和规范化:来自 API 的数据未标准化。规范化可最大限度地减少重复数据、简化查询并避免数据修改问题。相反,标准化确保数据在内部是一致的。
• 支持来源和目的地。确保选择的数据集成支持使用的源和目标非常重要。
• 自动化。一般来说,好的数据工具应该总是尽量减少人工干预。数据集成工具应具有自动架构迁移、自动调整 API 以及快速高效地摄取、复制和交付数据的功能。
• 安全性和合规性。如上所述,必须了解选择的工具如何符合现行法规。
• 用例。需要使用数据集成工具完成哪些工作?数据集成工具可用于数据创建、数据管道、虚拟化、清理、发现、实时等。因此了解需求对于选择正确的数据集成工具至关重要。
• 易用性。包含在数据栈中的任何工具都应该易于学习和直观。
为什么数据可观测性在数据集成阶段至关重要
将数据从源头转移到目的地是数据工程师工作的关键部分,它使公司能够获得一系列好处,例如:在组织中创建单一的事实来源,降低安全和运营风险,获得转变数据的能力数据具有相同的工具和方法等。但是数据质量问题可以并且经常在这个关键阶段实现。当从外部系统提取数据时,团队对这个外部系统在做什么是视而不见的。因此无法控制这些外部系统何时更改 API 或模式。而且作为这些不同来源的消费者,必须知道什么时候发生了变化,因此需要这种可见性,因为数据集成是起点。而且如果没有足够快地注意到一些异常情况,那么不良数据最终会与其余数据一起出现。因此从一开始到数据可观测性,确保整个数据传输过程中的数据可靠性至关重要。
要采取预防性方法并在数据进入消费之前从源头检测问题,需要数据血缘。简而言之,数据从一侧到达,从另一侧传出。因此如果在数据生命周期的任何阶段检测到错误,需要知道问题出在哪里。这是确保在遇到问题时能够迅速做出反应的方法。
让我们通过一个实际的例子。数据集成中非常常见的一个用例是尝试全面了解客户。组织与其客户的每个接触点都分布在十多种不同的 SaaS 服务中——产品数据库、支付数据库、支付处理器等等,需要集中所有数据源。但是由于有很多来源,因此出错的可能性很高。如果没有适当的数据可观测性和血缘,那么将看到异常而不知道它们来自哪里。所以要解决这些问题,数据工程师需要花很多时间去排查问题出在哪里,才能最终排除故障。对于数据工程师来说,这可能会浪费大量时间,他们大部分时间都忙于调试,而不是从事创造价值的活动。因此访问良好的数据血缘至关重要,因为它可以快速进入上游并检查哪里出了问题,从而使团队能够立即恢复。
结论
数据集成工具使企业能够通过打破数据孤岛来充分发挥其潜力。通过数据集成,公司能够将最重要的信息整合到一个地方,从而提高效率和生产力。数据集成对于组织创建单一事实来源、降低安全和运营风险以及保持数据一致性至关重要。虽然集成来自多个不同来源的数据可以使组织能够做出成功的业务决策,但它也可能导致数据质量不佳。如果从数据集成阶段开始的数据问题没有得到迅速解决,它们将使组织的所有数据变得不可靠。出于这个原因,在现代数据栈的这个阶段已经拥有良好的数据可观测性实践是至关重要的。