0

我試圖將Azure表從一個存儲帳戶複製到另一個存儲帳戶。但是,在做這個副本時,我想將列的日期時間值更改爲Unix時間戳。在DataFactory活動中將DateTime更改爲Unix時間戳

我正在使用Azure DataFactory複製活動。如果我在輸出數據集中指定InitialDate列類型爲Int64,那麼我得到的錯誤是cannot convert datetimeoffset to Int64

"activities": [ 
      { 
       "type": "Copy", 
       "typeProperties": { 
        "source": { 
         "type": "AzureTableSource" 
        }, 
        "sink": { 
         "type": "AzureTableSink", 
         "azureTablePartitionKeyName": "PartitionKey", 
         "azureTableRowKeyName": "RowKey", 
         "writeBatchSize": 0, 
         "writeBatchTimeout": "00:00:00" 
        }, 
        "translator": { 
         "type": "TabularTranslator", 
         "columnMappings": "PartitionKey:PartitionKey,RowKey:RowKey,Timestamp:Timestamp,InitialDate" 
        }, 
        "parallelCopies": 32, 
        "cloudDataMovementUnits": 32 
       }, 
       "inputs": [ 
        { 
         "name": "InputDataset-3tk" 
        } 
       ], 
       "outputs": [ 
        { 
         "name": "OutputDataset-3tk" 
        } 
       ], 
       "policy": { 
        "timeout": "1.00:00:00", 
        "concurrency": 1, 
        "executionPriorityOrder": "NewestFirst", 
        "style": "StartOfInterval", 
        "retry": 3, 
        "longRetry": 0, 
        "longRetryInterval": "00:00:00" 
       }, 
       "scheduler": { 
        "frequency": "Day", 
        "interval": 1 
       }, 
       "name": "Activity-0-Test->Test" 
      } 
     ] 

反正同時複製到輸出數據集,我可以改變InitialDate列值UnixTimestamp (Int64)

是否有比其他TabularTranslator任何其他翻譯?我無法在網上找到任何信息。

回答

0

如果我理解正確的,你想從一個存儲表中複製數據來改變列的值與另一個的DataFactory存儲表。根據我的經驗,目前DataFactory Copy Activity不支持它。

在我的選擇,有一個解決方法是,我們可以使用Azure scheduled webjob做到這一點。在WebJob可以使用Azure storage SDK複製表記錄和更改列值,然後插入到另一個表中。

+0

謝謝該表已獲得超過10億個實體,複製操作需要超過10個小時。所以我想使用Datafactory的並行副本,DMU和監視功能。所以帶有Storage SDK的WebJobs不是一種選擇。無論如何,我可以用自定義活動(IDotNetActivity)來做到這一點嗎? – Venky

+0

根據[文檔](https://docs.microsoft.com/zh-cn/azure/data-factory/data-factory-use-custom-activities#walkthrough-create-a-custom-activity),它提到我們可以用自定義活動來轉換/處理數據。 –

+0

很酷。但文件沒有提及任何有關並行處理的內容。雖然我們可以在JSON中指定該屬性,但不知道如何在定製活動中使用代碼邏輯。 – Venky

相關問題