Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Code Repositories에서 SQL 배치 파이프라인 만들기

이 예제는 Titanic CSV의 열을 선택하고 Sex 문자열의 첫 글자를 Gender라는 출력 열로 만드는 SQL 변환입니다. 기능 브랜치에서 작성하고 실제 출력을 확인한 뒤 검토와 병합을 거쳐 운영 브랜치에서 빌드합니다.

저장소와 입력 준비

프로젝트 오른쪽 위의 + New > Code repository를 선택합니다. 이름을 정하고 Language template에서 SQL을 선택한 뒤 Initialize repository를 누릅니다.

입력 데이터가 없다면 titanic.csv를 내려받아 저장소와 같은 프로젝트에 업로드합니다. 필요한 열은 Name, Age, Survived, Ticket, Sex이며 CSV에는 이 밖의 원래 열도 포함되어 있습니다.

작업 브랜치 생성

예제의 운영 브랜치는 master입니다. 운영 브랜치를 보호하면 파일을 읽을 수는 있지만 직접 만들거나 수정할 수 없습니다. 현재 브랜치 이름 옆의 새 브랜치 아이콘에서 기준 브랜치와 새 이름을 지정합니다.

생성 직후 파일 트리는 기준 브랜치와 같습니다. 이후에는 새 브랜치에서 코드를 편집하고 별도의 데이터셋 브랜치로 결과를 빌드할 수 있습니다.

SQL 변환 파일

폴더의 ... 메뉴에서 New file을 선택하고 SQL Transformation 유형을 고릅니다. 공백이나 특수 문자가 없는 이름을 지정합니다.

파일 트리에서 초록색 이름은 기준 브랜치에 없던 새 파일이고 주황색 이름은 기존 파일의 수정본입니다. 새 SQL 파일은 이름에 따라 출력 데이터셋을 선언합니다. 예를 들어 /Public/Authoring 프로젝트에서 titanicAnalysis.sql을 만들면 /Public/Authoring/titanicAnalysis 출력 경로가 생성됩니다.

입력 참조 위치에서 백틱을 입력하면 데이터셋 자동 완성 목록이 열립니다. 프로젝트의 titanic 데이터셋을 선택하면 경로 참조가 고유 ID로 바뀌어 이후 데이터셋을 이동해도 참조를 유지할 수 있습니다.

예제 경로에 입력을 준비한 경우의 SQL은 다음과 같습니다. 실제 저장 위치가 다르면 자동 완성으로 자신의 입력과 출력 참조를 선택합니다.

CREATE TABLE `/Public/Authoring/titanicAnalysis` AS
SELECT
    Name,
    Age,
    Survived,
    Ticket,
    SUBSTRING(Sex, 1, 1) AS Gender
FROM `/Public/Authoring/titanic`

Gender는 이 예제에서 원천 Sex 문자열의 약어를 담는 열 이름입니다. 파생 열에는 반드시 별칭을 지정합니다. 편집 중에는 SUBSTRING 같은 함수의 도움말과 자동 완성을 사용할 수 있습니다.

샘플 미리보기

Preview는 커밋, 자동 검사나 출력 데이터셋의 구체화 없이 샘플 입력에서 코드를 실행합니다. 빠른 반복 개발에 사용할 수 있지만 샘플 결과가 전체 빌드를 대표한다고 가정하지 않습니다.

위쪽 Preview 또는 아래쪽 Preview helper를 엽니다. 스키마가 있는 입력은 입력 설정 아이콘에서 다음 방식을 선택할 수 있습니다.

방식의미
Original input원래 입력의 샘플을 사용합니다.
Previous preview같은 저장소의 상위 변환 미리보기 결과를 입력으로 연결합니다.
Apply custom filters지원 열의 시간 구간이나 값 조건으로 특정 사례를 선택합니다.
Select a different dataset코드에 필요한 열을 모두 가진 다른 데이터셋으로 시험합니다.

