다음을 통해 공유


Delta Lake 열 매핑을 사용하여 열 이름 바꾸기 및 삭제

Azure Databricks는 Delta Lake 테이블에 대한 열 매핑을 지원합니다. 이를 통해 메타데이터 전용 변경 내용이 데이터 파일을 다시 작성하지 않고도 열을 삭제되거나 이름이 바뀐 것으로 표시할 수 있습니다. 또한 사용자가 이전 문자 제약 조건으로 인해 열 이름을 바꿀 필요 없이 CSV 또는 JSON 데이터를 Delta로 직접 수집할 수 있도록 공백과 같이 Parquet에서 허용되지 않는 문자를 사용하여 델타 테이블 열의 이름을 지정할 수 있습니다.

Important

열 매핑을 사용하도록 설정된 테이블은 Databricks Runtime 10.4 LTS 이상에서만 읽을 수 있습니다.

테이블에서 열 매핑을 사용하도록 설정하면 델타 변경 데이터 피드를 사용하는 다운스트림 작업이 중단될 수 있습니다. 열 매핑이 사용하도록 설정된 테이블에 대한 변경 데이터 피드 제한을 참조하세요.

테이블에서 열 매핑을 사용하도록 설정하면 델타 라이브 테이블을 포함하여 델타 테이블의 스트리밍 읽기가 원본으로 중단될 수 있습니다. 열 매핑 및 스키마 변경 내용이 포함된 스트리밍을 참조하세요.

열 매핑 사용

열 매핑에는 다음 델타 프로토콜이 필요합니다.

  • 판독기 버전 2 이상.
  • 기록기 버전 5 이상.

필요한 프로토콜 버전이 있는 델타 테이블의 경우 열 매핑을 로 설정하여 사용하도록 설정할 delta.columnMapping.mode name수 있습니다.

다음 명령을 사용하여 열 매핑을 사용하도록 설정할 수 있습니다.

  ALTER TABLE <table-name> SET TBLPROPERTIES (
    'delta.columnMapping.mode' = 'name'
  )

열 매핑 사용 안 함을 참조하세요.

열 이름 바꾸기

참고 항목

Databricks Runtime 10.4 LTS 이상에서 사용할 수 있습니다.

Delta 테이블에 열 매핑을 활성화하면 열 이름을 바꿀 수 있습니다.

ALTER TABLE <table-name> RENAME COLUMN old_col_name TO new_col_name

자세한 예제는 Delta Lake 테이블 스키마 업데이트를 참조하세요.

열 삭제

참고 항목

Databricks Runtime 11.3 LTS 이상에서 사용할 수 있습니다.

Delta 테이블에 열 매핑을 활성화하면 하나 이상의 열을 삭제할 수 있습니다.

ALTER TABLE table_name DROP COLUMN col_name
ALTER TABLE table_name DROP COLUMNS (col_name_1, col_name_2, ...)

자세한 내용은 Delta Lake 테이블 스키마 업데이트를 참조하세요.

열 이름에서 지원되는 문자

델타 테이블에 대해 열 매핑을 사용하는 경우 테이블의 열 이름 ,;{}()\n\t=에 공백과 이러한 문자를 포함할 수 있습니다.

열 매핑 및 스키마 변경 내용이 있는 스트리밍

Important

이 기능은 Databricks Runtime 13.3 LTS 이상의 공개 미리 보기에 있습니다.

스키마 추적 위치를 제공하여 열 매핑을 사용하도록 설정된 델타 테이블에서 스트리밍을 사용하도록 설정할 수 있습니다. 이렇게 하면 비가산적 스키마 변경으로 인해 스트림이 손상될 수 있는 문제가 해결됩니다.

데이터 원본에 대해 읽은 각 스트리밍에는 고유한 schemaTrackingLocation 지정이 있어야 합니다. 지정된 schemaTrackingLocation 내용은 스트리밍 쓰기를 위해 checkpointLocation 대상 테이블의 지정된 디렉터리 내에 포함되어야 합니다.

참고 항목

여러 원본 델타 테이블의 데이터를 결합하는 스트리밍 워크로드의 경우 각 원본 테이블에 대해 고유한 디렉터리를 checkpointLocation 지정해야 합니다.

이 옵션은 schemaTrackingLocation 다음 코드 예제와 같이 스키마 추적 경로를 지정하는 데 사용됩니다.

checkpoint_path = "/path/to/checkpointLocation"

(spark.readStream
  .option("schemaTrackingLocation", checkpoint_path)
  .table("delta_source_table")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .toTable("output_table")
)

열 매핑 사용 안 함

Databricks Runtime 15.3 이상에서는 이 명령을 사용하여 DROP FEATURE 테이블에서 열 매핑을 제거하고 테이블 프로토콜을 다운그레이드할 수 있습니다.

델타 테이블 기능 삭제를 참조하세요.