데이터 손실 없이 열 형식 변경
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
.alter 열 명령은 열 형식을 변경하여 원래 데이터를 복구할 수 없게 만듭니다. 열 형식을 변경하는 동안 기존 데이터를 유지하려면 올바르게 입력된 새 테이블을 만듭니다.
열 형식을 변경하려는 각 테이블에 OriginalTable
대해 다음 단계를 실행합니다.
올바른 스키마(올바른 열 형식 및 동일한 열 순서)를 사용하여 테이블을
NewTable
만듭니다.필요한 데이터 변환을 적용하여 데이터를
NewTable
OriginalTable
수집합니다. 다음 예제에서 Col1은 문자열 데이터 형식으로 변환됩니다..set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
테이블 이름 바꾸기 명령을 사용하여 테이블 이름을 바꿉니다.
.rename tables NewTable=OriginalTable, OriginalTable=NewTable
명령이 완료되면 기존 수집 파이프라인의 새 데이터가 해당 파이프라인으로
OriginalTable
흐릅니다.테이블을
NewTable
삭제합니다.NewTable
에는 스키마가 변경되기 전의 기록 데이터 복사본만 포함됩니다. 스키마 및 데이터가OriginalTable
올바르게 업데이트되었는지 확인한 후 안전하게 삭제할 수 있습니다..drop table NewTable
예시
다음 예제에서는 데이터를 보존하는 동안의 OriginalTable
스키마를 업데이트합니다.
guid 형식의 열 "Col1"을 사용하여 테이블을 OriginalTable
만듭니다.
.create table OriginalTable (Col1:guid, Id:int)
그런 다음, 데이터를 .에 수집합니다 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
문자열 형식의 테이블을 NewTable
만듭니다.
.create table NewTable (Col1:string, Id:int)
데이터를 입력에서 OriginalTable
NewTable
추가하고 함수를 tostring()
사용하여 "Col1" 열을 형식 guid에서 형식 문자열로 변환합니다.
.set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
테이블 이름을 바꿉니다.
.rename tables NewTable = OriginalTable, OriginalTable = NewTable
이전 스키마 및 데이터를 사용하여 테이블을 NewTable
삭제합니다.
.drop table NewTable