2017-07-21 4 views
0

Ich habe eine .Net-Aktivität erstellt, die über Kopieraktivitäten verfügt (die die Daten lokal in den Data Lake-Speicher kopieren) und U-SQL-Aktivität (die die Daten verarbeitet und das Ergebnis im Data Lake Store speichert).Wie erhält man das Schema einer lokalen SQL-Tabelle mit Azure Custom Activity zusammen mit den Daten?

Aber für die Verarbeitung der Daten mit U-SQL benötigt das Schema der Tabelle, die auch aus der lokalen Datenbank kopiert werden muss.

U-SQL-Abfrage:

 DECLARE @storagePath string = @"E:\"; 
     DECLARE @inputFileSetName string = @"inputfile.tsv"; 
     DECLARE @outputFileName string = @"outputfile.tsv"; 
     DECLARE @input string = String.Concat(@storagePath, 
     @inputFileSetName); 
     DECLARE @output string= string.Concat(@storagePath, @outputFileName); 

     @searchlog = 
     EXTRACT <Schema for the table> 
     FROM @input 
     USING Extractors.Tsv(); 

     OUTPUT @searchlog 
     TO @output 
     USING Outputters.Tsv(); 

Ich habe das Schema der Tabelle zu erhalten, zusammen mit den Daten, die die Azure ADF Benutzerdefinierte Aktivität mit?

+0

U-SQL unterstützt Schema-on-read, aber das Schema muss zur Entwurfszeit und nicht zur Laufzeit bereitgestellt werden, dh U-SQL unterstützt zu diesem Zeitpunkt kein dynamisches U-SQL. In Ihrer anderen Frage habe ich Ihnen Beispiele für das dynamische Erstellen von USQL gegeben (was eine etwas andere Sache ist). Vielleicht, wenn Sie einen Schritt zurück machen und beschreiben können, was Sie tun wollen, ohne Technologie zu erwähnen (wie ADF, .net-Aktivität, U-SQL usw.), wird Ihnen jemand helfen können. – wBob

Antwort

0

Wie können verschiedene Schemas erwartet werden? Wie Bob in seinem Kommentar erwähnt, unterstützen wir zur Zeit keine dynamische Schema-Erkennung in U-SQL.

Auch, was planen Sie später mit dem Schemarowset im Skript, wenn Sie nicht wissen, was damit zu tun ist.

Wenn Sie nur eine Datei kopieren möchten, ohne das Schema zu verstehen (wie in Ihrem Beispiel oben), würde ich vorschlagen, die Dateisystem-APIs oder ADLCopy (die eine Variante von this U-SQL code läuft) verwenden.

Verwandte Themen