是否可以在数据工厂输入中拥有动态表存储表名称?
我发现的一切都是修复名称
"properties": {
"type": "AzureTable",
"linkedServiceName": "StorageLinkedService",
"typeProperties": {
"tableName": "MyTable"
},
情况是我想将动态表列表的数据复制到sql数据库中。
答案 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连接反馈项,链接如下。
投票支持将其添加到ADF功能。
答案 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。