데이터 파이프라인을 위한 DCM Projects

DCM Projects 는 데이터 파이프라인 관리에 적합한 기능을 포함한 전체 수명 주기 개발자 환경을 제공합니다.

파이프라인별 명령이 모든 오브젝트 유형에 적용되는 것은 아닙니다. 다음 파이프라인 사용 사례에 대한 핵심 명령을 확장합니다.

동적 테이블에 대한 REFRESH 명령

파이프라인 정의 변경 사항을 배포한 후 데이터 품질 기대치를 테스트하기 전에 파이프라인 프로젝트 내부의 동적 테이블을 새로 고쳐 새 변환 논리가 처음부터 끝까지 적용되도록 할 수 있습니다.

DCM project 에서 관리하는 모든 동적 테이블 및 해당 테이블에 필요한 업스트림 동적 테이블을 하나의 명령으로 새로 고칠 수 있습니다. 이 명령은 정의 파일과 관계없이 참조된 프로젝트에서 배포 및 관리하는 동적 테이블에만 적용됩니다. 작업과 같은 다른 오브젝트 유형은 영향을 받지 않습니다.

REFRESH 및 TEST를 결합하는 사용 예제의 경우 데이터 품질 기대치를 위한 TEST 명령 섹션을 참조하세요.

명령은 모든 동적 테이블 새로 고침이 완료될 때까지 실행되며 각 동적 테이블에 대한 행 변경 사항 또는 오류에 대한 요약을 반환합니다.

REFRESH 명령을 실행합니다.

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_STG
  REFRESH ALL;

JSON 출력에는 다음 형식의 동적 테이블 새로 고침 작업 결과가 포함됩니다.

속성

설명

dts_refresh_result

동적 테이블 새로 고침 작업의 결과를 포함합니다.

refreshed_tables[]

새로 고친 각 동적 테이블에 대한 항목이 하나씩 포함된 배열입니다.

table_name

새로 고친 동적 테이블의 정규화된 이름입니다.

statistics

테이블에 대한 새로 고침 통계입니다.

inserted_rows

새로 고침 중에 삽입된 행 수입니다.

deleted_rows

새로 고침 중에 삭제된 행 수입니다.

data_timestamp

새로 고침 후 데이터의 특정 시점 최신성을 나타내는 ISO 8601 타임스탬프입니다.

동적 테이블 새로 고침에 대한 JSON 출력의 예제입니다.

{
  "dts_refresh_result": {
    "refreshed_tables": [
      {
        "table_name": "db.schema.my_dynamic_table",
        "statistics": {
          "inserted_rows": 150,
          "deleted_rows": 30
        },
        "data_timestamp": "2026-03-16T12:00:00.000Z"
      }
    ]
  }
}

데이터 품질 기대치를 위한 TEST 명령

데이터 변환의 모든 스테이지에서 데이터 품질 기대치를 품질 게이트로 설정할 수 있습니다.

  • 원시 입력이 기대치를 충족하고 변환 중에 오류가 발생하지 않도록 브론즈 레이어 랜딩 테이블의 원시 데이터에 기대치를 첨부합니다.

  • 다양한 변환 스테이지에 검사점을 포함하여 데이터 문제를 더 쉽게 디버깅할 수 있도록 실버 레이어에 품질 게이트로 기대치를 첨부합니다.

  • 데이터 제품의 출력 품질을 보장할 수 있도록 골드 레이어에 기대치를 첨부합니다.

  • 주요 변경 사항을 배포하기 전에 해당 기대치를 검증할 수 있도록 골드 레이어에 데이터 제품의 다운스트림 컨슈머로부터 얻은 기대치를 첨부합니다.

DCM 프로젝트에서 기대치를 첨부하는 방법은 데이터 메트릭 함수 섹션을 참조하세요.

하나의 명령으로 DCM project 에서 관리하는 테이블, 동적 테이블 또는 뷰에 첨부된 모든 데이터 품질 기대치를 테스트할 수 있습니다.

기대치 없이 첨부된 데이터 메트릭 함수는 확인되지 않습니다.

CLI 명령을 사용하여 CI/CD 워크플로의 일부로 자동화된 테스트를 설정할 수 있습니다. 예를 들어 QA, 테스트 또는 스테이징 환경에 프로덕션과 유사한 데이터가 있는 경우 다음 단계를 따를 수 있습니다.

  1. QA에 대해 PLAN하여 예상되는 프로젝트 정의 변경 사항을 확인합니다.

  2. QA에 DEPLOY합니다.

  3. 오래된 데이터에 대해 기대치가 테스트되지 않도록 QA의 ALL 동적 테이블을 REFRESH하여 새로운 변환 논리와 업데이트된 정의를 기반으로 데이터를 업데이트합니다.

  4. QA 환경에서 테이블 오브젝트에 첨부된 ALL 데이터 품질 기대치를 TEST하여 새로 배포된 논리가 예상대로 작동하고 데이터 출력의 예상 형태에 부정적인 영향을 미치지 않는지 확인합니다.

  5. QA에 대한 모든 기대치가 충족되는 경우 PLAN을 계속 진행하고 프로덕션 환경에 DEPLOY합니다.

