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