AWS Glue용 교차 클라우드 레이크하우스 설정

이 문서에서는 Lakehouse for Apache Iceberg용 크로스 클라우드를 설정하여 Google Cloud내에서 직접 AWS Glue 카탈로그의 데이터를 쿼리하는 방법을 설명합니다. 이 기능을 사용하면 외부 데이터 소스를 기존 Google Cloud 환경과 통합하여 데이터 분석을 통합할 수 있습니다.

그런 다음 Lakehouse를 사용하여 페더레이션 데이터에 대한 액세스를 관리할 수 있습니다.

시작하기 전에

  1. 레이크하우스 개요를 검토하여 레이크하우스가 데이터 액세스를 관리하는 방법을 알아보세요.
  2. 크로스 클라우드 레이크하우스 정보를 읽고 작동 방식을 이해합니다.
  3. 지원되는 카탈로그를 검토하여 표 형식 요구사항과 지원되는 구성을 확인합니다.
  4. AWS 관리자에게 Identity and Access Management (IAM) 역할을 만들고 권한 정책을 구성할 권한이 있는지 확인합니다.
  5. 선택사항: Google Cloud VPC와 원격 클라우드 제공업체의 VPC(예: AWS) 간의 비공개 인터커넥트를 통해 쿼리를 라우팅하려는 경우 원격 제공업체의 활성 계정이 있고, 크로스 클라우드 인터커넥트 또는 파트너 인터커넥트를 프로비저닝하고, Cloud Router와 BGP 세션을 설정하고, 두 클라우드 환경 모두에 필요한 IAM 권한이 있는지 확인합니다.
  6. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

필요한 역할

크로스 클라우드 레이크하우스를 설정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 레이크하우스 카탈로그 관리: BigLake 관리자 (roles/biglake.admin)
  • 비공개 상호 연결을 통해 트래픽 라우팅: Compute 네트워크 관리자 (roles/compute.networkAdmin), 서비스 디렉터리 뷰어 (roles/servicedirectory.viewer), 서비스 디렉터리 PSC 승인 서비스 (roles/servicedirectory.pscAuthorizedService)

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

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

제한사항 및 고려사항

이 섹션에는 크로스 클라우드 레이크하우스 사용에 관한 제한사항과 고려사항이 나와 있습니다.

  • 지원되는 클라우드 제공업체: 교차 클라우드 Lakehouse와의 비공개 인터커넥트는 Amazon Web Services (AWS)와 같은 원격 클라우드 제공업체에서 지원됩니다. 교차 클라우드 인터커넥트 또는 파트너 인터커넥트를 사용할 수 있습니다.
  • 네트워크 라우팅: 비공개 인터커넥트 (예: 고객 소유 CCI 또는 Partner Interconnect)가 구성되지 않은 경우 쿼리는 공용 인터넷을 통해 라우팅됩니다. 이로 인해 원격 클라우드 제공업체에서 이그레스 요금이 더 많이 청구되고 성능을 예측하기 어려워질 수 있습니다.
  • 데이터 최신성: 제휴 카탈로그의 --refresh-interval 플래그는 메타데이터가 동기화되는 빈도를 결정합니다. 간격이 짧을수록 최신 데이터가 제공되지만 원격 카탈로그 제공업체에서 추가 API 비용이 발생할 수 있습니다.
  • Iceberg 측정항목 보고: Iceberg 측정항목 보고는 페더레이션 카탈로그에서 사용할 수 없습니다. 제휴 카탈로그에 액세스할 때 Iceberg 클라이언트에서 rest-metrics-reporting-enabled 속성을 false로 설정합니다.

일반 워크플로

크로스 클라우드 레이크하우스를 설정하고 사용하려면 다음 일반 단계를 따르세요.

  • Cross-Cloud Interconnect 설정 (선택사항): Google Cloud VPC와 원격 클라우드 제공업체 간에 비공개 연결을 구성합니다.
  • 제휴 설정: 원격 제공업체와 함께 자리표시자 신뢰 정책이 있는 IAM 역할을 만들어 인증을 구성합니다. 그런 다음 Lakehouse에서 제휴 카탈로그를 만들고 신뢰 정책을 업데이트합니다.
  • 연결 확인: Lakehouse가 원격 카탈로그에 성공적으로 연결할 수 있는지 확인합니다.
  • 데이터 쿼리: BigQuery 또는 Managed Service for Apache Spark를 사용하여 페더레이션된 데이터에 대해 쿼리를 실행합니다. 자세한 내용은 크로스 클라우드 Lakehouse 사용을 참고하세요.
  • 권한 구성: IAM을 사용하여 제휴 데이터를 보고 쿼리할 수 있는 사용자를 관리합니다.

