【问题标题】:Incremental copy cdc records with dynamic source in Azure ADFAzure ADF 中具有动态源的增量复制 cdc 记录
【发布时间】:2022-01-18 11:40:18
【问题描述】:

我在 Azure ADF 中创建了一个管道,用于从我们的源数据库中的 54 个表中复制更改的行。我已按照Azure 的指南进行操作。并对其进行了修改以支持动态表。

我使用查找来获取所有活动的 CDC 表,然后为每个活动在每个 CDC 表上执行副本,并且效果很好。但是当我尝试在 Azure 指南中添加 Trigger_Start_Time 示例代码时,我收到了这个错误:

数据库操作失败并出现以下错误:

''{' 附近的语法不正确。'
'{' 附近的语法不正确。
, SqlErrorNumber=102,Class=15,State=1。

这是我尝试执行的代码示例:

@concat('DECLARE @begin_time datetime, @end_time datetime, @from_lsn binary(10), @to_lsn binary(10) ; 
SET @begin_time = ''',pipeline().parameters.TriggerStartTime,''';
SET @end_time = ''',pipeline().parameters.TriggerEndTime,''';
SET @from_lsn = sys.fn_cdc_map_time_to_lsn(''smallest greater than or equal'', @begin_time);
SET @to_lsn = sys.fn_cdc_map_time_to_lsn(''largest less than or equal'', @end_time);
SELECT count(1) changecount FROM cdc.fn_cdc_get_net_changes_dbo_@{item().Table_Name}(@from_lsn, @to_lsn, ''all'')')

我使用@{item().Table_Name} 来设置表名。如果我将表名硬编码为:“客户”,效果很好

当我在查询中使用源参数时,我错过了什么?

【问题讨论】:

  • 假设你从this section复制你的尝试是不同的。为什么你的代码中有大括号?您链接到的整个页面上都没有。
  • 您好,Azure 的示例仅适用于固定表。所以我改变了它,所以我可以使用动态表。所以我使用 @{item().Table_Name} 从“For each”活动中获取值。
  • 嗨,您可以尝试将联系人()列表中的项目名称与字符串分开吗?与管道参数相同,例如:@concat('...',item().Table_Name,'...')

标签: sql-server azure azure-data-factory


【解决方案1】:

concat() 函数中包含当前项时,将其用作item().Table_Name

@concat('DECLARE @begin_time datetime, @end_time datetime, @from_lsn binary(10), @to_lsn binary(10) ; 
SET @begin_time = ''',pipeline().parameters.TriggerStartTime,''';
SET @end_time = ''',pipeline().parameters.TriggerEndTime,''';
SET @from_lsn = sys.fn_cdc_map_time_to_lsn(''smallest greater than or equal'', @begin_time);
SET @to_lsn = sys.fn_cdc_map_time_to_lsn(''largest less than or equal'', @end_time);
SELECT count(1) changecount FROM cdc.fn_cdc_get_net_changes_dbo_',item().Table_Name,'(@from_lsn, @to_lsn, ''all'')')

管道中的这个查询如下所示,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 2017-04-01
    • 2016-04-25
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    相关资源
    最近更新 更多