数据摄取是连接操作和分析世界的基本过程。对于将数据从原始操作环境中的多个来源传输到分析领域至关重要。
数据摄取是操作层面(数据来源)和分析层面(数据转化为 AI 模型、仪表板和 API 等分析产品)之间的关键链接
这种赋能的本质是能够依靠各种数据源生成数据驱动的见解并实施人工智能模型。组织的分析能力通常与其有效分析的数据源数量直接相关。因此,选择正确的数据摄取策略至关重要。这些策略必须足够强大,能够处理各种相关数据源,从 CRM、ERP 和财务系统等标准操作应用程序到 IoT 传感器、API 等更加非常规的应用程序以及抓取的文档、图像、和视频。
数据摄取是更广泛的数据平台难题中的关键部分。摄取策略的选择取决于底层架构设计,并且可以通过各种工具风格来执行。
从更广泛的角度来看,很明显数据摄取虽然只是一个要素,但却是组织内更大的数据平台难题的关键组成部分。该数据平台通常充当数字化转型计划的基石,帮助组织实现其业务目标。数据平台的核心由各种架构模式和一系列工具组成,每个工具在其功能和有效性方面都发挥着重要的作用。
本文探讨指导选择合适的数据摄取技术的架构范例。我的目标是提炼每种模式的本质,阐明它们对数据摄取过程的战略影响。提出这些模式背后的目标是识别并克服一些障碍,这些障碍往往使理论上最简单但绝对必要的任务变得复杂:将数据集成到分析框架中。掌握数据摄取的战略重要性对于保证在组织广阔的数据生态系统中数据的流畅过渡和有效利用至关重要。
我们研究的第一个架构方法是统一数据存储库模式,其中单个存储系统可以满足操作应用程序需求和分析处理需求。通常,该系统是关系数据库管理系统(RDBMS)。在这样的设置中,同一数据库用于日常操作和数据分析,从而消除了不同存储解决方案之间数据传输的必要性。
统一的数据存储库满足操作应用程序的需求并支持分析处理。分析见解是通过虚拟化、使用视图或通过复制和转换数据生成的
在这种方法中,有两种流行的子模式:
虽然此模型提供了数据管理的简单性和原始数据的可用性,但它确实存在很大的局限性:
鉴于这些限制,通常不建议使用统一数据存储库方法来处理大型数据集或处理多个物理数据源。它可能适合在强大的数据库上运行的较小规模的应用程序,其中规模不会变得复杂。
数据虚拟化方法以初始模式为基础,利用专用软件在多个底层数据源上建立虚拟化数据层。该中间层允许执行由原始数据源部分处理的查询,将结果集成到一个内聚的数据集中进行分析。
虚拟化数据层协调跨一系列底层数据源的实时查询的执行
这种方法的主要优点包括:
然而,这种方法也带来了几个问题:
值得注意的是,特定的数据虚拟化解决方案可能提供独特的机制来解决这些问题。我对任何重大架构决策(包括这一决策)的首要建议是使用您的特定基础架构彻底测试数据虚拟化解决方案。这将有助于了解其功能和局限性,从而进行适当的扩展和微调以优化集成和分析过程。
ETL 代表提取、转换、加载,代表了数据处理中成熟的范例。最初,从数据源 ( Extract )获取数据,然后在 ETL 服务器上进行精炼 ( Transform ),最后将精炼后的输出存入以分析为中心的数据库 ( Load )。
ETL 服务器执行设计界面中配置的 ETL 过程。这些管道管理从源头提取数据、将其转换为适合分析的格式,以及随后将其加载到数据仓库或操作数据存储等数据平台中。数据产品通常访问和利用这些平台中存储的信息
多年来,众多 ETL 工具提供商都支持这种方法,提供各种专门的转换技术和设计风格。流行的风格涉及图形界面,用户可以在直观的可视化工作流程中互连提取、转换和加载操作。这些过程通常可以通过脚本或直接 SQL 查询进一步定制。
ETL 的主要优点包括:
然而,ETL 也并非没有缺点,这导致了替代模型的出现:
ETL 模式的这些常见限制通常可以由特定的 ETL 供应商来解决。特别是当 ETL 工具集成到为特定云 DWH 设计的综合套件中时,可以缓解与速度和性能相关的问题。尽管如此,了解 ETL 工具的发展轨迹保持领先地位至关重要,确保它继续符合不断变化的数据摄取要求,例如不断增长的数据量或新兴数据源类型。
ELT 共享 ETL 的基本步骤,但通过重组和重新定义这些流程而有所不同。在英语教学中:
ELT 管道分为两个不同的部分:EL 组件,用于处理将数据引入数据平台;转换组件,在数据平台内执行以处理和细化数据
此重组流程解决了几个 ETL 限制:
尽管有这些改进,ELT 模型还是引入了新的复杂性:
ELT 模式因其灵活性而受到个人喜爱,但它需要致力于管理多工具环境和复杂的编排策略。
除了既定的模式之外,新的方法论和模式正在不断出现。本节讨论两种新兴模式:推送和流处理。
前面提到的传统模式通常属于“拉”类型,其中分析平面主动从操作平面检索数据。相比之下,“推送”方法反转了此流程:一旦发生更改,例如创建、读取、更新和删除 (CRUD) 操作,操作平面就会主动将数据发送或“推送”到分析平面。
虽然传统模式遵循“拉”策略,但在某些情况下“推”可能是一种选择
推送方法经常出现在流式架构中(接下来讨论),但并不局限于它们。从根本上讲,它涉及操作平面启动数据传输到分析平面指定的端点。这种设置通常要求开发团队通过单独的组件或通过增强现有的操作应用程序来实现推送机制。
这种方法的主要好处是,它允许分析团队专注于数据价值转换,而不必分心构建摄取管道 —— 操作系统负责数据交付。然而,有两个明显的缺点:
推送模式最适合软件开发成熟度较高和/或在采购现成解决方案时可以协商数据推送功能的组织。在这不可行的情况下,谨慎的做法可能是将推送与其他数据摄取模式结合起来,以确保平稳高效的数据集成。
流处理也称为流处理或事件流,是生成数据时的连续流,支持实时处理和分析以获得即时见解。这些系统对于即时决策任务至关重要,并支持金融交易、实时分析和物联网监控等活动的大容量、低延迟处理。
一般来说,流式中间件可用于通过两种方式促进数据摄取:(1) 使用 ETL/ELT 使用者来获取流式消息并将其推送到分析平面,或 (2) 利用流式缓存作为源用于分析
将流处理与分析结合起来时,有两种方法脱颖而出:
流数据和更多静态数据的统一正在KAPPA 和 LAMBDA等数据架构模式中绘制蓝图。这两种架构提供了一种将两个世界结合在一起的方法(在需要时)。
数据摄取方法的战略集成是不断发展的数据分析领域的基石。本文重点介绍了四种主要的数据摄取模式——统一数据存储库、数据虚拟化、ETL 和 ELT——每种模式都有独特的优势和限制。当我们剖析这些模式时,我们看到了统一数据存储库的简单性但可扩展性有限,数据虚拟化的近实时功能(以潜在的性能成本为代价),ETL 的集中控制受到潜在瓶颈和刚性的影响,以及灵活性和灵活性。ELT 的可扩展性与编排挑战相平衡。
此外,新兴的流处理范例强调了行业向实时分析的转变。这些方法虽然相对较新,但正在为更加即时和动态的数据处理方法铺平道路,适应信息生成的不断速度。
在后续文章中,我将更深入地探讨如何为数据平台选择合适的数据摄取工具。此过程中的一个关键考虑因素是该工具将集成到的架构模式。
原文作者:janmeskens