我正在使用 Azure 数据工厂来转换 blob,然后尝试将其复制到 Azure 表存储中。我正在使用复制活动。管道由数据流组成,然后是复制活动。
除了映射我的行键外,一切都运行良好。我使用转换活动基于产品 SKU 生成行键。当我转到接收器并选择"使用源列"时,它在"行键列"下显示"选择选项",但我唯一的选择是"添加动态内容",我没有获得任何列选项。
我在源代码中的行键是通过映射函数映射的,但似乎在没有指定动态内容的情况下,默认情况下它会被唯一标识符覆盖。由于这些是产品 SKU,并且我想合并数据,因此我绝对需要自己的行键。
我是 ADF 的新手,我尝试使用动态内容引用我的行键,但它只会生成未找到的错误。我不确定在编写表达式时是否引用了源代码。
我已联系 Azure 支持人员,正在等待回复,但我们拭目以待。
{
"name": "BlobTransformsToTable",
"properties": {
"activities": [
{
"name": "TransformThenCopyToTable",
"type": "Copy",
"dependsOn": [
{
"activity": "MyVendorCatalog",
"dependencyConditions": [
"Succeeded"
]
}
],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"storeSettings": {
"type": "AzureBlobStorageReadSetting",
"wildcardFileName": "*.*"
},
"formatSettings": {
"type": "DelimitedTextReadSetting"
}
},
"sink": {
"type": "AzureTableSink",
"azureTableInsertType": "merge",
"azureTableDefaultPartitionKeyValue": "CatalogItem",
"writeBatchSize": 10000
},
"enableStaging": false,
"translator": {
"type": "TabularTranslator",
"mappings": [
{
"source": {
"name": "PartitionKey",
"type": "String"
},
"sink": {
"name": "PartitionKey"
}
},
{
"source": {
"name": "RowKey",
"type": "String"
},
"sink": {
"name": "RowKey"
}
},
截图1 截图2
我希望它将源中的行键映射到接收器中的行键。它仍在生成唯一值。我愿意通过使用动态内容来解决这个问题,但我不确定如何让它工作。
我遇到了类似的问题,并能够按如下方式解决。
编辑管道并导航到 [接收器] 选项卡
- [行键值选择]应指定为"使用接收器列">
- 打开[添加动态内容选择]屏幕时,[行键列]应指定为"行键">
然后在映射屏幕上,您可以将源字段映射到"RowKey"列,它将得到尊重
行键列屏幕截图