테이블을 변경하면 스키마를 발전시키고 (예: 열 추가) 테이블 메타데이터 속성을 업데이트할 수 있습니다.
수정사항은 Lakehouse 런타임 카탈로그 에서 관리되며 오픈소스 Iceberg REST 카탈로그 API 사양 (CommitTable/UpdateIcebergTable의 경우 POST /v1/{prefix}/namespaces/{namespace}/tables/{table})을 통해 커밋됩니다.
지원되는 테이블 형식
Apache Iceberg V2 테이블만 지원되며 Iceberg V1 테이블은 지원되지 않습니다. 기존 Iceberg V1 테이블이 있는 경우 Lakehouse 런타임 카탈로그 로 테이블을 변경하거나 관리하기 전에 V2로 업그레이드해야 합니다 (예: ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); 실행 또는 유사한 엔진 작업 사용).
시작하기 전에
테이블 개요를 참조하여 다양한 테이블 유형과 테이블 사용의 영향을 파악하세요.
-
BigLake API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기
필요한 역할
테이블을 변경하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 및 스토리지 버킷에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
사용자 인증 정보 벤더 제공 모드에서 테이블 변경: BigLake 편집자 (
roles/biglake.editor) - 프로젝트 -
사용자 인증 정보 벤더 제공 모드가 아닌 모드에서 테이블 변경:
- BigLake 편집자 (
roles/biglake.editor) - 프로젝트 - 스토리지 객체 사용자 (
roles/storage.objectUser) - Cloud Storage 버킷
- BigLake 편집자 (
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
테이블 변경
테이블에 열을 추가합니다.
콘솔
콘솔에서 Lakehouse 로 이동합니다. Google Cloud
기존 카탈로그를 선택하거나 카탈로그가 없는 경우 카탈로그를 만듭니다.
네임스페이스 세부정보 테이블에서 테이블을 선택하고 메뉴 옵션을 펼칩니다.
수정 을 클릭합니다.
대화상자에서 테이블 값을 업데이트합니다.
저장 을 클릭합니다.
Spark
spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()
Trino
ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;
REST
REST API를 사용하여 Iceberg 테이블에 변경사항을 커밋하려면 POST 요청
UpdateIcebergTable (CommitTable) 엔드포인트를 전송합니다.
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME
요청 본문에는 기본 요구사항과 적용할 메타데이터 업데이트 목록을 정의하는 유효한 Iceberg CommitTableRequest JSON 페이로드가 포함되어야 합니다.
다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID입니다. Google CloudCATALOG_ID: Lakehouse 런타임 카탈로그의 ID입니다.NAMESPACE_NAME: 카탈로그 네임스페이스의 이름입니다.TABLE_NAME: Iceberg 테이블의 이름입니다.
다음 단계
- 테이블 삭제 방법 알아보기.