Lakehouse 런타임 카탈로그를 사용하여 SAP Business Data Cloud 데이터 제품을 Cortex Framework와 통합하고 동기화합니다.
이 문서에서는 Lakehouse 런타임 카탈로그 통합을 사용하여 Cortex Framework를 SAP Business 데이터 클라우드 에 연결하는 방법을 설명합니다.
Google Cloud SAP Delta Sharing을 BigQuery Lakehouse 런타임 카탈로그 페더레이션 연결과 결합하면 Cortex Framework는 SAP BDC 내에서 관리되는 데이터 제품을 BigQuery에서 제로 카피 오버헤드로 직접 쿼리하고 다운스트림 커스텀 분석 데이터 제품에서 참조할 수 있습니다. 이 통합의 주요 구성요소는 다음과 같습니다.
- 페더레이션 쿼리: SAP BDC에 게시된 데이터 제품은 보안 Delta Sharing 엔드포인트를 사용하여 노출됩니다. BigQuery는 Google Cloud Lakehouse 런타임 카탈로그 연결을 사용하여 이러한 엔드포인트에 쿼리를 페더레이션합니다.
- 카탈로그 등록: Cortex Framework에서
config/config.yaml의data.modules.catalogs아래에 있는delta_share유형의 모듈을 사용하여 SAP BDC 카탈로그를 등록합니다. - Google Cloud Cortex Framework 데이터 제품 결합: 다운스트림 커스텀 데이터 제품은 입력 종속 항목을 특정 Delta Sharing 공유 및 테이블 ID에 결합하여 BDC 카탈로그 테이블을 참조합니다
{catalog_id}.{share_id}.{table_name}.
SAP BDC의 기본 요건
Cortex Framework에서 연결을 구성하기 전에 Google Cloud SAP에서 다음 단계를 완료해야 합니다.
- Lakehouse 런타임 카탈로그 Google Cloud 구성: SAP Business Data Cloud용 Delta Sharing을 활용하여 Google Cloud Google Cloud 프로젝트에서 BigQuery Lakehouse 런타임 카탈로그 연결을 설정합니다.
- 공유 ID 검색: 연결된 SAP BDC 테넌트에서 게시한 Delta Sharing
shareId값 (예:customer_v1_he2_100_p8123또는salesorder_v1_he2_100_p8124)을 찾아서 나열합니다.
구성 예시
다음 구성 예시에서는 SAP BDC 카탈로그를 등록하고 공유를 사용하여 커스텀 판매 실적 데이터 제품을 계산합니다.
buildEnvironment:
buildProjectId: YOUR_BUILD_PROJECT_ID
data:
bigQueryLocation: europe-west3
namespaces:
- name: cortex
path: ../src/data_modules/cortex
- name: cortex_samples
path: ../src/data_modules/cortex_samples
datasets:
- id: sap_bdc_data_products
projectId: YOUR_TARGET_PROJECT_ID
datasetId: sap_bdc_data_products
modules:
# 1. Register the SAP BDC Lakehouse runtime catalog connection (using lakehouse_delta_share type)
catalogs:
- id: sap_bdc_catalog
type: lakehouse_delta_share
enabled: true
bindsNamespaces: [sap_bdc]
connectionSettings:
catalogId: sap_bdc_catalog
projectId: YOUR_CATALOG_PROJECT_ID
location: europe-west3
shares:
- shareId: customer_v1_he2_100_p8123
- shareId: salesorder_v1_he2_100_p8124
# 2. Reference the catalog shares in downstream products
products:
- moduleId: sap_bdc_sales_performance
modulePath: cortex_samples.sap_bdc.products.sales_performance
dependencyBindings:
# Bind logical dependencies directly to the catalog shares and tables
sapBdcCustomer: sap_bdc_catalog.customer_v1_he2_100_p8123.customer
sapBdcSalesOrder: sap_bdc_catalog.salesorder_v1_he2_100_p8124.salesorder
dataTargetId: sap_bdc_data_products
매개변수 참조는 데이터 카탈로그 모듈 유형의 배포 구성 섹션을 참조하세요.
커스텀 데이터 제품이 Lakehouse 런타임 카탈로그 테이블에 의존하는 경우 카탈로그 경로 구문을 사용하여 config/config.yaml에서 입력 종속 항목을 구성합니다.
dependencyBindings:
{logical_input_name}: {catalog_id}.{share_id}.{table_name}
각 항목의 의미는 다음과 같습니다.
{catalog_id}는 카탈로그id속성과 일치합니다.data.modules.catalogs아래{share_id}는 선언된 카탈로그shareId문자열 중 하나와 일치합니다.{table_name}은 해당 공유 내에 노출된 실제 테이블 이름과 일치합니다.
다운스트림 Dataform 종속 항목 결합
컴파일 (cortex-build) 중에 Cortex Framework는 카탈로그 메타데이터를 읽고 종속 항목 결합을 정규화된 BigQuery 페더레이션 테이블 이름으로 자동 변환합니다.
커스텀 데이터 제품 정의 (예: .js 또는 .sqlx 파일)에서 준수된 SAP BDC 소스를 참조합니다.
// Example JS definition referencing SAP BDC inputs
const moduleConfig = config.product[moduleContext.moduleId];
const customerSource = moduleConfig.sources.sapBdcCustomer;
const salesOrderSource = moduleConfig.sources.sapBdcSalesOrder;
publish("custom_sales_performance", {
type: "table",
}).query(
(ctx) => `
SELECT
cust.customer_id,
orders.sales_order_id,
orders.amount
FROM ${ctx.ref(customerSource.datasetId, customerSource.tableName)} AS cust
JOIN ${ctx.ref(salesOrderSource.datasetId, salesOrderSource.tableName)} AS orders
ON cust.customer_id = orders.customer_id
`
);