代码之家  ›  专栏  ›  技术社区  ›  LionKing

ADF LOOKUP未更新所需表格

  •  0
  • LionKing  · 技术社区  · 3 年前

    我在ADF管道中有一个查找活动。此活动截断,然后在单个记录表中插入一个值。

    在某些随机情况下,活动会成功,但即使输出显示受影响的行=1,表仍保持旧值

    查找中使用的SQL

    TRUNCATE TABLE [CRM_Mapping].[IncrementalLoadLock] 
    INSERT INTO [CRM_Mapping].[IncrementalLoadLock] 
    SELECT 0
    
    SELECT @@RowCount AS ImpactedRow 
    

    此活动失败时的输出

    {
        "firstRow": {
            "ImpactedRow": 1
        },
        "effectiveIntegrationRuntime": "ManagedIntegrationRuntime (Australia East)",
        "billingReference": {
            "activityType": "PipelineActivity",
            "billableDuration": [
                {
                    "meterType": "ManagedVNetIR",
                    "duration": 0.016666666666666666,
                    "unit": "DIUHours"
                }
            ]
        },
        "durationInQueue": {
            "integrationRuntimeQueue": 1
        }
    }
    

    当此活动没有更新表时(尽管它成功了,但事件),我注意到的唯一区别是IntegrationRuntimeQueue从0更改为1。

    0 回复  |  直到 3 年前
        1
  •  1
  •   Pratik Lad    3 年前

    正如陈赫什所建议的,尝试使用脚本活动而不是查找活动。

    查找活动可以使用由数据工厂和Synapse管道启用的任何数据源来获取数据集。配置文件或数据库表的信息由查找操作读取并返回。此外,它还提供查询或已保存过程的结果。一个单例数或一组特征可以作为输出。它主要侧重于返回输出。

    您可以使用脚本操作使用数据操作语言(DML)和数据定义语言执行例行任务。(DDL)。用户可以使用DML语句(如enter、UPDATE、remove和SELECT)从数据库中输入、更改、删除和获取数据。数据库管理器可以使用诸如build、ALTER和DROP之类的DDL语句来构建、更改和删除诸如表、索引和用户之类的数据库对象。

    它会向您返回类似的输出: enter image description here