배포 구성
이 문서에서는 다음 영역에서 Cortex Framework의 배포 구성 옵션을 설명합니다.
- 배포 구성 (
config/config.yaml): 전역 변수, 빌드 환경, 모듈 매핑 (데이터 파운데이션 및 데이터 제품 타겟)을 정의합니다. - 표 구성 (
table_settings.yaml): BigQuery에서 기본 표가 컴파일되고 준수되는 방식을 설명하는 모듈별 성능 및 스키마 사양입니다.
이 가이드에서는 일반적인 배포 사용 사례 및 시나리오에 대한 단계별 안내가 포함된 방법 가이드도 제공합니다.
구성 파일: config/config.yaml
config/config.yaml 파일은 일반적으로 config/config.yaml.example 템플릿에서 초기화되며 Cortex Framework 배포의 기본 구성으로 사용됩니다. 타겟 Google Cloud 실행 프로젝트, 소스 및 대상 BigQuery 데이터 세트, 저장소 및 워크스페이스 이름과 같은 Dataform 사양을 비롯한 중요한 매개변수를 정의합니다.
다음 섹션에서는 config/config.yaml 구조를 자세히 설명합니다.
빌드 환경
빌드 환경 프로젝트는 BigQuery 작업 (DD03L 읽기)과 같은 빌드 작업에 대해 요금이 청구되는 프로젝트입니다.
buildEnvironment:
buildProjectId: YOUR_BUILD_PROJECT_ID
다음 표에서는 빌드 환경 매개변수를 설명합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
buildEnvironment.buildProjectId |
빌드 프로젝트 ID | YOUR_BUILD_PROJECT_ID |
Google Cloud 빌드 작업이 실행되는 프로젝트 ID입니다. |
데이터 섹션 개요
구성 파일의 data: 섹션은 데이터 소스, 타겟, 데이터 파운데이션 및 데이터 제품의 특정 모듈을 정의합니다.
일반적인 구조는 다음과 같습니다.
data:
# Geographic location for BigQuery datasets (for example: US, EU, us-central1)
# For full list see: https://docs.cloud.google.com/cortex/docs/supported-locations
bigQueryLocation: US
# List of namespaces for data foundation and product modules.
namespaces:
- name: cortex
path: cortex
# List of source datasets.
sources:
- ...
# List of target datasets.
targets:
- ...
# Configuration for data foundation and product modules.
modules:
# List of foundation modules.
foundation:
- ...
# List of data product modules.
product:
- ...
데이터: BigQuery 위치
BigQuery 소스 및 대상 데이터 세트의 위치를 정의합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
data.bigQueryLocation |
BigQuery 위치 | US |
BigQuery 데이터 세트 위치 (예: US, us-central1, europe-west1)
|
데이터: Cortex 네임스페이스
Cortex Framework 네임스페이스를 정의합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
data.namespaces.name |
네임스페이스 이름 | - | Cortex Framework 네임스페이스 이름입니다. 예를 들면 cortex입니다. |
data.namespaces.path |
네임스페이스 경로 | - | src 및 config 폴더 내에서 사용되는 하위 디렉터리의 Cortex Framework 네임스페이스 경로입니다. 예를 들면 cortex입니다. |
데이터: BigQuery 소스 및 대상 데이터 세트
소스 목록은 소스 시스템의 원시 데이터가 복제되거나 스트리밍된 BigQuery 데이터 세트를 정의합니다.
타겟은 Dataform에서 처리한 데이터 세트가 저장될 BigQuery 데이터 세트 목록을 정의합니다.
소스와 타겟은 각각 고유 ID를 사용하여 모듈에서 참조됩니다.
# Data source and target mapping
sources:
- id: sap_raw
projectId: YOUR_SOURCE_PROJECT_ID
datasetId: cortex_sap_raw
targets:
- id: sap_foundation
projectId: YOUR_TARGET_PROJECT_ID
datasetId: cortex7_sap_data_foundation
다음 표에서는 데이터 소스 및 타겟 매핑 매개변수를 설명합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
data.sources.id |
Source ID(소스 ID) | - |
데이터를 가져올 소스 데이터 세트의 'id'를 정의합니다. 예를 들면 sap_raw입니다. |
data.sources.projectId |
소스 프로젝트 ID | YOUR_SOURCE_PROJECT_ID |
소스 데이터가 있는 Google Cloud 프로젝트 ID를 참조합니다. |
data.sources.datasetId |
소스 BigQuery 데이터 세트 ID | - |
소스 데이터가 있는 BigQuery 데이터 세트 ID를 참조합니다. 예를 들면 cortex_sap_raw입니다. |
data.targets.id |
대상 ID | - | 대상 데이터 세트의 'id'를 정의합니다. 예를 들면 sap_foundation입니다. |
data.targets.projectId |
대상 프로젝트 ID | YOUR_TARGET_PROJECT_ID |
대상 데이터의 Google Cloud 프로젝트 ID를 참조합니다. |
data.targets.datasetId |
타겟 BigQuery 데이터 세트 ID | - |
타겟 데이터의 BigQuery 데이터 세트 ID를 참조합니다. 예를 들면 cortex7_sap_data_foundation입니다. |
데이터: 모듈
모듈은 Dataform 데이터 파이프라인의 구조와 구성요소를 정의합니다.
데이터: 모듈: 파운데이션
이 섹션에서는 원시 레이어 (CDC 스트림)의 데이터를 소스 데이터의 표준화된 최신 레코드 표현으로 처리하는 데이터 파운데이션 레이어 모듈을 구성합니다. 소스에서 최신 레코드에 대한 뷰를 직접 제공하거나 소스 시스템 커넥터에서 이러한 변환을 실행하는 경우 모듈을 외부 데이터 기반 소스로 구성할 수 있습니다.
modules:
# List of foundation modules.
foundation:
# Unique identifier for the module instance.
- moduleId: erp
# Type of the module (namespaced, for example, cortex.sap).
type: cortex.sap
# Reference to the source dataset ID.
dataSourceId: sap_raw
# Reference to the target dataset ID.
dataTargetId: sap_foundation
# Module-specific configuration settings.
moduleSettings:
# SAP version (for example, ecc, s4).
sapVersion: ecc
# SAP client number.
mandt: "100"
# Whether the module is enabled.
# enabled: true
# Whether the foundation is external (does not create target dataset).
# external: false
# Path to the table settings configuration file.
# tableSettings: "custom_table_settings.yaml"
다음 표에서는 modules.foundation 구성의 데이터 기반 모듈 매개변수를 설명합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
moduleId |
모듈 식별자 | erp |
특정 데이터 파운데이션 변환 모듈 인스턴스의 고유 식별자입니다. |
type |
모듈 논리 유형 | cortex.sap |
적용된 비즈니스 로직 또는 템플릿을 정의합니다 (예: cortex.sap). |
dataSourceId |
소스 링크 | sap_raw |
data.sources 목록의 'id'를 참조하여 데이터를 가져옵니다. |
dataTargetId |
타겟 링크 | sap_foundation |
데이터를 푸시할 대상 목록의 'id'를 참조합니다. |
moduleSettings.sapVersion |
SAP 시스템 버전 | ecc |
SAP 데이터 소스에만 적용됩니다. ecc (ECC) 또는 s4 (S/4HANA) 시스템의 소스별 로직을 결정합니다. |
moduleSettings.mandt |
SAP 클라이언트 (Mandant) | 100 |
SAP 데이터 소스에만 적용됩니다. 데이터 행을 필터링하는 데 사용되는 3자리 SAP 클라이언트 식별자입니다. |
enabled |
모듈 사용 설정 | true |
모듈이 사용 설정되었는지 여부를 지정합니다. |
external |
외부 재단 | false |
기반이 외부인지 (타겟 데이터 세트를 만들지 않음) 여부를 지정합니다. |
tableSettings |
테이블 설정 | data_modules/cortex/data_foundation/sap/mytable_settings.yaml |
이 구성 파일을 기준으로 하는 맞춤 표 설정 구성 파일의 경로입니다. |
데이터: 모듈: 제품
데이터 제품 모듈은 특정 비즈니스 사용 사례를 충족하는 인사이트로 원시 데이터를 변환하는 데 필요한 집계, 계산, 조인을 정의합니다.
데이터 제품의 구성을 통해 고유 ID를 설정하고, 종속 항목을 정의하고, 결과가 저장될 데이터 기반 모듈 및 타겟 데이터 세트를 참조할 수 있습니다.
지정된 데이터 제품의 세부 구성은 tableSettings 키로 참조되는 파일 내에 정의됩니다.
modules:
# List of data product modules.
product:
# Unique identifier for the data product instance.
- moduleId: sap_purchasing_organizational_structure
# Type of the data product (namespaced).
type: cortex.purchasing_organizational_structure
# Map of module dependencies.
dependsOn:
sapModule: erp
# Reference to the target dataset ID.
dataTargetId: product_target
# Whether the module is enabled.
# enabled: true
# Path to the table settings configuration file.
# tableSettings: "custom_table_settings.yaml"
다음 표에서는 modules.product 구성의 데이터 제품 모듈 매개변수를 설명합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
moduleId |
모듈 식별자 | - | 특정 변환 모듈 인스턴스의 고유 식별자입니다. |
type |
모듈 논리 유형 | - | src/data_modules/{namespace}/data_product 폴더에 정의된 적용된 비즈니스 로직 또는 템플릿을 정의합니다. |
dataTargetId |
타겟 링크 | product_target |
데이터를 푸시할 대상 목록의 'id'를 참조합니다. |
dependsOn |
업스트림 종속 항목 | sapModule: erp |
제품 모듈을 빌드하기 전에 있어야 하는 기본 모듈을 지정합니다. |
enabled |
모듈 사용 설정 | true |
모듈이 사용 설정되었는지 여부를 지정합니다. |
tableSettings |
테이블 설정 | src/data_modules/{namespace}/data_product/{product_name}/table_settings.default.yaml |
이 구성 파일을 기준으로 하는 맞춤 표 설정 구성 파일의 경로입니다. |
배포 환경
Cortex Framework는 Dataform을 사용하여 BigQuery 내에서 SQL 변환을 오케스트레이션합니다. deployment: 블록은 저장소 프로젝트, 위치, 저장소 이름, Dataform 작업공간 이름을 비롯하여 데이터 파이프라인 실행을 담당하는 Dataform 구성을 정의합니다.
deployment:
targets:
- type: dataform
enabled: true
targetSettings:
repositoryProjectId: YOUR_REPO_PROJECT_ID
repositoryRegion: us-central1
repositoryName: cortex-repository
workspaceName: dev
# serviceAccount: "example@example.com"
다음 표에서는 배포 타겟 위치 매개변수(deployment.targets:)를 설명합니다.
| 매개변수 | 의미 | 기본값 | 설명 |
|---|---|---|---|
type |
배포 유형 | dataform |
배포 대상의 유형입니다. |
enabled |
사용 설정/ 사용 중지됨 | true |
지정된 배포 타겟이 사용 설정되었는지 또는 사용 중지되었는지 지정합니다. |
targetSettings.repositoryProjectId |
저장소 프로젝트 ID | YOUR_REPO_PROJECT_ID |
Dataform 저장소가 관리되는 Google Cloud 프로젝트 ID입니다. |
targetSettings.repositoryRegion |
저장소 리전 | us-central1 |
Dataform 저장소의 Google Cloud 리전입니다 (예: us-central1 또는 europe-west1). |
targetSettings.repositoryName |
저장소 이름 | cortex-repository |
Dataform 저장소의 구체적인 이름입니다. |
targetSettings.workspaceName |
작업공간 이름 | dev |
배포 주기에 사용되는 특정 Dataform 작업공간입니다. |
targetSettings.serviceAccount |
서비스 계정 이메일 | - |
Dataform 저장소 실행을 위한 기본 서비스 계정 이메일입니다. |
구성 파일: table_settings.yaml
이 가이드에서는 table_settings.yaml 파일을 사용하여 Google Cloud Cortex Framework에서 데이터 기반 및 데이터 제품 테이블을 구성하는 방법을 설명합니다.
데이터 모듈별 table_settings.yaml 파일은 원시 소스 테이블이 준수되는 방식과 분석 데이터 모델이 BigQuery 내에서 구체화되는 방식을 제어합니다. 이 파일을 사용하여 태그, 구체화 전략, 파티셔닝 또는 클러스터링과 같은 고급 BigQuery 성능 기능을 구성할 수 있습니다.
동적 종속 항목 해결
기본적으로 Cortex Framework는 사용 설정된 데이터 제품의 종속 항목으로 필요한 기본 테이블만 배포하고 컴파일하여 배포 공간과 실행 시간을 최적화합니다. table_settings.yaml에 구성된 테이블에 종속된 활성 다운스트림 데이터 제품이 없으면 배포에서 제외됩니다.
이 최적화를 재정의하고 파운데이션 테이블의 배포를 강제하려면 deployAlways 속성을 true로 설정하면 됩니다 (데이터 파운데이션 스타일 매개변수 참조 참고).
Google Cloud Cortex Framework에서 각 모듈 (기반 또는 제품)에는 tableSettings 속성을 사용하여 배포 구성 파일: config/config.yaml에 특정 테이블 설정 파일을 할당할 수 있습니다.
구성 경로
- 맞춤 설정 (권장): 표 동작을 맞춤설정하려면 기본 파일을 구성 디렉터리에 복사하고 수정하고
config/config.yaml에서 경로를 참조하세요. 권장되는 경로는 다음과 같습니다.- 기본 모듈:
config/namespace_path/data_foundation/foundation_module_id/table_settings.yaml(예:config/cortex/data_foundation/sap/table_settings.yaml) - 제품 모듈:
config/namespace_path/data_product/product_module_id/table_settings.yaml(예:config/cortex/data_product/accounting_documents/table_settings.yaml)
- 기본 모듈:
- 기본 대체:
tableSettings이 생략되면 프레임워크가 자동으로 다음으로 대체됩니다.- 기초 모듈:
definitions/data_foundation/namespace_path/table_settings.default.yaml - 제품 모듈:
definitions/data_product/product_module_id/table_settings.default.yaml
- 기초 모듈:
구성 스타일
모듈의 카테고리에 따라 table_settings.yaml에는 두 가지 스키마 스타일이 있습니다.
- 데이터 파운데이션 스타일: 소스-타겟 스키마 관계, CDC (변경 데이터 캡처) 처리, BigQuery 레이아웃을 정의하는 목록 기반 매핑입니다.
- 데이터 제품 스타일: 분석 뷰 또는 테이블이 구체화 (예: 뷰, 테이블 또는 증분 테이블)되고 최적화되는 방식을 정의하는 맵 기반 매핑 (사전)입니다.
두 스타일 모두 소스 시스템 버전별로 구성을 분리하는 세 개의 루트 수준 섹션을 지원합니다 (주로 SAP Data Foundation 및 SAP 종속 제품에 사용됨).
ecc: SAP ECC 소스 시스템을 배포할 때만 적용되는 설정입니다.s4: SAP S/4HANA 소스 시스템을 배포할 때만 적용되는 설정입니다.common: SAP 버전에 관계없이 적용되는 설정입니다 (준수 또는 범용 설정에 사용됨).
데이터 기반 스타일
데이터 파운데이션 모듈에서 table_settings.yaml 파일은 ecc, s4, common 키 아래의 테이블 항목 목록으로 구성됩니다. 각 항목은 원시 소스 테이블을 준수 대상 테이블에 매핑하고 BigQuery 설정을 구성합니다.
YAML 구문 예시
common:
- source:
tableName: bkpf
isCdc: true
target:
tableName: bkpf # Optional: defaults to source tableName if omitted
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
deployAlways: false
파라미터 참조
| 매개변수 | 유형 | 필수 | 기본값 / 예 | 설명 |
|---|---|---|---|---|
ecc | s4 | common |
string |
아니요 | [] |
소스 시스템 버전 또는 언어입니다. |
[].deployAlways |
boolean |
아니요 | false |
true인 경우 최적화 규칙에서 건너뛸 수 있더라도 테이블이 항상 배포되고 빌드됩니다. 동적 종속 항목 해결도 참고하세요. |
소스 설정
원시 인바운드 테이블 특성을 정의합니다.
| 매개변수 | 유형 | 필수 | 기본값 / 예 | 설명 |
|---|---|---|---|---|
tableName |
string |
예 | bkpf |
BigQuery의 원시 소스 테이블 이름입니다 (대소문자 구분 안 함). |
isCdc |
boolean |
아니요 | true |
소스 테이블에 변경 데이터 캡처 (CDC) 로그가 포함되어 있는지 나타냅니다.
• • |
타겟 설정
타겟 데이터 세트에서 출력 준수 테이블 레이아웃을 정의합니다.
| 매개변수 | 유형 | 필수 | 기본값 / 예 | 설명 |
|---|---|---|---|---|
tableName |
string |
아니요 | *(소스와 동일)* | 만들려는 대상 준수 테이블의 이름입니다. 생략하면 프레임워크는 기본적으로 tableName 소스를 사용합니다. |
tags |
array[string] |
아니요 | [sap, finance] |
Dataform에서 규정을 준수하는 작업에 연결된 메타데이터 태그 목록입니다. 이는 임의의 문자열이며 다른 구성에서 사전 등록하거나 정의할 필요가 없습니다. 파이프라인 실행을 필터링하는 데 즉시 사용할 수 있습니다 (예: dataform run --tags ... 사용). |
clusterDetails |
map |
아니요 | — | 선택사항입니다. BigQuery 클러스터링 구성입니다. 클러스터링 세부정보를 참고하세요. |
partitionDetails |
map |
아니요 | — | 선택사항입니다. BigQuery 파티셔닝 구성입니다. 파티셔닝 세부정보를 참고하세요. |
데이터 제품 스타일
데이터 제품 모듈에서 table_settings.yaml 파일은 ecc, s4, common 키 아래에 사전 (맵)으로 구조화됩니다. 사전의 키는 분석 테이블 또는 뷰 이름을 나타내고 값은 구체화 및 성능 설정을 정의합니다.
YAML 구문 예시
s4:
customers:
materializationType: incremental
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
파라미터 참조
| 매개변수 | 유형 | 필수 | 기본값 / 예 | 설명 |
|---|---|---|---|---|
ecc | s4 | common |
map |
아니요 | {} |
타겟 분석 애셋 (표 또는 뷰)과 해당 구성 간의 맵입니다. |
[table_name].materializationType |
string |
아니요 | incremental |
BigQuery에서 분석 애셋이 빌드되는 방식입니다.
허용되는 값:
|
[table_name].tags |
array[string] |
아니요 | [sap, dataproduct] |
Dataform의 분석 애셋에 연결된 메타데이터 태그입니다. 이는 임의의 문자열이며 사전 등록할 필요가 없습니다. 선택적 파이프라인 실행에 즉시 사용할 수 있습니다. |
[table_name].clusterDetails |
map |
아니요 | — | 선택사항입니다. BigQuery 클러스터링 구성입니다. 클러스터링 세부정보를 참고하세요. |
[table_name].partitionDetails |
map |
아니요 | — | 선택사항입니다. BigQuery 파티셔닝 구성입니다. 파티셔닝 세부정보를 참고하세요. |
고급 BigQuery 구성
두 스타일 모두 클러스터링 및 파티셔닝을 통해 BigQuery 스토리지 및 쿼리 성능을 최적화하는 동일한 구조를 공유합니다.
클러스터링 세부정보
클러스터링은 특정 열의 값을 기준으로 데이터를 공동 배치합니다. BigQuery는 이러한 열을 사용하여 각 스토리지 블록 내의 데이터를 정렬하므로 이러한 열을 기준으로 필터링 (WHERE)하거나 조인 (JOIN)하는 쿼리의 속도가 크게 빨라집니다.
clusterDetails:
columns: [bukrs, gjahr]
파라미터 참조
| 매개변수 | 유형 | 필수 | 예 | 설명 |
|---|---|---|---|---|
columns |
array[string] |
예 | [bukrs, gjahr] |
테이블을 클러스터링할 최대 4개의 열 이름이 포함된 정렬된 목록입니다.
제약 조건: 열은 영숫자여야 하며 밑줄만 포함해야 합니다. 목록의 열 순서에 따라 정렬 계층 구조가 결정됩니다. |
파티셔닝 세부정보
파티셔닝은 날짜, 타임스탬프 또는 정수 열의 값을 기준으로 큰 테이블을 더 작은 물리적 세그먼트로 나눕니다. 이렇게 하면 쿼리에서 특정 범위의 일, 월 또는 ID만 요청할 때 BigQuery가 전체 테이블을 스캔하지 않습니다.
partitionDetails:
column: budat
partitionType: time
timeGrain: day
파라미터 참조
| 매개변수 | 유형 | 필수 | 예 | 설명 |
|---|---|---|---|---|
column |
string |
예 | budat |
테이블을 파티셔닝하는 데 사용되는 열 이름입니다. 영숫자 및 밑줄만 사용해야 합니다. 열 유형은 partitionType와 일치해야 합니다. |
partitionType |
string |
예 | time |
분할 전략입니다.
허용되는 값:
|
timeGrain |
string |
아니요 | day |
partitionType이 time 또는 DATE인 경우 필수입니다. 시간 파티션의 단위를 정의합니다.
허용되는 값: |
rangeStart |
integer |
아니요 | 1 |
partitionType이 integer인 경우 필수입니다. 첫 번째 파티션의 시작 값 (해당 값 포함)입니다. |
rangeEnd |
integer |
아니요 | 1000 |
partitionType이 integer인 경우 필수입니다. 마지막 파티션의 종료 값 (해당 값 제외) |
rangeInterval |
integer |
아니요 | 10 |
partitionType이 integer인 경우 필수입니다. 각 파티션 간격의 너비입니다. |
예시
다음 예에서는 데이터 파운데이션 및 데이터 제품 모듈의 구성 템플릿을 보여주며, 대상 테이블을 맞춤설정하고, BigQuery에서 스토리지 레이아웃을 최적화하고, 구체화 유형을 구성하는 방법을 설명합니다.
1. 맞춤 데이터 기반 테이블 설정 예시
이 예시에서는 클러스터링되고 파티셔닝된 트랜잭션 테이블 (예: bseg 및 ekbe)을 표준 데이터 테이블과 함께 사용하여 기본 레이어를 구성하는 방법을 보여줍니다.
# ==============================================================================
# S/4HANA-Specific Tables
# ==============================================================================
s4:
# ACDOCA is a massive table in S/4HANA; clustering is vital
- source:
tableName: acdoca
target:
tags: [sap, s4, finance, transactional, hourly]
clusterDetails:
columns: [rclnt, rbukrs, gjahr]
# ==============================================================================
# ECC-Specific Tables
# ==============================================================================
ecc:
- source:
tableName: faglflexa
target:
tags: [sap, ecc, finance, transactional, hourly]
# ==============================================================================
# Common Tables (ECC & S/4HANA)
# ==============================================================================
common:
# Financial document header (partitioned by posting date)
- source:
tableName: bkpf
isCdc: true
target:
tags: [sap, common, finance, hourly]
clusterDetails:
columns: [bukrs, gjahr]
partitionDetails:
column: budat
partitionType: time
timeGrain: day
# Purchasing document items (partitioned by creation date)
- source:
tableName: ekpo
target:
tags: [sap, common, logistics, purchasing, hourly]
clusterDetails:
columns: [mandt, ebeln]
partitionDetails:
column: aedat
partitionType: time
timeGrain: month
# Standard master data table (no partitioning/clustering needed)
- source:
tableName: lfa1
target:
tags: [sap, common, masterdata, vendor, daily]
2. 맞춤 데이터 제품 테이블 설정 예시
이 예시에서는 다운스트림 분석 데이터 제품의 구체화 유형을 구성하는 방법을 보여줍니다. 빌드 성능을 최적화하고 비용을 절약하기 위해 트랜잭션 sales_documents을 증분으로 설정하는 반면 customers과 같은 비트랜잭션 데이터 테이블은 표준 테이블로 빌드됩니다.
# settings applied for both ECC and S/4HANA pipelines
common:
# Transactional data product - incremental build
sales_documents:
materializationType: incremental
tags: [sap, dataproduct, sales, transactional]
clusterDetails:
columns: [vkorg, vbeln]
partitionDetails:
column: audat
partitionType: time
timeGrain: day
# Master data product - full table rebuild
customers:
materializationType: table
tags: [sap, dataproduct, masterdata]
clusterDetails:
columns: [mandt, ktokd]
# Aggregated reporting view - virtual view
sales_performance_summary:
materializationType: view
tags: [sap, dataproduct, sales, reporting]
안내 가이드
이 섹션에서는 일반적인 구성 작업과 맞춤 배포 시나리오에 관한 단계별 가이드를 제공합니다.
데이터 기반 모듈에서 테이블 범위 맞춤설정
새 모듈을 만들거나 별도의 파이프라인 인스턴스를 실행하지 않고 기존 데이터 파운데이션 모듈 내에서 표를 추가하거나 삭제하려면 다음 단계를 따르세요.
- 기본
table_settings.default.yaml구성을 작업공간 구성 디렉터리 (예:config/cortex/data_foundation/sap/table_settings.yaml)에 복사합니다. - 새 파일에서 필요에 따라
ecc,s4또는common키 아래에 맞춤 테이블을 추가하거나 사용하지 않는 표준 테이블을 삭제합니다.
common:
- source:
tableName: custom_table_name
target:
tags: [custom_tag]
- 모듈의
tableSettings속성 아래에 있는 맞춤 테이블 설정의 경로를 참조하도록config/config.yaml를 업데이트합니다.
data:
modules:
foundation:
- moduleId: erp
type: cortex.sap
# Link to the custom table settings file:
tableSettings: config/cortex/data_foundation/sap/table_settings.yaml
데이터 기반 모듈의 여러 인스턴스 구성
동일한 모듈 유형의 별도 파이프라인 인스턴스를 두 개 이상 배포하려면 (예: 테이블을 세분화하거나, 환경을 격리하거나, 서로 다른 타겟 데이터 세트를 타겟팅하기 위해 여러 SAP 인스턴스를 지원하는 경우) 다음 단계를 따르세요.
시작하기 전에:
* 소스 원시 데이터 세트에 소스 테이블이 있는지 확인합니다.
* 타겟 데이터 세트 스키마가 구성되어 있는지 확인합니다.
* SAP 데이터 기반 모듈을 사용할 때는 메타데이터 테이블 DD03L에 수집하려는 맞춤 테이블의 열과 설명자 정보가 포함되어 있는지 확인합니다. 자세한 내용은 SAP ERP 요구사항을 참고하세요.
안내:
config/config.yaml파일에서data.targets아래에 타겟 구성을 추가하여 각 파이프라인 인스턴스의 타겟 데이터 세트를 정의합니다.
data:
targets:
- id: data_foundation_core
projectId: target_project_id
datasetId: data_foundation_sap_core
- id: data_foundation_custom
projectId: target_project_id
datasetId: data_foundation_sap_custom
data.modules.foundation목록 아래에 모듈의 여러 인스턴스를 정의합니다. 각 인스턴스에 고유한moduleId, 자체 타겟 데이터 세트 ID, 선택적으로tableSettings구성을 부여합니다.
data:
modules:
foundation:
# Core SAP ERP foundation module instance
- moduleId: erp_core
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_core
tableSettings: "cortex-framework-core/src/data_modules/cortex/data_foundation/sap/table_settings.default.yaml"
# Custom tables pipeline instance
- moduleId: erp_custom
type: cortex.sap
dataSourceId: sap_raw
dataTargetId: data_foundation_custom
tableSettings: "config/cortex/data_foundation/sap/table_settings_custom.yaml"
- 맞춤 범위를 지정하는
config/cortex/data_foundation/sap/table_settings_custom.yaml파일을 만듭니다. 예:
common:
- source:
tableName: custom_sap_table_name
target:
tags: [sap, s4, hourly]
clusterDetails:
columns: [carrid, connid]
partitionDetails:
column: fldate
partitionType: time
timeGrain: day
- 배포 스크립트 (
uv run cortex-build-and-deploy)를 실행하여 변경사항을 적용한 다음 배포 후 단계에 설명된 대로 Dataform 작업을 실행합니다.