Zmiana typu kolumny bez utraty danych
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Polecenie .alter column zmienia typ kolumny , co sprawia, że oryginalne dane są nieodwracalne. Aby zachować istniejące dane podczas zmieniania typu kolumny, utwórz nową, poprawnie wpisaną tabelę.
Dla każdej tabeli OriginalTable
, w której chcesz zmienić typ kolumny, wykonaj następujące kroki:
Utwórz tabelę
NewTable
z poprawnym schematem (odpowiednie typy kolumn i ta sama kolejność kolumn).Pozyskiwanie danych z
NewTable
OriginalTable
programu , stosując wymagane przekształcenia danych. W poniższym przykładzie kolumna Col1 jest konwertowana na typ danych ciągu..set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Użyj polecenia .rename tables, aby zamienić nazwy tabel.
.rename tables NewTable=OriginalTable, OriginalTable=NewTable
Po zakończeniu działania polecenia nowe dane z istniejących potoków pozyskiwania są
OriginalTable
teraz poprawnie wpisywane.Upuść tabelę
NewTable
.NewTable
zawiera tylko kopię danych historycznych przed zmianą schematu. Można ją bezpiecznie porzucić po potwierdzeniu, że schemat i dane w plikuOriginalTable
zostały poprawnie zaktualizowane..drop table NewTable
Przykład
W poniższym przykładzie zaktualizowano OriginalTable
schemat programu , zachowując jego dane.
Utwórz tabelę z OriginalTable
kolumną "Col1" typu guid.
.create table OriginalTable (Col1:guid, Id:int)
Następnie pozyskaj dane do pliku 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
Utwórz tabelę typu NewTable
ciąg.
.create table NewTable (Col1:string, Id:int)
Dołącz dane z OriginalTable
do NewTable
i użyj tostring()
funkcji, aby przekonwertować kolumnę "Col1" z identyfikatora GUID typu na ciąg typu.
.set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Zamień nazwy tabel.
.rename tables NewTable = OriginalTable, OriginalTable = NewTable
Upuść tabelę ze NewTable
starym schematem i danymi.
.drop table NewTable