什么算作 ETL?

What counts as ETL?

我知道 ETL 代表将数据提取、转换和加载到新的目标数据库中。但在什么范围内它仍然算作 ETL?例如,如果我想将一个有 7000 条记录的联系人数据库移动到 CRM 软件中,这个过程也算作 ETL 吗?

ETL 代表数据的提取、转换和加载阶段。从数据源中提取,TRANSFORM 提取的数据并加载到目标数据源中。

每当您在一个地方执行 EXTRACT 并在另一个地方执行 LOAD 时,您的过程仍然会进入 ETL。 ETL 可能不会在每个场景中都涉及 TRANSFORM,它是直接的数据加载。大多数情况下,都会对数据进行 TRANSFORM 以适应目标 environment/schema。

回答你的问题,是的。您的记录加载属于 ETL 的范围。但是,就您而言,它没有 TRANSFORM 阶段。

正如 Venkataraman R 所说,您没有转换阶段,这就是为什么您的工作不能真正被视为 ETL 的原因。

通常,转换部分会包括某种数据映射(例如,标准化国家代码或提取国家代码美国 -> 美国;土耳其 -> TR)。除了大量 查找验证 和映射之外,您还需要进行一些常规清理,例如 删除不良数据 、正确 格式化 像标题上限,在数据仓库的情况下修改 keys)。在准备机器学习训练的情况下,还可以做imputation、binning和normalization。但我认为最重要的是删除重复项,因为它会导致有关聚合的问题。

如果您从现有数据中派生出一组新数据,将其转化为聚合形式,也被视为转换。这意味着您以某种方式将数据分组在一起 (SUM/AVG/MAX),以便当工具使用数据时,它不再需要自己执行聚合,从而最大限度地减少计算和带宽要求。

我认为有趣的是,自从提出这个问题以来,一组全新的 tools has emerged that call themselves "Reverse ETL" 并且它们按照您所说的方向同步数据:来自 database/warehouse 进入 CRM 系统之类的东西。例如,离开 Postgres 进入 Salesforce 或 Marketo。

“反向”部分似乎是在承认这与 ETL 在历史上通常采用的方向相反。