파일 기반 입력도 미리보기할 수 있습니다. 처음 실행할 때 사용할 샘플 파일을 선택하고 저장합니다. 이후에는 같은 구성을 재사용하며 해당 입력에서 다시 변경할 수 있습니다. 출력은 행 또는 파일로 확인하고, 필요한 권한이 있으면 출력 파일을 내려받을 수 있습니다.

커밋과 브랜치 빌드

편집 내용은 기본적으로 자동 저장되지만 커밋은 변경 묶음에 이름을 붙여 기록하는 작업입니다. Commit에서 변경 요약을 적으면 자동 검사가 실행됩니다. Build도 커밋과 검사를 수행하면서 출력 빌드를 시작합니다. 데이터셋을 만들지 않고 검사만 수행하려면 Commit을 선택합니다.

변환 SQL 파일을 선택한 상태에서 Build를 누릅니다. 위쪽 버튼과 아래쪽 Build helper의 버튼은 같은 작업입니다. 브랜치에서 새 빌드를 시작하면 이미 실행 중인 빌드 뒤에 대기합니다.

Build helper에서 작업 진행을 확인합니다. 실패하면 details를 열어 Checks 탭의 오류를 읽고 수정한 뒤 다시 빌드합니다. 빌드가 끝나면 helper의 출력 미리보기와 데이터셋 링크에서 실제 결과를 확인합니다.

검토 요청

Propose changes를 선택하고 New pull request 화면에 변경 내용을 적은 뒤 Create pull request를 누릅니다.

검토 화면확인할 내용
Files changed코드의 줄별 변경
Impact analysis영향을 받는 데이터셋의 스키마와 상태 검사 변화
Pipeline review변경이 파이프라인 그래프에 미치는 영향

다른 사용자에게 검토를 요청합니다. 파일별 승인 및 거절은 선택적으로 사용할 수 있지만, 파일 하나를 거절하면 PR 전체가 거절됩니다. PR을 승인하면 개별 파일도 함께 승인됩니다. 상태 아이콘 위에 포인터를 놓으면 누가 승인하거나 거절했는지 확인할 수 있습니다.

Owner는 Automatically merge changes 옵션을 사용할 수 있습니다. 브랜치에 최소 하나의 필수 검사가 구성되어 통과해야 하며 해당 저장소의 병합 정책도 충족해야 합니다. 조건이 이미 준비되어 있으면 PR 생성 후 자동으로 운영 브랜치에 병합되고 작업 브랜치도 삭제될 수 있으므로 사용 전에 의도한 검토 절차를 확인합니다.

운영 브랜치에 반영

필요한 검토와 정책을 충족하면 적절한 권한을 가진 사용자가 병합할 수 있습니다. 기본 역할에서는 Owner와 Editor가 해당합니다. 예제에서는 Squash and merge를 선택하고 확인 대화상자에서도 같은 작업을 선택합니다.

병합 후 Code 탭에서 master를 선택하여 파일에 변경이 반영되었는지 확인합니다. 그런 다음 해당 SQL 파일을 선택하고 운영 브랜치에서도 Build를 수행합니다. 코드 병합과 운영 데이터셋 빌드는 별도 단계입니다.

작업 브랜치 정리

자신이 만든 작업 브랜치는 Branches의 Personal branches에서 휴지통 아이콘으로 삭제할 수 있습니다. 다른 사람이 만든 브랜치를 삭제하면 그 사람의 작업을 잃을 수 있으므로 삭제하지 않습니다.

PR의 Delete branch after merge도 사용할 수 있습니다. 보호 브랜치에는 이 옵션을 사용할 수 없으며, 보호 브랜치를 삭제하려면 먼저 보호 해제가 필요합니다.

병합한 변경 되돌리기

운영 코드의 문제를 발견하면 Branches에서 master의 커밋 이력을 엽니다. 커밋 해시로 변경 내용을 확인한 뒤 되돌릴 커밋의 Revert를 선택합니다.

Revert는 운영 브랜치로 보내는 새 PR을 만듭니다. 이를 검토하고 병합한 뒤 필요한 출력을 다시 빌드합니다. 이 절차는 코드 변경을 되돌리는 것이며 기존 데이터 트랜잭션을 직접 롤백하는 작업과 구분합니다.