动态表存储名称

时间:2017-03-09 10:31:56

标签: azure-table-storage azure-data-factory azure-management-api

是否可以在数据工厂输入中拥有动态表存储表名称?

我发现的一切都是修复名称

"properties": {
 "type": "AzureTable",
 "linkedServiceName": "StorageLinkedService",
 "typeProperties": {
     "tableName": "MyTable"
 },

情况是我想将动态表列表的数据复制到sql数据库中。

4 个答案:

答案 0 :(得分:1)

您可以在Azure Data Factory v2中为Azure表存储数据集参数化表名。

我是在创作工具中手动创建的,但是相应的(导出的)手臂模板如下所示:

"parameters": {
    "table": {
        "type": "string"
    }
},
"annotations": [],
"type": "AzureTable",
"schema": [],
"typeProperties": {
    "tableName": {
        "value": "@dataset().table",
        "type": "Expression"
    }
}

答案 1 :(得分:0)

我相信您必须使用静态表名创建单独的数据集。动态表名称是不可能的!!

答案 2 :(得分:0)

可悲的是没有!

我刚测试过这是因为我希望你能够从partition by子句中注入值。但是,这只能在文件和文件夹名称中出现。 不适用于表格

见下面的截图。

根据门户网站不允许,即使它在不失败的情况下进行部署!!

我刚刚为它创建了一个MS连接反馈项,链接如下。

https://feedback.azure.com/forums/270578-data-factory/suggestions/18614509-support-the-partition-by-clause-for-azure-table-da

投票支持将其添加到ADF功能。

enter image description here

答案 3 :(得分:0)

如果您使用.NET API,那么您可以实现它。

使用Microsoft.Azure.Management.DataFactories nuget包

var dataFactoryClient = new DataFactoryClient {
    ResourceGroupName = "",
    DataFactoryName = ""
}

var client = dataFactoryClient.GetDataFactoryManagementClient();

client.Datasets.CreateOrUpdate(ResourceGroupName, DataFactoryName,
                new DatasetCreateOrUpdateParameters
                {
                    Dataset = new Dataset
                    {
                        Name = datasetName,
                        Properties = new DatasetProperties
                        {
                            LinkedServiceName = linkedService,
                            TypeProperties = new AzureTableDataset
                            {
                                TableName = tableName //append current date

                            },
                            External = external,
                            Availability = availability,
                            Structure = //DataElements
                            Policy = new Policy {}

                        }
                    }
                });

您还可以使用此API访问管道,活动和链接服务,并根据需要对其进行自定义。

您可以使用WebJob部署此DataFactory。