Cross-Cloud Interconnect 설정 (선택사항)

원격 카탈로그에 대한 쿼리는 기본적으로 공개 인터넷을 통해 이동합니다. 보안 및 규정 준수를 강화하고, 예측 가능한 성능을 제공하며, 데이터 전송 비용을 줄이려면 비공개 인터커넥트를 사용하세요. 이렇게 하면 Google Cloud가상 프라이빗 클라우드 (VPC)와 원격 클라우드 제공업체의 네트워크 (예: AWS) 간에 전용 비공개 네트워크 연결이 설정됩니다.

Google Cloud VPC와 원격 클라우드 제공업체의 VPC(예: AWS) 간에 다음 비공개 인터커넥트 옵션 중 하나를 프로비저닝하고 구성할 수 있습니다.

경로 교환을 위해 Google Cloud 의 Cloud Router와 원격 클라우드 제공업체의 VPC 간에 BGP 세션을 설정합니다.

비공개 쿼리를 사용 설정하려면 비공개 상호 연결을 통해 Lakehouse에서 원격 스토리지 버킷 (예: AWS Amazon S3 버킷)으로의 경로를 구성해야 합니다. 이 라우팅을 구성하기 위해 따를 수 있는 두 가지 아키텍처 흐름이 있습니다.

  • 내부 리전 프록시 네트워크 부하 분산기 라우팅: 이 흐름에서는Google Cloud 내부 리전 프록시 네트워크 부하 분산기를 사용하여 여러 AWS 탄력적 네트워크 인터페이스 (ENI)를 가리키는 하이브리드 연결 네트워크 엔드포인트 그룹 (NEG)에 요청을 분산합니다. 이 흐름은 부하 분산, 확장성, 고가용성에 필수적입니다. Partner Interconnect에 필요하며, 부하 분산, 확장성, 고가용성을 위해 Cross-Cloud Interconnect에 권장됩니다.
  • 직접 엔드포인트 라우팅: 이 흐름은 서비스 디렉터리를 단일 AWS 인터페이스 VPC 엔드포인트 IP 주소에 직접 연결합니다. 이 흐름은 Cross-Cloud Interconnect에서만 작동하며 Partner Interconnect에서는 지원되지 않습니다.

아키텍처 요구사항에 맞는 구성 흐름을 선택합니다.

내부 리전 프록시 네트워크 부하 분산기

고가용성 및 부하 분산을 위해 여러 AWS ENI에 요청을 분산하도록 내부 리전 프록시 네트워크 부하 분산기를 구성하려면 다음 단계를 따르세요.

AWS 네트워킹 구성

먼저 Amazon S3 VPC 인터페이스 엔드포인트 (AWS PrivateLink)를 만듭니다.

  1. AWS VPC 콘솔에서 Amazon S3의 인터페이스 엔드포인트를 만듭니다.
  2. 서비스 이름으로 com.amazonaws.<var>AWS_REGION</var>.s3를 지정합니다.
  3. Direct Connect를 통해 Google Cloud VPC에 연결된 VPC 및 서브넷을 선택합니다.
  4. 인바운드 액세스를 제어하기 위해 엔드포인트에 보안 그룹을 연결합니다.
  5. 이렇게 하면 선택한 각 서브넷에 탄력적 네트워크 인터페이스 (ENI)가 프로비저닝됩니다. 이러한 ENI의 비공개 IP 주소를 확인합니다.

다음으로 보안 그룹을 구성합니다.

  • Amazon S3 엔드포인트 ENI에 연결된 보안 그룹이 Google Cloud VPC의 관련 IP 범위에서 포트 443의 인바운드 TCP 트래픽을 허용하는지 확인합니다.

네트워킹 Google Cloud 구성

안내에 따라 하이브리드 엔드포인트용 내부 리전 프록시 네트워크 부하 분산기를 설정합니다.

안내를 따를 때는 다음 사항을 확인하세요.

  • 하이브리드 연결 NEG (NON_GCP_PRIVATE_IP_PORT)를 만들고 이전에 만든 AWS ENI의 비공개 IP 주소를 추가합니다.
  • NEG, 상태 점검, 전달 규칙에 TCP 포트 443를 사용합니다.
  • 연합 카탈로그와 동일한 Google Cloud 리전에 부하 분산기를 설정합니다.

부하 분산기의 전달 규칙을 만든 후 부하 분산기에 할당된 내부 IP 주소를 확인합니다. ILB_IP_ADDRESS입니다.

