테이블 변경

테이블을 변경하면 스키마를 발전시키고 (예: 열 추가) 테이블 메타데이터 속성을 업데이트할 수 있습니다.

수정사항은 Lakehouse 런타임 카탈로그에서 관리되며 오픈소스 Iceberg REST 카탈로그 API 사양 (CommitTable/UpdateIcebergTable의 경우 POST /v1/{prefix}/namespaces/{namespace}/tables/{table})을 통해 커밋됩니다.

시작하기 전에

표 개요를 참고하여 다양한 유형의 표와 표 사용의 영향을 알아보세요.

  1. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  2. BigLake API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기

    API 사용 설정

필요한 역할

테이블을 변경하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 및 스토리지 버킷에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 인증 정보 제공 모드에서 테이블 변경: BigLake 편집기 (roles/biglake.editor) - 프로젝트
  • 사용자 인증 정보 벤더 제공 모드가 아닌 모드에서 테이블을 변경합니다.
    • BigLake 편집자 (roles/biglake.editor) - 프로젝트
    • 스토리지 객체 사용자 (roles/storage.objectUser) - Cloud Storage 버킷

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

테이블 변경

표에 열을 추가합니다.

콘솔

  1. Google Cloud 콘솔에서 Lakehouse로 이동합니다.

    레이크하우스로 이동

  2. 기존 카탈로그를 선택하거나 카탈로그가 없는 경우 카탈로그를 만듭니다.

  3. 네임스페이스 세부정보 표에서 테이블을 선택하고 메뉴 옵션을 펼칩니다.

  4. 수정을 클릭합니다.

  5. 대화상자에서 표 값을 업데이트합니다.

  6. 저장을 클릭합니다.

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 테이블에 변경사항을 커밋하려면 UpdateIcebergTable (CommitTable) 엔드포인트에 POST 요청을 전송합니다.

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME

요청 본문에는 기본 요구사항과 적용할 메타데이터 업데이트 목록을 정의하는 유효한 Iceberg CommitTableRequest JSON 페이로드가 포함되어야 합니다.

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • CATALOG_ID: Lakehouse 런타임 카탈로그의 ID입니다.
  • NAMESPACE_NAME: 카탈로그 네임스페이스의 이름입니다.
  • TABLE_NAME: Iceberg 테이블의 이름

다음 단계