Dataform 기능 개요

Dataform은 데이터 분석가가 테이블, 증분 테이블 또는 뷰를 개발하고 BigQuery에 배포할 수 있는 서버리스 서비스입니다. Dataform은 SQL 워크플로 개발, GitHub, GitLab, Azure DevOps 서비스, Bitbucket과의 연결, 지속적 통합, 지속적 배포, 워크플로 실행을 위한 웹 환경을 제공합니다.

저장소

각 Dataform 프로젝트는 저장소에 저장됩니다. Dataform 저장소에는 JSON 구성 파일, SQLX 파일, JavaScript 파일 모음이 저장됩니다.

Dataform 저장소에는 다음 유형의 파일이 포함됩니다.

  • 구성 파일

    구성 JSON 또는 SQLX 파일을 사용하면 SQL 워크플로를 구성할 수 있습니다. 여기에는 새 테이블 및 뷰를 만들기 위한 일반적인 구성, 실행 일정 또는 스키마가 포함됩니다.

  • 정의

    정의는 BigQuery에서 실행할 새 테이블, 뷰, 추가 SQL 작업을 정의하는 SQLX 및 JavaScript 파일입니다.

  • 포함 항목

    include는 프로젝트에 사용할 변수와 함수를 정의할 수 있는 JavaScript 파일입니다.

각 Dataform 저장소는 서비스 계정에 연결됩니다. 저장소를 만들거나 나중에 서비스 계정을 수정할 때 서비스 계정을 선택할 수 있습니다.

기본적으로 Dataform은 프로젝트 번호에서 파생된 서비스 계정을 다음과 같은 형식으로 사용합니다.

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

버전 제어

Dataform은 Git 버전 제어 시스템을 사용하여 프로젝트 파일의 각 변경사항 기록을 유지하고 파일 버전을 관리합니다.

각 Dataform 저장소는 자체 Git 저장소를 관리하거나 원격 제3자 Git 저장소에 연결할 수 있습니다. Dataform 저장소를 GitHub, GitLab, Azure DevOps Services, Bitbucket 저장소에 연결할 수 있습니다.

사용자는 Dataform 작업공간 내에서 SQL 워크플로 코드의 버전을 제어합니다. Dataform 작업공간에서 저장소에서 변경사항을 가져오고 모든 변경사항 또는 선택한 변경사항을 커밋한 다음 저장소의 Git 분기로 푸시할 수 있습니다.

워크플로 개발

Dataform에서는 개발 작업공간 내에서 파일 및 디렉터리를 변경합니다. 개발 작업공간은 Git 저장소의 콘텐츠에 대한 가상의 수정 가능한 사본입니다. Dataform은 세션 간에 개발 작업공간의 파일 상태를 보존합니다.

개발 작업공간에서 SQLX 및 JavaScript 또는 JavaScript만으로 Dataform Core를 사용하여 SQL 워크플로 작업을 개발할 수 있습니다. Dataform 코어 또는 JavaScript 코드의 형식을 자동으로 지정할 수 있습니다.

테이블 또는 어설션과 같은 Dataform SQL 워크플로의 각 요소는 Dataform이 BigQuery에서 수행하는 작업에 해당합니다. 예를 들어 테이블 정의 파일은 BigQuery에서 테이블을 만들거나 업데이트하는 작업입니다.

Dataform 작업공간에서 다음 SQL 워크플로 작업을 개발할 수 있습니다.

JavaScript를 사용하여 Dataform SQL 워크플로 코드를 다음과 같은 방법으로 재사용할 수 있습니다.

Dataform은 작업공간에서 SQL 워크플로 코드를 실시간으로 컴파일합니다. 작업공간에서 각 파일의 컴파일된 쿼리와 작업 세부정보를 볼 수 있습니다. 수정된 파일 또는 저장소에서 컴파일 상태 및 오류를 확인할 수도 있습니다.

BigQuery에 실행하기 전에 컴파일된 SQL 쿼리의 출력을 테스트하려면 Dataform 작업공간에서 쿼리 미리보기를 실행하면 됩니다.

작업공간에 정의된 전체 SQL 워크플로를 검사하려면 SQL 워크플로의 모든 컴파일된 작업과 해당 작업 간의 관계를 보여주는 컴파일된 대화형 그래프를 확인하면 됩니다.

워크플로 컴파일

Dataform은 dataform.json에서 구성된 기본 컴파일 설정을 사용하여 작업공간의 SQL 워크플로 코드를 실시간으로 SQL로 컴파일하여 작업공간의 컴파일 결과를 만듭니다.

컴파일 설정을 재정의하여 Dataform이 SQL 워크플로를 컴파일 결과로 컴파일하는 방법을 맞춤설정할 수 있습니다.

작업공간 컴파일 재정의를 사용하면 저장소의 모든 작업공간에 대해 컴파일 재정의를 구성할 수 있습니다. 동적 작업공간 재정의를 설정하여 각 작업공간에 대해 커스텀 컴파일 결과를 생성하여 작업공간을 격리된 개발 환경으로 변환할 수 있습니다. Dataform이 작업공간의 콘텐츠를 실행하고, 모든 컴파일된 테이블의 이름에 프리픽스를 추가하며, 기본 스키마에 서픽스를 추가하는 Google Cloud 프로젝트를 재정의할 수 있습니다.

출시 구성을 사용하면 Dataform 저장소의 컴파일 결과를 만들기 위한 컴파일 설정 템플릿을 구성할 수 있습니다. 출시 구성에서는 Dataform이 컴파일 결과를 실행하고, 모든 컴파일된 테이블의 이름에 프리픽스를 추가하며, 기본 스키마에 서픽스를 추가하고, 컴파일 변수를 추가하는 Google Cloud 프로젝트를 재정의할 수 있습니다. 컴파일 결과를 만드는 빈도를 설정할 수도 있습니다. 선택한 출시 구성에서 생성된 컴파일 결과의 실행을 예약하려면 워크플로 구성을 만들면 됩니다.

워크플로 실행

워크플로를 실행하는 동안 Dataform은 SQL 워크플로의 컴파일 결과를 실행하여 BigQuery에서 애셋을 만들거나 업데이트합니다.

BigQuery의 SQL 워크플로에 정의된 테이블과 뷰를 만들거나 새로고침하려면 개발 작업공간에서 워크플로 실행을 수동으로 시작하거나 실행을 예약할 수 있습니다.

다음 방법으로 BigQuery에서 Dataform 실행을 예약할 수 있습니다.

오류를 디버깅하려면 다음과 같은 방법으로 실행을 모니터링할 수 있습니다.

다음 단계