数据提取是一个涉及从各种来源检索数据的过程。通常,公司提取数据以进一步处理数据,将数据迁移到数据存储库或进一步分析数据。将数据转换为此过程的一部分是很常见的。例如,您可能希望对数据执行计算例如聚合销售数据并将这些结果存储在数据仓库中。如果要提取数据以将其存储在数据仓库中,则可能需要添加其他元数据或使用时间戳或地理位置数据来丰富数据。
如果数据是结构化的,则数据提取过程通常在源系统内执行,常用的提取方法有以下两种。
完全提取法:数据完全从源中提取,无需跟踪更改,逻辑更简单,但系统负载更大。
增量提取:自上次成功提取后,将跟踪源数据中的更改,这样您就不会在每次更改时都执行提取所有数据的过程。为此,您可以创建更改表以跟踪更改或检查时间戳。一些数据仓库内置了变更数据捕获(CDC)功能。增量提取的逻辑更复杂,但系统负载却降低了。
使用非结构化数据时,您的大部分任务是以可以提取数据的方式准备数据。最有可能的是,您将把它存储在数据湖中,直到您计划将其提取出来进行分析或迁移。您可能希望通过删除空格和符号,删除重复结果以及确定如何处理缺失值等操作来清除数据中的噪音。
1:批处理工具:传统数据提取工具可以批量整合您的数据,通常是在非工作时间,以最大限度地减少使用大量计算能力的影响。对于具有相当同类数据源的封闭的内部部署环境,批量提取解决方案可能是一种很好的方法。
2:开源工具:假设支持的基础架构和知识到位,开源工具非常适合预算有限的应用程序。一些供应商也提供有限或“轻”版本的产品作为开源。
3:基于云的工具:基于云的工具是最新一代的提取产品。通常,重点是作为ETL / ELT流程的一部分实时提取数据,并且基于云的工具在该领域表现优异,有助于利用云为数据存储和分析提供的所有功能。这些工具还避免了安全性和合规性,因为今天的云供应商继续关注这些领域,无需在内部开发这种专业知识。