Dataform 개요

이 문서에서는 Dataform 개념과 프로세스를 소개합니다.

Dataform은 데이터 분석가가 BigQuery에서 데이터 변환를 위한 복잡한 SQL 워크플로를 개발, 테스트, 버전 제어, 예약할 수 있게 해주는 서비스입니다.

Dataform을 사용하면 데이터 통합을 위해 추출, 로드, 변환(ELT) 프로세스에서 데이터 변환을 관리할 수 있습니다. 원시 데이터가 소스 시스템에서 추출되어 BigQuery로 로드된 후에 Dataform을 사용하면 잘 정의되고 테스트를 거쳤으며 문서화된 데이터 테이블 제품군으로 원시 데이터를 변환할 수 있습니다.

Dataform을 사용하면 다음과 같은 데이터 변환 작업을 실행할 수 있습니다.

  • 데이터 변환을 위한 SQL 워크플로를 개발하고 실행하기
  • Git를 통해 SQL 워크플로 개발에 대해 팀원과 공동작업하기
  • 다수의 테이블과 테이블 종속 항목 관리하기
  • 소스 데이터를 선언하고 테이블 종속 항목 관리하기
  • SQL 워크플로의 종속 항목 트리 시각화 열람하기
  • 중앙 저장소에서 SQL 코드로 데이터 관리하기
  • JavaScript에서 코드 재사용하기
  • 소스 및 출력 테이블에서 품질 테스트를 통해 데이터 정확성 테스트하기
  • SQL 코드 버전 제어하기
  • SQL 코드 내에서 데이터 테이블 문서화하기

Dataform의 데이터 변환 프로세스

Dataform의 데이터 변환 워크플로는 다음과 같습니다.

  1. Dataform을 사용하여 코드를 관리할 저장소를 만듭니다.
  2. Dataform을 사용하여 개발용 작업공간을 만듭니다.
  3. Dataform을 사용하여 개발 작업공간에서 SQL 워크플로를 개발합니다.
  4. Dataform이 Dataform 코어를 SQL로 컴파일합니다.
  5. Dataform이 종속 항목 트리를 실행합니다.

Dataform을 사용하여 코드를 관리할 저장소를 만듭니다.

Dataform 저장소에서는 SQL의 확장 프로그램인 Dataform Core를 사용하여 워크플로를 정의하는 SQLX 파일을 작성합니다. Dataform 저장소는 버전 제어를 지원합니다. Dataform 저장소를 서드 파티 Git 제공업체에 연결할 수 있습니다.

Dataform을 사용하여 개발용 작업공간을 만들 수 있습니다.

Dataform Core 개발을 위해 Dataform 저장소 내에 개발 작업공간을 만들 수 있습니다. 개발 작업공간에서 저장소를 변경하고, 컴파일하고, 테스트하고, Git을 통해 기본 저장소에 푸시할 수 있습니다.

Dataform을 사용하여 개발 작업공간에서 Dataform Core를 개발할 수 있습니다.

개발 작업공간에서 테이블, 종속 항목, 변환 로직을 정의하고 문서화하여 SQL 워크플로를 빌드할 수 있습니다. JavaScript에서 작업을 구성할 수도 있습니다.

Dataform이 Dataform Core를 컴파일합니다.

컴파일 중에 Dataform은 다음 작업을 실행합니다.

  • Dataform Core를 표준 SQL의 SQL 워크플로로 컴파일합니다.
  • CREATE TABLE 또는 INSERT와 같은 상용구 SQL 문을 쿼리 구성과 함께 코드 인라인에 추가합니다.
  • JavaScript를 SQL로 트랜스파일(소스 간 컴파일)합니다.
  • 종속 항목을 확인하고 누락되거나 순환하는 종속 항목을 포함한 오류를 검사합니다.
  • BigQuery에서 실행할 모든 작업의 종속 항목 트리를 빌드합니다.

Dataform 컴파일은 컴파일 일관성을 위해 기본 제공됩니다. 즉, 동일한 코드가 매번 동일한 SQL 컴파일 결과로 컴파일됩니다. Dataform은 인터넷 액세스 없이 샌드박스 환경에서 코드를 컴파일합니다. 컴파일 중에는 외부 API 호출과 같은 추가 작업을 수행할 수 없습니다.

실시간으로 디버깅하려면 개발 작업공간의 대화형 그래프에서 프로젝트의 컴파일된 SQL 워크플로를 검사할 수 있습니다.

Dataform은 종속 항목 트리를 실행합니다.

BigQuery에서 Dataform은 다음 작업을 실행합니다.

  • 종속 항목 트리의 순서에 따라 SQL 명령어를 실행합니다.
  • 테이블과 뷰에 대해 어설션 쿼리를 실행하여 데이터 정확성을 확인합니다.
  • 정의한 다른 SQL 작업을 실행합니다.

실행 후에는 모든 분석 목적으로 테이블과 뷰를 사용할 수 있습니다.

로그 보기하여 생성된 테이블, 어설션 통과 또는 실패, 각 작업이 완료되는 데 걸린 시간, 기타 정보를 확인할 수 있습니다. BigQuery에서 실행된 정확한 SQL 코드도 볼 수 있습니다.

Dataform 모델링 프레임워크

Dataform은 Dataform CoreDataform CLI로 구성되는 Google Cloud 외부에서 사용할 수 있는 오픈소스 데이터 모델링 프레임워크를 제공합니다.

제한사항

Dataform에는 다음과 같은 알려진 제한사항이 있습니다.

  • Google Cloud의 Dataform은 일반 V8 런타임에서 실행되며 Node.js에서 제공하는 추가 기능과 모듈을 지원하지 않습니다. 기존 코드베이스에 Node.js 모듈이 필요한 경우 이러한 종속 항목을 삭제해야 합니다.

    package.json에 이름 필드가 없는 프로젝트는 패키지가 설치될 때마다 package-lock.json에서 diff를 생성합니다. 이러한 결과를 방지하려면 package.jsonname 속성을 추가해야 합니다.

  • package.json의 종속 항목에 대한 git+https:// URL은 지원되지 않습니다.

    이러한 URL을 일반 https:// 아카이브 URL로 변환합니다. 예를 들어 git+https://github.com/dataform-co/dataform-segment.git#1.5https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz로 변환합니다.

  • 단위 테스트를 수동으로 실행할 수는 없습니다.

  • 개발 작업공간에서는 파일 콘텐츠를 검색할 수 없습니다.

  • Dataform Core 3.0.0.부터 Dataform은 Docker 이미지를 배포하지 않습니다. Dataform의 자체 Docker 이미지를 빌드할 수 있으며, 이를 사용하여 Dataform CLI와 상응하는 명령어를 실행할 수 있습니다. 자체 Docker 이미지를 빌드하려면 Docker 문서의 애플리케이션 컨테이너화를 참고하세요.

  • 다음 Dataform API 메서드는 * 와일드 카드 항목을 잘못된 요청으로 처리하고 field_mask가 생략된 경우 설정된 필드 대신 모든 필드를 업데이트하여 AIP.134 가이드라인을 준수하지 않습니다.

다음 단계