테이블 만들기

Apache Iceberg 테이블을 만들면 Lakehouse 런타임 카탈로그의 네임스페이스 내에 테이블 메타데이터가 등록됩니다.

테이블을 만드는 동안 네임스페이스 또는 테이블 수준에서 명시적 스토리지 위치를 지정하지 않으면 시스템은 네임스페이스 및 테이블 식별자를 추가하여 카탈로그의 기본 위치 (카탈로그의 기본 Cloud Storage 버킷에서 파생됨) 아래에 테이블의 메타데이터 및 데이터 디렉터리를 자동으로 구성합니다.

시작하기 전에

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

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

    API 사용 설정에 필요한 역할

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

    API 사용 설정하기

  3. Apache Iceberg REST 카탈로그 엔드포인트로 Lakehouse 런타임 카탈로그를 설정합니다.

필요한 역할

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

  • 모두:
    • BigLake 관리자 (roles/biglake.admin) - 프로젝트
    • 스토리지 관리자 (roles/storage.admin) - 대상 Cloud Storage 버킷

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

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

테이블 기능 및 지원

Lakehouse 런타임 카탈로그에서 테이블을 사용할 때는 다양한 테이블 유형과 선택 기능에 대해 이해하는 것이 좋습니다. 특히 Apache Iceberg 테이블 사용에 대한 자세한 내용은 Apache Iceberg 테이블 개요를 참조하세요.

지원되는 Iceberg 테이블

Apache Iceberg V2 (GA) 및 V3 (미리보기) 테이블만 지원됩니다. Iceberg V1 테이블은 지원되지 않습니다. 기존 V1 테이블을 업그레이드하려면 Iceberg V1 테이블을 V2로 업그레이드하기를 참조하세요.

테이블 옵션 사용 (미리보기)

특정 테이블 속성을 구성하여 BigQuery DML 및 자동 테이블 관리와 같은 BigQuery 관리 기능을 선택할 수 있습니다. 이러한 기능은 테이블이 생성된 위치에 따라 다양한 방식으로 사용 설정됩니다.

  • BigQuery에서: BigQuery DML 및 자동 테이블 관리가 기본적으로 사용 설정됩니다.
  • 오픈소스 엔진에서: 선택하려면 테이블 속성을 명시적으로 구성해야 합니다. 자세한 내용은 테이블 옵션 구성을 참조하세요.

테이블 만들기

Iceberg 테이블을 만듭니다.

Console

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

    Lakehouse로 이동

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

  3. 메뉴 표시줄에서 + 테이블 만들기 를 클릭합니다.

  4. 테이블 형식에서 Iceberg를 선택합니다.

  5. 테이블 이름에 고유한 테이블 이름을 입력합니다.

  6. 만들기 를 클릭합니다.

테이블이 네임스페이스 세부정보 페이지에 표시됩니다.

Spark

spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")

다음 값을 바꿉니다.

읽기/쓰기 상호 운용성 및 테이블 관리 (미리보기)를 사용 설정하려면 TBLPROPERTIES 절에 속성을 추가합니다.

TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);

다음 값을 바꿉니다.

읽기/쓰기 상호 운용성 및 테이블 관리 (미리보기)를 사용 설정하려면 이러한 속성을 WITH 절에 추가합니다.

WITH (
  "gcp.biglake.bigquery-dml.enabled" = 'true',
  "gcp.biglake.table-management.enabled" = 'true'
)

gcloud

gcloud를 사용하여 테이블을 만들려면 gcloud biglake iceberg tables create 명령어를 실행합니다.

gcloud biglake iceberg tables create \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --create-from-file="TABLE_DEFINITION_FILE"

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다. Google Cloud
  • CATALOG_ID: 카탈로그의 ID입니다.
  • NAMESPACE_NAME: 카탈로그 네임스페이스의 이름입니다.
  • TABLE_DEFINITION_FILE: Iceberg 테이블 정의가 포함된 JSON 파일의 경로입니다.

BigQuery

BigQuery에서 Lakehouse 런타임 카탈로그에 Apache Iceberg 테이블을 만들려면 다음 GoogleSQL CREATE TABLE 문을 사용합니다. BigQuery에서 테이블을 만들면 BigQuery DML 및 자동 테이블 관리가 기본적으로 사용 설정됩니다.

CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);

다음을 바꿉니다.

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

REST

REST API를 사용하여 Iceberg 테이블을 만들려면 POST 요청을 CreateIcebergTable 엔드포인트에 작성합니다.

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

요청 본문에는 테이블 스키마, 파티션 사양, 초기 속성을 정의하는 유효한 Iceberg CreateTableRequest JSON 페이로드가 포함되어야 합니다.

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다. Google Cloud
  • CATALOG_ID: 카탈로그의 ID입니다.
  • NAMESPACE_NAME: 카탈로그 네임스페이스의 이름입니다.

다음 단계