在从 SQL 到 MongoDB 运行 ETL 中通过 LEFT JOIN 添加新字段

Posted

技术标签:

【中文标题】在从 SQL 到 MongoDB 运行 ETL 中通过 LEFT JOIN 添加新字段【英文标题】:Adding New Fields via LEFT JOIN in Running ETL from SQL to MongoDB 【发布时间】:2019-01-15 13:48:20 【问题描述】:

我需要运行 ETL 以将数据从 Sybase/SQL 后端获取到我的 MongoDB 环境中。我们已经有来自 Sybase 的数据,但现在还有几个额外的字段我们想要提取数据。因此,由于我对 Mongo 很熟悉(不太了解 Sybase),因此我正在尝试确定如何调整 ETL 以获取这些额外数据。

当前的 SELECT 语句如下所示:

`SELECT DISTINCT TOP 100 d.*, d10.code code10, d10.id_number as Code10ID FROM diagnosis d LEFT JOIN diagnosis_icd10 d10 on d.icd10_id = d10.id_number ORDER BY d.id_number`

现在,在我们正在执行 LEFT JOIN 的 diagnosis_icd10 表中,现在有几个额外的字段可用。

所以,我的问题是,我是否需要在 SELECT 语句中明确包含这些附加字段,以便它们在 ETL 过程中可用?或者只有当我想重命名字段时才会出现这种情况?这应该是什么样子?

【问题讨论】:

【参考方案1】:

是的,您需要明确地请求它们,因为您当前的查询仅获取诊断表中的所有列(通过 d* 别名为 d)。

这与 Sybase 无关,虽然这是基本的 SQL,所以对于大多数数据库来说都是一样的。您只需将它们添加到 select 语句中,就像在 d10.column_name 中一样。

【讨论】:

以上是关于在从 SQL 到 MongoDB 运行 ETL 中通过 LEFT JOIN 添加新字段的主要内容,如果未能解决你的问题,请参考以下文章

将数据从MongoDB导入SQL Server

ETL工作中SQL优化集合(百万级数据库优化方案)

从SQL Server到MySQL的ETL实现

在从 RDBMS 切换之前需要 MongoDB 专家/开发人员的建议

SQL:在从 GMT 到太平洋的查询中偏移时间戳

AWS中ETL流程的最佳方式是啥