다음을 통해 공유


데이터 손실 없이 열 형식 변경

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

.alter 열 명령은 열 형식을 변경하여 원래 데이터를 복구할 수 없게 만듭니다. 열 형식을 변경하는 동안 기존 데이터를 유지하려면 올바르게 입력된 새 테이블을 만듭니다.

열 형식을 변경하려는 각 테이블에 OriginalTable 대해 다음 단계를 실행합니다.

  1. 올바른 스키마(올바른 열 형식 및 동일한 열 순서)를 사용하여 테이블을 NewTable 만듭니다.

  2. 필요한 데이터 변환을 적용하여 데이터를 NewTable OriginalTable수집합니다. 다음 예제에서 Col1은 문자열 데이터 형식으로 변환됩니다.

    .set-or-append NewTable <| OriginalTable | extend Col1=tostring(Col1)
    
  3. 테이블 이름 바꾸기 명령을 사용하여 테이블 이름을 바꿉니다.

    .rename tables NewTable=OriginalTable, OriginalTable=NewTable
    

    명령이 완료되면 기존 수집 파이프라인의 새 데이터가 해당 파이프라인으로 OriginalTable 흐릅니다.

  4. 테이블을 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