Lakehouse 테이블을 SAP BDC에 게시

이 문서에서는 SAP Business 데이터 클라우드 (BDC)가 데이터를 복사하지 않고 BigQuery 데이터에 액세스할 수 있도록 구성하는 방법을 설명합니다. Google Cloud SAP와 공유할 Lakehouse for Apache Iceberg 런타임 카탈로그 또는 Knowledge Catalog 데이터 제품에서 Apache Iceberg REST 카탈로그 엔드포인트를 설정하여 이 작업을 실행합니다.

이 통합 및 사용 사례에 대한 개요는 SAP BDC 통합 정보를 참고하세요.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigLake and Dataplex APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

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

  5. Enable the BigLake and Dataplex APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  6. Cloud Storage 버킷: Iceberg 메타데이터와 데이터 파일을 저장할 Cloud Storage 버킷을 만듭니다. 자세한 내용은 버킷 만들기를 참고하세요. 구성 파이프라인 오류를 방지하려면 백엔드 버킷을 비롯한 모든 리소스가 동일한 리전에 있어야 합니다.
  7. Apache Iceberg REST 카탈로그: 공유하려는 네임스페이스와 테이블이 포함된, 사용자 인증 정보 판매가 사용 설정된 Lakehouse 런타임 카탈로그에서 Apache Iceberg REST 카탈로그 엔드포인트를 설정합니다. 이 카탈로그는 Cloud Storage 버킷을 웨어하우스로 사용합니다. 자세한 내용은 Iceberg REST 카탈로그 설정을 참고하세요.
  8. Delta Sharing 연결 카탈로그: SAP BDC 연결을 위해 등록된 Delta Sharing 연결 카탈로그를 준비합니다. 이는 SAP BDC에서 BigQuery로 데이터를 공유하기 위한 초기 설정 중에 생성된 카탈로그와 동일하므로 새로 만들 필요가 없습니다. 자세한 내용은 SAP BDC용 교차 클라우드 레이크하우스 설정을 참고하세요.
  9. 워크로드 아이덴티티 제휴 (WIF): SAP BDC 인증 발급자를 신뢰하도록 WIF를 구성할 준비를 합니다. 다음 섹션에서 이를 설정합니다.

필요한 역할

워크로드 아이덴티티 제휴를 구성하고 데이터를 게시하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

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

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

일반 워크플로

SAP BDC에 데이터를 게시하려면 다음 단계를 따르세요.

  1. 워크로드 아이덴티티 제휴 구성: SAP BDC OIDC 발급기관과 신뢰를 구축하기 위해 워크로드 아이덴티티 제휴 풀 및 프로바이더를 만듭니다.
  2. 제휴 주 구성원에게 역할 부여: 제휴 ID에 카탈로그 메타데이터를 보고 서비스 할당량을 사용할 수 있는 권한을 부여합니다.
  3. 데이터 게시: gcloud CLI를 사용하여 Apache Iceberg REST 카탈로그 또는 Knowledge Catalog 데이터 제품을 SAP BDC에 게시합니다.

워크로드 아이덴티티 제휴 구성

내보낸 서비스 계정 키 없이 SAP BDC가 Lakehouse 리소스에 액세스하도록 하려면 워크로드 아이덴티티 제휴 (WIF)를 구성하세요. 이렇게 하면 Google Cloud 와 SAP BDC OIDC 발급자 간에 트러스트가 설정됩니다.

다음 단계에 따라 WIF 풀과 제공업체를 설정합니다.

발급기관 URI 가져오기

Delta Sharing 연결 카탈로그에서 OIDC 발급자 URI를 가져옵니다. WIF 프로바이더를 구성하려면 이 URI가 필요합니다.

gcloud alpha biglake delta-sharing catalogs describe CONNECTION_CATALOG_ID \
    --project="PROJECT_ID"

명령어 출력에서 발급기관 URI가 포함된 federatedIdentityIssuer 필드를 찾습니다.

워크로드 아이덴티티 풀 만들기

워크로드 아이덴티티 풀을 만들어 외부 ID를 그룹화합니다.

gcloud iam workload-identity-pools create POOL_ID \
    --location="global" \
    --display-name="POOL_DISPLAY_NAME" \
    --project="PROJECT_ID"

OIDC 제공업체 만들기

풀 내에서 OIDC 공급업체를 만들어 신뢰를 정의하고 토큰 클레임을 매핑합니다.

gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \
    --location="global" \
    --workload-identity-pool="POOL_ID" \
    --issuer-uri="ISSUER_URI" \
    --attribute-mapping="google.subject=assertion.sub.split('://')[1].split('.')[0]" \
    --project="PROJECT_ID"

제휴 주 구성원에게 역할 부여

신뢰할 수 있는 풀의 제휴 ID가 필요한 Google API를 호출하도록 승인합니다. 특정 주제 UUID 또는 전체 풀을 승인할 수 있습니다.

특정 주체를 승인하려면 다음 단계를 따르세요 (권장).

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/biglake.viewer" \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/WIF_SUBJECT"

WIF_SUBJECT를 워크로드에 대해 SAP 측 발급자가 발급한 UUID로 바꿉니다.

풀의 모든 ID를 승인하려면 다음을 실행하세요 (제한이 적으며 테스트 환경에 적합).

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/biglake.viewer" \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*"

SAP BDC에 데이터 게시

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 Apache Iceberg REST 카탈로그를 게시하거나 gcloud CLI를 사용하여 Iceberg 테이블이 포함된 Knowledge Catalog 데이터 제품을 게시할 수 있습니다. Google Cloud 콘솔에서는 데이터 제품 게시가 지원되지 않습니다.

Iceberg REST 카탈로그

게시하기 전에 Iceberg 테이블에 기본 키와 하나 이상의 행이 있는지 확인하세요. SAP BDC에는 쿼리에 둘 다 필요합니다.

콘솔

  1. Google Cloud 콘솔에서 Lakehouse Runtime Catalog 페이지로 이동합니다.

    Lakehouse 런타임 카탈로그로 이동

  2. 탐색 패널에서 프로젝트를 펼치고 게시하는 데 사용할 Delta 카탈로그 (연결 카탈로그)를 선택합니다.

  3. 데이터 제품 게시를 클릭합니다.

  4. 게시할 Iceberg REST 카탈로그를 선택하는 등 필요한 공유 세부정보를 입력합니다.

  5. 게시를 클릭합니다.

gcloud

  1. Apache Iceberg REST 카탈로그 엔드포인트가 있는지 확인하고 세부정보를 가져옵니다.

    gcloud alpha biglake iceberg catalogs describe ICEBERG_CATALOG_ID \
        --project="PROJECT_ID"
  2. Apache Iceberg REST 카탈로그를 SAP BDC에 게시합니다. 연결 카탈로그, Iceberg 카탈로그, 기본 Cloud Storage 버킷은 모두 동일한 리전에 있어야 합니다.

    gcloud alpha biglake data-product-sharing publish \
        --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \
        --share="SAP_SHARE_NAME" \
        --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \
        --iceberg-catalog="projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID" \
        --title="TITLE_TEXT" \
        --short-description="SHORT_DESCRIPTION_TEXT" \
        --description="DETAILED_DESCRIPTION_TEXT" \
        --project="PROJECT_ID"

    게시된 Apache Iceberg REST 카탈로그는 SAP BDC에서 검색할 수 있으며 SAP Datasphere에 원격 테이블로 설치할 수 있습니다.

    다음을 바꿉니다.

    • CONNECTION_CATALOG_ID: SAP BDC에서 BigQuery로 데이터를 공유하기 위한 초기 설정 중에 생성된 등록된 델타 공유 연결 카탈로그입니다. 설정 안내에 언급된 Delta Sharing 카탈로그와 동일합니다. 다시 게시하기 위해 다른 카탈로그를 만들 필요가 없습니다.
    • PROJECT_NUMBER: Google Cloud 프로젝트 번호 sap-federated-identity-provider는 프로젝트 ID가 아닌 프로젝트 번호를 사용해야 합니다.
    • POOL_ID: WIF 풀 ID입니다.
    • PROVIDER_ID: WIF 공급업체 ID입니다.
    • TITLE_TEXTSHORT_DESCRIPTION_TEXT: SAP BDC의 지분에 필요한 표시 값입니다.
    • DETAILED_DESCRIPTION_TEXT: 세부 설명(선택사항)입니다. 간략한 설명과 상세 설명에 동일한 텍스트를 입력하면 SAP에서 거부되므로 동일한 텍스트를 입력하지 마세요. 상세 설명에 정확한 간단한 설명이 하위 문자열로 포함된 경우에도 게시 작업이 거부됩니다. 예를 들어 간단한 설명이 Sales Data인 경우 Sales Data가 포함된 Longer Sales Data details의 자세한 설명은 거부됩니다. 하지만 '긴 판매 정보'에 대한 자세한 설명은 허용됩니다.

