首页 文章

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

提问于
浏览
0

Environments

  • Azure数据工厂

Scenario

  • 我有ADF管道,它从On premise服务器读取数据并将数据写入azure数据湖 .

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

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

文件路径: - TableName.csv

Problem

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

3 回答

  • 0

    所以这里简短的回答是 no . ADF本身无法实现这种动态灵活性 .

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

    当然,这里捕获的所有情况都是使用ADF自定义活动并编写一个C#类,其方法可以满足您的需要 . 虽然可能有点过分,并且需要花费很多精力来为数据湖商店设置身份验证 .

    希望这会给你一个转向 .

  • 0

    Mangesh,你为什么不在ADF中尝试.Net自定义活动 . 此自定义活动将是您可能检查已处理文件夹的第一个活动,如果处理过的文件夹存在,则会将其移至History(say)文件夹 . 因为,ADF是一个数据移动和数据转换的平台,它不处理IO活动 . 您可以在以下位置了解有关.Net自定义活动的更多信息

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

  • 0

    您可以使用Azure Data Factory V2中的新Lookup活动来执行此操作 . 文档在这里:Lookup Activity .

    一个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" 
                        } 
                    ]
                }
            ]
        }
    }
    

相关问题