서비스 디렉터리 구성

Lakehouse가 검색할 수 있도록 서비스 디렉터리에 ILB의 IP 주소를 등록합니다.

  1. 원격 클라우드의 네임스페이스를 만듭니다.

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    다음을 바꿉니다.

    • NAMESPACE: 네임스페이스의 고유 식별자입니다.
    • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
    • REGION: Google Cloud 리전입니다. 예를 들면 us-east4입니다. 이 리전은 제휴 카탈로그와 동일한 리전이어야 합니다.
  2. 서비스 디렉터리 네임스페이스에서 서비스를 만듭니다.

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    다음을 바꿉니다.

    • SERVICE_NAME: 서비스의 고유 식별자입니다.
  3. 서비스에서 ILB의 엔드포인트를 만듭니다.

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --project=PROJECT_ID \
        --namespace=NAMESPACE \
        --service=SERVICE_NAME \
        --location=REGION \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \
        --address=ILB_IP_ADDRESS \
        --port=443

    다음을 바꿉니다.

    • ENDPOINT_NAME: 엔드포인트의 고유 식별자입니다.
    • PROJECT_NUMBER: Google Cloud프로젝트 번호 --network 플래그에 프로젝트 번호를 사용합니다.
    • ILB_IP_ADDRESS: ILB 전달 규칙의 내부 IP 주소입니다.

직접 엔드포인트

트래픽을 단일 AWS 인터페이스 VPC 엔드포인트 IP 주소로 직접 라우팅하도록 서비스 디렉터리를 구성하려면 다음 단계를 따르세요.

  1. AWS VPC 내에서 Amazon S3용 인터페이스 VPC 엔드포인트를 만듭니다. 이 엔드포인트의 IP 주소와 포트를 기록해 둡니다.
  2. 원격 클라우드의 네임스페이스를 만듭니다.

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    다음을 바꿉니다.

    • NAMESPACE: 네임스페이스의 고유 식별자입니다.
    • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
    • REGION: Google Cloud 리전입니다. 예를 들면 us-east4입니다. 이 리전은 제휴 카탈로그와 동일한 리전이어야 합니다.
  3. 서비스 디렉터리 네임스페이스에서 서비스를 만듭니다.

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    다음을 바꿉니다.

    • SERVICE_NAME: 서비스의 고유 식별자입니다.
  4. Amazon S3 인터페이스 VPC 엔드포인트의 라우팅 정보가 포함된 서비스에 엔드포인트를 만듭니다.

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --service=SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION \
        --address=S3_VPCE_IP_ADDRESS \
        --port=S3_VPCE_PORT \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK

    다음을 바꿉니다.

    • ENDPOINT_NAME: 엔드포인트의 고유 식별자입니다.
    • S3_VPCE_IP_ADDRESS: Amazon S3 인터페이스 VPC 엔드포인트의 IP 주소입니다. 예를 들면 10.0.1.45입니다.
    • S3_VPCE_PORT: Amazon S3 인터페이스 VPC 엔드포인트의 포트 번호입니다. 예를 들면 443입니다.
    • PROJECT_NUMBER: Google Cloud프로젝트 번호 --network 플래그에 프로젝트 번호를 사용합니다.
    • VPC_NETWORK: 비공개 인터커넥트와 연결된 Google Cloud VPC 네트워크 이름입니다.

교차 클라우드 제휴 설정

데이터를 쿼리하려면 원격 AWS 카탈로그에 연결되는 Lakehouse 제휴 카탈로그를 설정하세요.

자리표시자 트러스트 정책으로 AWS IAM 역할 만들기

Lakehouse는 카탈로그 생성 후 Google 서비스 계정 ID를 프로비저닝합니다. 자리표시자 트러스트 정책으로 AWS IAM 역할을 만듭니다.

  1. trust_policy.json이라는 파일을 만듭니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "accounts.google.com"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "accounts.google.com:aud": [
                "PLACEHOLDER_VALUE"
              ],
              "accounts.google.com:sub": [
                "PLACEHOLDER_VALUE"
              ]
            }
          }
        }
      ]
    }
  2. AWS CLI 명령어를 실행하여 자리표시자 트러스트 정책으로 역할을 만듭니다. 장기 실행 작업 중에 사용자 인증 정보가 만료되지 않도록 최대 세션 시간을 12시간 (43200초)으로 설정하는 것이 좋습니다.

    aws iam create-role \
      --role-name AWS_ROLE_NAME \
      --assume-role-policy-document file://trust_policy.json \
      --max-session-duration 43200

    다음을 바꿉니다.

    • AWS_ROLE_NAME: AWS IAM 역할의 이름입니다. 예를 들면 biglake_glue_federation_role입니다.