Knowledge Catalog 데이터 제품

또는 Knowledge Catalog 데이터 제품을 게시할 수 있습니다. 데이터 제품은 특정 비즈니스 문제를 해결하기 위해 함께 패키징된 데이터 애셋 (예: 테이블 또는 뷰)의 선별된 논리적 그룹입니다. 전체 카탈로그를 게시하는 대신 특정 Apache Iceberg 테이블을 선택하고 데이터 제품으로 그룹화한 후 선별된 컬렉션을 SAP BDC에 게시할 수 있습니다.

  1. 데이터 제품을 만듭니다.

    gcloud alpha dataplex data-products create DATA_PRODUCT_ID \
        --location="LOCATION" \
        --display-name="TITLE_TEXT" \
        --description="SHORT_DESCRIPTION_TEXT" \
        --owner-emails="OWNER_EMAIL" \
        --project="PROJECT_ID"

    --display-name은 SAP BDC의 title에 매핑되고 --descriptionshort_description에 매핑됩니다.

  2. Lakehouse Iceberg 테이블 애셋을 데이터 제품에 연결합니다.

    gcloud alpha dataplex data-products data-assets create DATA_ASSET_ID \
        --data_product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --resource="//biglake.googleapis.com/projects/PROJECT_ID/catalogs/ICEBERG_CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME" \
        --project="PROJECT_ID"

    데이터 제품에서 애셋을 구성할 때 테이블 애셋에는 기본 키와 하나 이상의 행이 있어야 합니다. 단일 데이터 제품의 모든 데이터 애셋은 동일한 Apache Iceberg REST 카탈로그에 속해야 합니다. 데이터 제품은 테이블을 최대 50개까지 가질 수 있으며, 게시하려면 하나 이상의 유효한 데이터 애셋이 포함되어야 합니다. Iceberg 테이블이Google Cloud 콘솔에 바로 표시되지 않을 수 있습니다.

  3. 선택사항: 데이터 제품의 애셋을 확인합니다.

    gcloud alpha dataplex data-products data-assets list \
        --data_product="DATA_PRODUCT_ID" \
        --location="LOCATION" \
        --project="PROJECT_ID"
  4. 데이터 제품을 SAP BDC에 게시합니다. 연결 카탈로그, 데이터 제품, 기본 리소스가 동일한 리전에 있는지 확인합니다.

    gcloud alpha biglake data-product-sharing publish \
        --connection-catalog="projects/PROJECT_ID/catalogs/CONNECTION_CATALOG_ID" \
        --share="SAP_SHARE_NAME" \
        --sap-federated-identity-provider="projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \
        --data-product="projects/PROJECT_ID/locations/LOCATION/dataProducts/DATA_PRODUCT_ID" \
        --project="PROJECT_ID"

    게시된 데이터 제품은 SAP BDC에서 검색할 수 있으며 SAP Datasphere에 원격 테이블로 설치할 수 있습니다. SAP BDC에서 게시된 데이터 제품은 Knowledge Catalog 데이터 제품을 만들 때 설정된 제목과 간단한 설명을 상속합니다.

    다음을 바꿉니다.

    • CONNECTION_CATALOG_ID: SAP BDC에서 BigQuery로 데이터를 공유하기 위한 초기 설정 중에 생성된 등록된 Delta Sharing 연결 카탈로그입니다. 설정 안내에 언급된 Delta Sharing 카탈로그와 동일합니다. 다시 게시하기 위해 다른 카탈로그를 만들 필요는 없습니다.
    • PROJECT_NUMBER: Google Cloud프로젝트 번호 sap-federated-identity-provider는 프로젝트 ID가 아닌 프로젝트 번호를 사용해야 합니다.
    • POOL_ID: WIF 풀 ID입니다.
    • PROVIDER_ID: WIF 공급업체 ID입니다.
    • DATA_PRODUCT_ID: Knowledge Catalog Data Product의 ID입니다.
    • LOCATION: Knowledge Catalog 데이터 제품의 위치입니다.
    • SAP_SHARE_NAME: SAP BDC의 공유 이름입니다.

SAP BDC에서 Google Cloud 데이터에 액세스

SAP BDC에 데이터를 게시한 후에는 SAP 환경에서 Google Cloud 데이터에 네이티브로 액세스할 수 있습니다. SAP에서 데이터 제품을 원격 테이블로 설치하고 사용하는 방법에 대한 자세한 내용은 SAP 문서의 데이터 제품 설치를 참고하세요.

다음 단계