TEST 명령을 실행합니다.

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_STG
  TEST ALL;

TEST 출력에는 다음 형식의 값과 함께 전체 상태 및 기대치가 포함됩니다.

중요

미리 보기 단계에서는 정확한 출력 형식이 변경될 수 있습니다.

{
  "status": <status>,
  "expectations": [
    {
      "table_name": <table_name>,
      "metric_database": <metric_database>,
      "metric_schema": <metric_schema>,
      "metric_name": <metric_name>,
      "expectation_name": <expectation_name>,
      "expectation_expression": <expectation_expression>,
      "value": <value>,
      "expectation_violated": <expectation_violated>,
      "column_names": <column_names>
    }
  ]
}

속성

설명

status

테스트 실행의 전체 결과입니다. 가능한 값은 ``SUCCESSFUL``(모든 기대치가 충족됨), ``FAILED``(하나 이상의 기대치가 위반됨)입니다.

expectations[]

평가된 각 데이터 품질 기대치에 대한 기대치 결과가 하나씩 포함된 배열입니다.

table_name

기대치가 평가된 테이블 또는 뷰의 정규화된 이름입니다.

metric_database

데이터 메트릭 함수가 포함된 데이터베이스입니다.

metric_schema

데이터 메트릭 함수를 포함하는 스키마입니다.

metric_name

데이터 메트릭 함수의 이름(예: NULL_COUNT, MIN, UNIQUE_COUNT)입니다.

expectation_name

프로젝트에 정의된 기대치의 이름입니다.

expectation_expression

메트릭 값이 평가되는 부울 식(예: value = 0, value >= 0)입니다.

value

데이터 메트릭 함수 평가의 결과입니다. ``expectation_violated``가 ``false``인 경우에만 표시됩니다.

expectation_violated

예상이 위반되었는지 여부입니다. 메트릭 값이 기대 식을 충족하지 않은 경우 ``true``이고 그렇지 않으면 ``false``입니다.

column_names

데이터 메트릭 함수가 평가된 열 이름의 배열입니다.

데이터 품질 테스트에 대한 JSON 출력의 예제입니다.

{
  "status": "FAILED",
  "expectations": [
    {
      "table_name": "db.schema.my_table",
      "metric_database": "SNOWFLAKE",
      "metric_schema": "CORE",
      "metric_name": "NULL_COUNT",
      "expectation_name": "no_nulls_in_id",
      "expectation_expression": "value = 0",
      "value": 0,
      "expectation_violated": false,
      "column_names": ["ID"]
    },
    {
      "table_name": "db.schema.my_table",
      "metric_database": "SNOWFLAKE",
      "metric_schema": "CORE",
      "metric_name": "UNIQUE_COUNT",
      "expectation_name": "unique_id_check",
      "expectation_expression": "value >= 100",
      "value": null,
      "expectation_violated": true,
      "column_names": ["ID"]
    }
  ]
}

PREVIEW 명령

동적 테이블 또는 뷰의 SELECT 문을 쓰거나 변경할 때, 샘플 출력은 데이터 모양의 유효성을 검사하는 데 도움이 됩니다. 여러 변환 단계가 있는 복잡한 계보 그래프의 경우, 업스트림에서 추가로 변경할 때 다운스트림 뷰 또는 동적 테이블의 출력을 확인할 수 있습니다.

배포하기 전에 코드의 변환이 예상한 데이터 출력인지 확인하려면 PREVIEW 명령을 실행합니다.

PREVIEW 명령은 PLAN을 실행하여 배포된 상태와 관계없이 현재 정의를 컴파일한 다음 지정된 동적 테이블, 뷰 또는 일반 테이블에 대한 데이터 샘플을 반환합니다.

다음 요구 사항과 고려 사항을 염두에 두세요.

  • PREVIEW 명령은 항상 Jinja 변수 없이 테이블 오브젝트의 정규화된 이름을 참조해야 합니다.

  • 출력에서 샘플 데이터를 보려면 소스 테이블에서 데이터를 이미 사용할 수 있는지 확인해야 합니다.

  • PREVIEW는 참조된 동적 테이블 및 뷰의 모든 SELECT 문을 쿼리하지만 작업이나 CREATE TABLE AS SELECT 문은 실행하지 않습니다.

PREVIEW 명령을 실행합니다.

EXECUTE DCM PROJECT DCM_DEMO.PROJECTS.DCM_PROJECT_DEV
  PREVIEW
    DCM_PROJECT_DEV.SERVE.V_DASHBOARD_KPI_SUMMARY
  USING CONFIGURATION DEV
FROM
  'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/live/DCM_Project_Quickstart_1'
  LIMIT 100;