数据摄取的 7 个最佳实践


“数据工程是 2022 年最性感的新工作”它在需求和职业机会方面已经超过了数据科学。
如果您还没有看到对数据工程的需求呈天文数字增长,那么您很可能在过去 2 年都生活在山洞里。
到底是什么炒作?
为了试图回答这个问题,我们必须首先探索,

什么是数据工程?
Coursera 定义,
数据工程是设计和构建用于大规模收集、存储和分析数据的系统的实践。

1、从不同来源收集数据:
数据现在可用于各种结构化和非结构化数据集中。
它存在于文本、图像、视频、社交媒体平台、物联网(或物联网)设备、流数据的实时事件、遗留数据库以及来自数据提供商和机构的数据中。

来源从未如此多样化和充满活力。
连接到不同类型的数据源、读取不同格式的数据并全部收集起来并不容易。

2、将数据存储在标准存储库中:
连接后,将原始数据存储在一个公共位置很重要。
在分析和理解数据之前,需要对数据进行清理。
数据还需要符合合规性和标准。

3、最终利益相关者/数据消费者:
我们的业务利益相关者、应用程序、程序员、分析师和数据科学用例都从企业数据存储库中提取这些数据。
所有这些消费者都将尝试分析和理解数据,以了解业务并做出一些关键决策。

4、扩展基础架构:
最后,扩展是数据工程师最重要的任务之一。数据将呈指数级增长。加载、存储和分析数据的基础设施需要能够随着数据的增长而增长。
因此,我们已经了解了数据工程所涉及的基本工作和挑战。让我们尝试更深入地研究前两个任务,收集和存储数据。

数据摄取:
数据摄取被定义为从大量来源中吸收数据,然后将其传输到可以分析和存储的目标站点的过程。

一名数据工程师花费超过 50% 的时间编写将数据从一个地方移动到另一个地方的不同管道。有两个基本框架可以实现相同的目标:

  1. ETL:提取-转换-加载
  2. ELT:提取——加载——转换

正如直观理解的那样,基本区别在于您在加载数据之前或之后应用转换的时间。
然而,在这两个框架中,共同的元素是能够提取数据并将其加载到另一个目的地。这是数据摄取。

现在,在广泛的分类中,主要有 3 种类型的数据摄取:

1、基于批处理的数据摄取:
基于批次的摄取在定期安排的时间发生。数据是分批摄取的。当企业需要监控每日报告时,这一点很重要,例如:不同商店的销售报告。这是最常用的数据摄取用例。

2、实时/流式数据摄取:
在诸如变更数据捕获 (CDC)等实时解决方案中从源系统收集和传输数据的过程称为实时数据摄取。
CDC 或流数据实时捕获任何更改、新事务或回滚,并将更改的数据移动到目的地,而不会影响数据库工作负载。
实时摄取在电网监控、运营分析、股票市场分析、航空公司动态定价和推荐引擎等领域至关重要。

3、基于 Lambda 的数据摄取架构:
数据摄取中的 Lambda 架构尝试使用批处理和实时摄取的最佳实践。

  1. 批处理层:基于整个图片计算数据。这更准确,但计算速度较慢。
  2. 速度层:用于实时摄取,计算的数据可能不完全准确,但是,给出了数据的实时图像。
  3. 服务层:批处理层的输出以批处理视图的形式和来自速度层的近实时视图形式的输出被转发到服务。该层对批处理视图进行索引,以便可以在临时基础上以低延迟查询它们。

数据摄取有哪些挑战?

  1. 各种数据源需要自定义协议来连接
  2. 源中数据的不同格式和标准
  3. 读取和存储时数据的完整性
  4. 数据质量和重复

这些只是其中的一小部分。
那么,我们如何确保我们摄取正确的数据呢?
我们可以遵循多年来遵循的一些简单的最佳实践。

数据摄取最佳实践:

1. 在源头添加警报以解决数据问题
在源数据中添加警报将节省大量尝试在下游调试问题的时间。
可以在将数据丢失到存储库之前检查基本数据质量检查,如空列、重复记录和无效数据。
如果检查失败,则必须触发警报以供源团队修复。错误的记录可以被丢弃和记录。

2. 在应用转换之前保留所有原始数据的副本
原始数据层必须是只读的,并且任何人都不应拥有更新访问权限。
这将作为备份,以防在尝试清理或添加转换时后续层出现故障。

3. 尽早设定期望和时间表,数据摄取并不容易
业务领导者和项目经理经常高估或低估数据摄取所需的时间。
数据摄取通常非常复杂,摄取管道需要进行适当的测试。
因此,在构建管道所涉及的时间表和加载数据所需的时间上设定利益相关者的期望总是好的。

4. 自动化管道、使用编排、设置 SLA
数据摄取管道应该是自动化的,以及所有需要的依赖项。
编排工具可用于同步不同的管道。
必须为每个管道设置 SLA,这将允许监控团队在任何管道运行时间更长的情况下进行标记。

5. 数据摄取管道必须是幂等的
幂等性是数据摄取管道的关键特征。
幂等性意味着如果你多次执行一个操作,结果在初次执行后不会改变。
数学上 f(f(x)) = f(x) 是幂等函数。
在数据集成的背景下,幂等性使得数据摄取管道能够自我纠正。
最重要的是,它可以防止加载重复记录。
实现相同的一些策略可以是:删除插入、Upsert、合并操作和查找任务。

6. 模板化,重用开发框架
许多数据摄取管道是重复的,因此为管道开发创建模板很重要。
如果您在管道中创建可重用的框架,则可以大大减少交付工作。
企业将始终对增加新数据的摄取速度表示赞赏。

7. 记录您的管道
这是要灌输的最后一个但也是最重要的习惯之一。
记录管道内的输入、输出和逻辑非常重要。
该文档可以帮助节省调试时间、解释业务逻辑或为业务创建源到目的地的映射。