권한 정책 연결

Lakehouse가 AWS 리전의 Glue 데이터 카탈로그 및 S3 버킷에 액세스할 수 있도록 하는 권한 정책을 IAM 역할에 연결합니다. AWS Lake Formation S3 테이블 통합을 사용하는 경우 이 정책은 S3 테이블 버킷에 대한 액세스 권한도 부여합니다. 기본 AWS Glue 데이터 권한에서 AWS Lake Formation 모델로 업그레이드한 경우 Lake Formation에서 추가 권한을 부여해야 할 수 있습니다.

  1. 다음 정책 구성으로 permissions_policy.json이라는 파일을 만듭니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "GlueRead",
          "Effect": "Allow",
          "Action": [
            "glue:GetCatalog",
            "glue:GetDatabase",
            "glue:GetDatabases",
            "glue:GetTable",
            "glue:GetTables"
          ],
          "Resource": "arn:aws:glue:AWS_REGION:AWS_ACCOUNT_ID:*"
        },
        {
          "Sid": "S3Read",
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket",
            "s3:GetObject"
          ],
          "Resource": [
            "arn:aws:s3:::*"
          ]
        },
        {
          "Sid": "S3TablesRead",
          "Effect": "Allow",
          "Action": [
            "s3tables:GetTableBucket",
            "s3tables:ListNamespaces",
            "s3tables:GetNamespace",
            "s3tables:ListTables",
            "s3tables:GetTable",
            "s3tables:GetTableMetadataLocation",
            "s3tables:GetTableData"
          ],
          "Resource": [
            "arn:aws:s3tables:AWS_REGION:AWS_ACCOUNT_ID:*"
          ]
        }
      ]
    }
  2. 이 권한 정책을 IAM 역할에 연결합니다.

    aws iam put-role-policy \
      --role-name AWS_ROLE_NAME \
      --policy-name AWS_POLICY_NAME \
      --policy-document file://permissions_policy.json

    다음을 바꿉니다.

    • AWS_ROLE_NAME: AWS IAM 역할의 이름 예를 들면 biglake_glue_federation_role입니다.
    • AWS_POLICY_NAME: 권한 정책의 이름입니다. 예를 들면 biglake_glue_permissions입니다.
    • AWS_REGION: Glue 카탈로그 또는 S3 테이블이 있는 AWS 리전입니다. 예를 들면 us-east-1입니다.
    • AWS_ACCOUNT_ID: 12자리 AWS 계정 ID 문자열입니다. 예를 들면 123456789012입니다.

제휴 카탈로그 만들기

gcloud CLI 또는 REST API를 사용하여 Google Cloud 에 연합 카탈로그를 설정합니다.

AWS 신뢰 관계가 전파되는 동안 메타데이터 동기화가 조기에 실패하지 않도록 하려면 새로고침 일정 (기본값은 0s)을 지정하지 않고 카탈로그를 초기화하세요.

Google Cloud CLI

공개 인터넷 (CCI 없음)

CCI를 구성하지 않으면 연결이 공개 인터넷을 통해 안전하게 이동합니다.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="glue" \
    --glue-warehouse="GLUE_OR_S3_TABLE_BUCKET_WAREHOUSE" \
    --glue-aws-region="AWS_REGION" \
    --glue-aws-role-arn="arn:aws:iam::AWS_ACCOUNT_ID:role/AWS_ROLE_NAME"

고객 소유 (CCI)

비공개 상호연결 (예: 전용 CCI 또는 Partner Interconnect)을 구성한 경우 Lakehouse가 비공개로 트래픽을 라우팅하도록 서비스 디렉터리 서비스 참조를 제공합니다.

gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="glue" \
    --glue-warehouse="GLUE_OR_S3_TABLE_BUCKET_WAREHOUSE" \
    --glue-aws-region="AWS_REGION" \
    --glue-aws-role-arn="arn:aws:iam::AWS_ACCOUNT_ID:role/AWS_ROLE_NAME" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"

REST

curl -s -X POST \
  -H "x-goog-user-project: PROJECT_ID" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://biglake.googleapis.com/iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs?iceberg_catalog_id=FEDERATED_CATALOG_NAME&primary_location=REGION" \
  -d '{
    "catalog_type": "CATALOG_TYPE_FEDERATED",
    "storage_regions": ["'"REGION"'"],
    "federated_catalog_options": {
      "glue_catalog_info": {
        "warehouse": "'"GLUE_OR_S3_TABLE_BUCKET_WAREHOUSE"'",
        "aws_region": "'"AWS_REGION"'",
        "aws_role_arn": "arn:aws:iam::'"AWS_ACCOUNT_ID"':role/'"AWS_ROLE_NAME"'"
      }
    }
  }'

