我们使用短语“分析型数据转换”来表示对分析型数据进行的数据转换。这也适用于事务型和分析型数据源之间的数据集成层,例如在Amazon S3数据湖和Amazon Redshift数据仓库之间配置的AWS Glue。由于分析型数据在几个关键方面与事务型数据不同,因此在转换这些数据时需要注意相应的差异。
在许多情况下,你可能会听到“ETL”这个短语被用作分析型数据转换的同义词。ETL即“提取-转换-加载”。它描述了一个三步的过程,该过程对于拥有复杂数据的组织来说正变得越来越普遍:
1.在提取步骤中,原始数据从一些上游数据源中导出,并将其移动到暂存区。此类来源可能包括MySQL和NoSQL服务器、CRM系统或数据湖中的原始文件。
2.接下来,在ETL最重要的转换步骤中,暂存区中的数据按照数据工程师的要求规范进行组合和处理。在某些情况下,转换步骤可能很简单,可能实际上只是在复制源数据。在其他情况下,转换可能非常烦琐。
3.最后,在加载步骤中,我们将转换后的数据移出暂存区并移至其目的地,该目的地通常是数据仓库中的一个特定表。
如前所述,ETL或ELT中的“转换”步骤可能是最深入细致的,并且在不同的应用程序中都有所不同。ETL是指先将数据加载到暂存服务器,然后再加载到目标系统的过程,而ELT要求将数据直接加载到目标系统中。虽然ETL为数据工程师提供了在数据投入生产前对其进行验证的机会,而ELT则加快了处理速度,但如果没有恰当地进行测试和监控,就会降低数据质量。
转换源数据有几个原因:
· 你可能只是对字段进行重命名,以匹配目标位置的模式需求。
· 你可能想要通过筛选、聚合、汇总、去重等方式对源数据进行清洗和整合。
· 你可能需要同时进行类型转换和单位转换,例如,将不同的货币字段标准化为美元和浮点类型。
· 为了满足行业规定或政府法规,你可以在此步骤对敏感数据字段进行加密。
· 最重要的是,你可以在此步骤进行数据治理审计或数据质量检查。