Azure 数据工厂:参数化文件夹和文件路径



>环境

  • Azure 数据工厂

场景

  • 我有 ADF 管道,它从本地服务器读取数据并将数据写入 azure 数据湖。

  • 对于相同 - 我在 ADF*(数据集(*中提供了文件夹结构,如下所示

    文件夹路径 : - DBName/RawTables/Transactional

    文件路径 : - 表名.csv

问题

是否可以参数化文件夹名称或文件路径? 基本上 - 如果明天 - 我想更改文件夹路径*(没有部署(*,那么我们应该更新元数据或表结构。

所以这里的简短回答是否定的。使用 ADF 本身将无法实现此级别的动态灵活性。

需要将新的定义数据集添加到管道,作为文件夹更改的输入。在 Data Lake 中,您可能可以使用单个存储过程来接受可以重用的文件路径参数。但这仍然需要在调用过程时对 ADF JSON 进行调整。

当然,这里的包罗万象的情况是使用 ADF 自定义活动并编写一个 C# 类,其中包含执行所需操作的方法。也许是矫枉过正,并且需要花费大量精力来设置对数据湖存储的身份验证。

希望这能给你一个方向。

Mangesh,你为什么不试试ADF中的.Net自定义活动。此自定义活动将是您的第一个活动,可能会检查已处理的文件夹,如果已处理的文件夹存在,则会将其移动到历史记录(例如(文件夹。由于 ADF 是用于数据移动和数据转换的平台,因此它不处理 IO 活动。可以在以下位置了解有关 .Net 自定义活动的详细信息:

https://learn.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities

可以使用

Azure 数据工厂 V2 中的新查找活动执行所需的操作。 文档位于此处:查找活动。

JSON 示例如下所示:

{
    "name": "LookupPipelineDemo",
    "properties": {
        "activities": [
            {
                "name": "LookupActivity",
                "type": "Lookup",
                "typeProperties": {
                    "dataset": { 
                        "referenceName": "LookupDataset", 
                        "type": "DatasetReference" 
                    }
                }
            },
            {
                "name": "CopyActivity",
                "type": "Copy",
                "typeProperties": {
                    "source": { 
                        "type": "SqlSource", 
                        "sqlReaderQuery": "select * from @{activity('LookupActivity').output.tableName}" 
                    },
                    "sink": { 
                        "type": "BlobSink" 
                    }
                },                
                "dependsOn": [ 
                    { 
                        "activity": "LookupActivity", 
                        "dependencyConditions": [ "Succeeded" ] 
                    }
                 ],
                "inputs": [ 
                    { 
                        "referenceName": "SourceDataset", 
                        "type": "DatasetReference" 
                    } 
                ],
                "outputs": [ 
                    { 
                        "referenceName": "SinkDataset", 
                        "type": "DatasetReference" 
                    } 
                ]
            }
        ]
    }
}

相关内容

  • 没有找到相关文章

最新更新