Ändern des Spaltentyps ohne Datenverlust
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Der Befehl ".alter column " ändert den Spaltentyp, wodurch die ursprünglichen Daten nicht wiederhergestellt werden können. Um vorhandene Daten beim Ändern des Spaltentyps beizubehalten, erstellen Sie eine neue, ordnungsgemäß eingegebene Tabelle.
Führen Sie für jede Tabelle OriginalTable
, in der Sie einen Spaltentyp ändern möchten, die folgenden Schritte aus:
Erstellen Sie eine Tabelle
NewTable
mit dem richtigen Schema (die rechten Spaltentypen und die gleiche Spaltenreihenfolge).Nehmen Sie die Daten ein
NewTable
OriginalTable
, und wenden Sie die erforderlichen Datentransformationen an. Im folgenden Beispiel wird Col1 in den Zeichenfolgendatentyp konvertiert..set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Verwenden Sie den Befehl "Tabellen umbenennen ", um Tabellennamen auszutauschen.
.rename tables NewTable=OriginalTable, OriginalTable=NewTable
Wenn der Befehl abgeschlossen ist, fließen
OriginalTable
die neuen Daten aus vorhandenen Aufnahmepipelinen ordnungsgemäß ein.Legen Sie die Tabelle
NewTable
ab.NewTable
enthält nur eine Kopie der historischen Daten vor der Schemaänderung. Es kann sicher gelöscht werden, nachdem bestätigt wurde, dass das Schema und die DatenOriginalTable
korrekt aktualisiert wurden..drop table NewTable
Beispiel
Im folgenden Beispiel wird das Schema aktualisiert, OriginalTable
während die Daten beibehalten werden.
Erstellen Sie die Tabelle mit OriginalTable
einer Spalte "Col1" vom Typ "GUID".
.create table OriginalTable (Col1:guid, Id:int)
Nehmen Sie dann Daten in OriginalTable
.
.ingest inline into table OriginalTable <|
b642dec0-1040-4eac-84df-a75cfeba7aa4,1
c224488c-ad42-4e6c-bc55-ae10858af58d,2
99784a64-91ad-4897-ae0e-9d44bed8eda0,3
d8857a93-2728-4bcb-be1d-1a2cd35386a7,4
b1ddcfcc-388c-46a2-91d4-5e70aead098c,5
Erstellen Sie die Tabelle vom NewTable
Typ Zeichenfolge.
.create table NewTable (Col1:string, Id:int)
Fügen Sie Daten an OriginalTable
, NewTable
und verwenden Sie die tostring()
Funktion, um die Spalte "Col1" von Typ-GUID in Typzeichenfolge zu konvertieren.
.set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Tauschen Sie die Tabellennamen aus.
.rename tables NewTable = OriginalTable, OriginalTable = NewTable
Drop-Tabelle NewTable
mit dem alten Schema und den alten Daten.
.drop table NewTable