【问题标题】:Azure Synapse External Table Location parameterization with changing date format具有更改日期格式的 Azure Synapse 外部表位置参数化
【发布时间】:2021-05-18 16:38:27
【问题描述】:

是否可以将参数(文件夹/文件路径)传递到 Azure Synapse 外部表的位置?

LOCATION=/Windows/Folder/YYYY/MM/DD/File_name_YYYYMMDD.csv

我想将 YYYY/MM/DD 和 File_name_YYYYMMDD.csv 参数化为每天都在变化的参数。 我可以将值从 Azure 数据工厂发送到 Azure Synapse

提前致谢

【问题讨论】:

  • 这可以通过动态 SQL 实现,但您不能在本地将参数传递给 CREATE EXTERNAL TABLE 语句。
  • 嗨@jagadish dn 如果您需要更多信息,请告诉我。 :)

标签: azure azure-data-factory azure-synapse


【解决方案1】:

我使用的是 Azure SQL,但我认为创建外部表与 Azure Synapse 相同。我们可以使用 ADF 来动态创建 EXTERNAL TABLE。

例如:

  1. 在 ADF 中,我们可以声明几个变量来获取动态内容。

  2. 如果您使用复制活动,我们可以将动态内容添加到 @{concat('DROP EXTERNAL DATA SOURCE MyAzureInvoices CREATE EXTERNAL DATA SOURCE MyAzureInvoices WITH ( TYPE = BLOB_STORAGE, LOCATION = ',variables('ContainerStr'),variables('DateStr'),',CREDENTIAL = UploadInvoices );')}。

  3. ADF 将帮助我们在复制活动之前创建外部表。

【讨论】:

  • 嗨@jagadish dn 如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
【解决方案2】:

不幸的是,在 synapse 中没有使用正常外部表定义的直接参数化选项。因此,为了实现您的方案,您需要在运行时通过动态 SQL 创建外部表。 使用查找活动或存储过程活动,其中您将位置值作为参数传递,并基于该参数通过动态 SQL 创建外部表

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多