0

Ich versuche, Azure-Tabellen von einem Speicherkonto zu einem anderen Speicherkonto zu kopieren. Aber während ich diese Kopie mache, möchte ich den Datetime-Wert einer Spalte in Unix Timestamp ändern.Ändern Sie DateTime zu Unix-Zeitstempel in DataFactory Aktivität

Ich verwende Azure DataFactory Copy Activity. Wenn ich InitialDate Spaltentyp als Int64 in Ausgabe-Dataset angeben, bekomme ich Fehler, dass 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" 
      } 
     ] 

Gibt es trotzdem i InitialDate Spaltenwerte UnixTimestamp (Int64) ändern können, während die Ausgabe-Datensatz zu kopieren?

Gibt es noch andere Übersetzer als TabularTranslator? Ich konnte im Web keine Informationen finden.

Antwort

0

Wenn ich richtig verstanden habe, möchten Sie den Spaltenwert beim Kopieren von Daten von einer Speichertabelle in eine andere Speichertabelle mit DataFactory ändern. Basierend auf meiner Erfahrung wird es derzeit nicht von DataFactory Copy Activity unterstützt.

In meiner Option gibt es eine Problemumgehung ist, dass wir die Azure scheduled webjob verwenden können, um das zu tun. Im WebJob könnte Azure storage SDK verwenden, um Tabellensatz und den Wert der Änderungsspalte zu kopieren und dann in eine andere Tabelle einzufügen.

+0

Dank Die Tabelle hat mehr als eine Milliarde Entitäten und Kopiervorgang dauert mehr als 10 Stunden. Daher möchte ich die Parallel Copies, DMUs und Monitor-Funktionen von Datafactory verwenden. Daher ist WebJobs mit Storage SDK keine Option. Kann ich es trotzdem mit einer benutzerdefinierten Aktivität (IDotNetActivity) machen? – Venky

+0

Nach dem [Dokument] (https://docs.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities#walkthrough-create-a-custom-activity), es Ich erwähnte, dass wir Daten mit benutzerdefinierten Aktivitäten transformieren/verarbeiten können. –

+0

Kühl. Aber das Dokument erwähnte nichts über die parallele Verarbeitung. Obwohl wir diese Eigenschaft in JSON angeben können, aber nicht sicher sind, wie diese mit der Codelogik in benutzerdefinierten Aktivitäten funktioniert. – Venky

Verwandte Themen