【问题标题】:Why is 'a1' added at the end of sql query in json config file meant for data extraction from NetSuite? Not adding that can cause error?为什么在用于从 NetSuite 提取数据的 json 配置文件中的 sql 查询末尾添加“a1”?不添加会导致错误?
【发布时间】:2021-11-27 01:02:59
【问题描述】:

我正在将数据从 Netsuite 提取到 Databricks 文件存储中。我通过编写 json 脚本并通过 Azure Data Factory 执行它来做到这一点。此 JSON 有一个部分,您可以在其中指定从 Netsuite 提取时要使用的查询。它被称为“增量Sql”。我经常看到这里在末尾添加了一个“a1”。

"incrementalParams": {
                    "checkpointTablePath": "dbfs:/mnt/data/governed/l1/audit/log/checkpoint_log/",
                    "extractId": "NETSUITE_CURRENCY_EXCHANGE_RATE",
                    "incrementalSql": "(select b.NAME as BASE_CURRENCY_CD, c.NAME as CURRENCY_CD, a.EXCHANGE_RATE, a.DATE_EFFECTIVE from Administrator.CURRENCY_EXCHANGE_RATES a left join Administrator.CURRENCIES b on a.BASE_CURRENCY_ID = b.CURRENCY_ID left join Administrator.CURRENCIES c on a.CURRENCY_ID = c.CURRENCY_ID) a1",
                    "maxCheckPoint1": "(select to_char(max(DATE_EFFECTIVE), 'DD-MM-YYYY HH24:MI:SS') from Administrator.CURRENCY_EXCHANGE_RATES where DATE_EFFECTIVE > to_date('%%{CHECKPOINT_VALUE_1}', 'YYYY-MM-DD HH24:MI:SS'))"
                }

注意incrementalSql 字段末尾的a1。

有谁知道为什么要添加它?是否仅在 NetSuite 或 Oracle 的情况下添加?不添加会报错吗?

【问题讨论】:

  • 我的假设是,由于关联的 JSON 键是“incrementalSql”,因此该查询是作为更大查询的一部分动态嵌入的子查询,并且 a1 是别名给子查询,并且周围的查询将通过该别名引用它。
  • 有道理。我想知道为什么没有人提出这个问题,即使是出于好奇。您认为这只是 Oracle 和 Netsuite 的事情吗?因为我的一些同事使用 RMS 数据库,而我在这种情况下找不到。感谢您的回答。
  • 你有这个标记的mysql和oracle; mysql要求加入的子查询提供表别名,不知道oracle。

标签: mysql sql oracle azure-data-factory netsuite


【解决方案1】:

正如@MT0 评论中所述,假设是正确的。 a1incrementalSql 字段末尾是一个别名,用于引用动态嵌入的子查询。

不添加别名会导致错误。子查询是一种派生表。所以引用那个别名是必要的。

如果未添加别名,您可能会收到类似错误 - 别名需要避免重复列

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2012-12-19
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多