다음을 바꿉니다.

  • FEDERATED_CATALOG_NAME: 통합 카탈로그의 이름입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • REGION: 제휴 카탈로그가 생성되는 Lakehouse 리전입니다. 예를 들면 us-east4입니다.
  • GLUE_OR_S3_TABLE_BUCKET_WAREHOUSE: 타겟 창고 카탈로그 식별자입니다. AWS 리전의 Glue Data Catalog의 경우 12자리 AWS 계정 ID 문자열을 입력합니다. 예를 들면 123456789012입니다. 리전에서 S3 테이블 버킷을 사용하려면 AWS_ACCOUNT_ID:s3tablescatalog/S3_TABLE_BUCKET를 입력합니다. 예를 들면 123456789012:s3tablescatalog/my-table-bucket입니다.
  • AWS_ACCOUNT_ID: 12자리 AWS 계정 ID 문자열입니다. 예를 들면 123456789012입니다.
  • AWS_REGION: Glue 카탈로그 또는 S3 테이블 버킷이 있는 AWS 리전입니다. 예를 들면 us-east-1입니다.
  • AWS_ROLE_NAME: AWS IAM 역할의 이름입니다. 예를 들면 biglake_glue_federation_role입니다.
  • NAMESPACE: (선택사항) 비공개 Interconnect 설정 중에 만든 서비스 디렉터리 네임스페이스입니다.
  • SERVICE_NAME: (선택사항) 비공개 Interconnect 설정 중에 만든 서비스 디렉터리 서비스 이름입니다.

트러스트 정책 업데이트

카탈로그가 생성되면 Lakehouse에서 카탈로그에 대한 고유한 서비스 계정을 프로비저닝하며, 이 계정은 카탈로그 생성 응답에서 biglake-service-account-id 필드로 반환됩니다. 이 서비스 계정을 사용하여 신뢰 관계를 설정합니다.

  1. 다음 명령어를 실행하여 biglake-service-account-id 값을 활성 bash 변수로 추출합니다.

    BIGLAKE_SA_ID=$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --format="value(biglake-service-account-id)")
  2. AWS IAM 역할의 트러스트 정책을 업데이트하여 자리표시자를 인증된 Google 서비스 에이전트 ID로 바꿉니다. 조건 블록은 subaud 일치를 모두 검증합니다. trust_policy_comprehensive.json이라는 파일에 정책을 작성합니다.

    cat > trust_policy_comprehensive.json << EOF
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "accounts.google.com"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "accounts.google.com:aud": [
                "$BIGLAKE_SA_ID"
              ],
              "accounts.google.com:sub": [
                "$BIGLAKE_SA_ID"
              ]
            }
          }
        }
      ]
    }
    EOF
  3. 최종 정책을 AWS 역할에 적용합니다.

    aws iam update-assume-role-policy \
      --role-name AWS_ROLE_NAME \
      --policy-document file://trust_policy_comprehensive.json

백그라운드 새로고침 사용 설정

이제 두 플랫폼에서 보안 트러스트 관계가 성공적으로 설정되었으므로 카탈로그를 업데이트하여 백그라운드 새로고침 (5분 또는 300s 이상)을 활성화합니다.

gcloud CLI

gcloud alpha biglake iceberg catalogs update FEDERATED_CATALOG_NAME \
  --project="PROJECT_ID" \
  --refresh-interval="300s"

REST

curl -s -X PATCH \
-H "x-goog-user-project: PROJECT_ID" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://biglake.googleapis.com/iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/FEDERATED_CATALOG_NAME?updateMask=federated_catalog_options.refresh_options.refresh_schedule" \
-d '{
  "federated_catalog_options": {
    "refresh_options": {
      "refresh_schedule": {
        "refresh_interval": "300s"
      }
    }
  }
}'

연결 확인하기

카탈로그 백그라운드 새로고침 주기가 성공적으로 완료되고 네임스페이스가 동기화되고 있는지 확인합니다.

  1. 새로고침 상태가 성공을 나타내는지 확인합니다.

    gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --location="REGION"
  2. 원격 데이터베이스가 동기화된 네임스페이스로 표시되는지 확인합니다.

    gcloud alpha biglake iceberg namespaces list \
      --catalog="FEDERATED_CATALOG_NAME" \
      --project="PROJECT_ID" \
      --location="REGION"

다음 단계