Modifier le type de colonne sans perte de données
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
La commande .alter column modifie le type de colonne, ce qui rend les données d’origine irrécupérables. Pour conserver les données préexistantes lors de la modification du type de colonne, créez une table correctement typée.
Pour chaque table OriginalTable
dans laquelle vous souhaitez modifier un type de colonne, exécutez les étapes suivantes :
Créez une table
NewTable
avec le schéma approprié (les types de colonnes de droite et le même ordre de colonne).Ingérer les données à
NewTable
partir deOriginalTable
, en appliquant les transformations de données requises. Dans l’exemple suivant, Col1 est converti en type de données de chaîne..set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Utilisez la commande .rename tables pour échanger des noms de tables.
.rename tables NewTable=OriginalTable, OriginalTable=NewTable
Une fois la commande terminée, les nouvelles données des pipelines d’ingestion existants circulent vers
OriginalTable
celle-ci correctement typées.Supprimez la table
NewTable
.NewTable
inclut uniquement une copie des données historiques avant la modification du schéma. Elle peut être supprimée en toute sécurité après avoir confirmé que le schéma et les données étaientOriginalTable
correctement mis à jour..drop table NewTable
Exemple
L’exemple suivant met à jour le schéma de OriginalTable
tout en préservant ses données.
Créez la table, OriginalTable
avec une colonne « Col1 », de type guid.
.create table OriginalTable (Col1:guid, Id:int)
Ensuite, ingérer des données dans 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
Créez la table, NewTable
de type chaîne.
.create table NewTable (Col1:string, Id:int)
Ajoutez des données à partir de OriginalTable
et NewTable
utilisez la tostring()
fonction pour convertir la colonne « Col1 » du guid de type en chaîne de type.
.set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
Échangez les noms des tables.
.rename tables NewTable = OriginalTable, OriginalTable = NewTable
Supprimez la table, NewTable
avec l’ancien schéma et les données.
.drop table NewTable