构建数据基础设施的重要性
我们公司使用多种数据存储,用于构建应用程序、进行分析以及做出明智的数据驱动决策。作为数据工程团队的一员,我们必须跟上组织的发展和规模。
随着数据量(volume)、数据速度(velocity)和数据多样性(variety)的增加,存储-移动-管理成为一项艰巨的任务。(看看大数据的三大 V 特性已经发挥作用)。
数据工程师的职责之一是选择正确的原则(ETL-ELT;Kappa-Lambda;治理)和基础设施(存储;计算;框架)。如何以及为何使用上述各项,发挥着重要作用。
准备创建数据管道
在构建数据管道之前,请务必就现有数据和系统提出以下几个问题:
- 数据的来源和目标是什么?(数据流是本地还是外部)
- 这是一次性程序,还是需要扩展?
- 数据平台的成本和预算是多少?
- 是需要实时处理还是批量处理,系统是否支持该方法?
- 我们是否有现有的基础设施来支持其运行,并在未来获得人员支持?
- 是否有现成的企业级平台可以完成所有工作?(自建 vs 购买)
创建数据管道的优势
这是我在使用不同类型数据和系统后对 ETL/ELT 的看法。
在组织内部将数据从事务性数据库 (OLTP) 迁移到分析平台 (OLAP) 时,ELT 是首选方法。中间存储将 OLTP 和 OLAP 解耦,这对于数据历史刷新或优化数据仓库表等用例非常重要。ELT 为恢复和重运行提供更好的服务级别协议 (SLA),并消除了源系统资源激增的风险。(无需在夜间或周末安排作业)
使用 ETL 实时转换数据听起来更酷且明显更快,但在使用自托管系统时,将所有数据以有组织的方式存储在低成本对象存储(AWS S3、Azure ADLS)上是有益的,并且可以扩展!数据集中化且易于访问。
在支持运营分析(对于数据人员来说是逆向 ETL)时,ETL 提供了更好的价值。内部数据库作为核心通常很少改变,但分析型 SaaS 平台则不然。这些平台上的最终用户期望数据随时可用,以便做出明智的决策。选择企业级或开源 ETL 工具可以更快地开发通往各种外部系统的数据管道,而无需预先了解所有目标系统。(不要重复造轮子)
ETL 也很有帮助,因为外部系统对存储的数据量有上限和相关成本。因此,当数据超出限制且仪表板在工作日停止更新时,无需再做解释。
平衡快速开发、数据移动和存储所需数据本身就是一项繁琐的工作,但关键在于维护数据完整性(事实、信息、洞察)并使数据管理在当下和未来都更加轻松灵活。