저장소 크기 개요

이 문서는 저장소 크기가 SQL 워크플로 개발 및 Dataform 컴파일 리소스 사용량에 미치는 영향과 저장소의 컴파일 리소스 사용량을 추정하는 방법을 이해하는 데 도움이 됩니다.

Dataform의 저장소 크기 정보

저장소 크기는 Dataform 개발의 다음과 같은 측면에 영향을 줍니다.

공동작업
대규모 저장소에서 작업하는 여러 공동작업자가 지나치게 많은 pull 요청을 만들어 병합 충돌 위험이 증가할 수 있습니다.
코드베이스 가독성
단일 저장소에서 SQL 워크플로를 구성하는 파일이 많으면 저장소를 탐색하는 것이 어려울 수 있습니다.
개발 프로세스
단일 저장소에서 대규모 SQL 워크플로의 일부 영역에는 SQL 워크플로의 나머지 부분에 적용되는 권한 및 프로세스와 달리 예약과 같은 커스텀 권한 또는 프로세스가 필요할 수 있습니다. 저장소 크기가 크면 SQL 워크플로의 특정 영역에 맞게 개발 프로세스를 조정하기가 어렵습니다.
워크플로 컴파일
Dataform은 컴파일 리소스에 사용량 한도를 적용합니다. 저장소 크기가 크면 이러한 한도를 초과하여 컴파일이 실패할 수 있습니다.
워크플로 실행
실행 중에 Dataform은 작업공간 내에서 모든 저장소 코드를 실행하고 애셋을 BigQuery에 배포합니다. 저장소가 클수록 Dataform을 실행하는 데 시간이 오래 걸립니다.

저장소의 크기가 커서 Dataform의 개발에 부정적인 영향을 미치는 경우 여러 개의 작은 저장소로 저장소를 분할할 수 있습니다.

저장소 컴파일 리소스 한도 정보

개발 중에 Dataform은 작업공간 내에서 모든 저장소 코드를 컴파일하여 저장소에 있는 SQL 워크플로 표현을 생성합니다. 이를 컴파일 결과라고 합니다. Dataform은 컴파일 리소스에 사용량 한도를 적용합니다.

다음과 같은 이유로 저장소가 사용량 한도를 초과할 수 있습니다.

  • 저장소 코드의 무한 루프 버그
  • 저장소 코드의 메모리 누수 버그
  • 큰 저장소 크기(SQL 워크플로 노드 약 1,000개 이상)

컴파일 리소스의 사용량 한도에 대한 자세한 내용은 Dataform 컴파일 리소스 한도를 참조하세요.

저장소의 컴파일 리소스 사용량 추정

저장소에 다음과 같은 컴파일 리소스 사용량을 추정할 수 있습니다.

  • CPU 시간 사용량
  • 저장소에 정의된 작업의 그래프로 표현된 직렬화된 최대 데이터 크기

로컬 Linux 또는 macOS 머신에서 Dataform SQL 워크플로 컴파일 시간을 지정하면 저장소 컴파일의 현재 컴파일 CPU 시간 사용량을 대략적으로 확인할 수 있습니다.

  • SQL 워크플로의 컴파일 시간을 지정하려면 저장소 내부에서 다음 형식으로 Dataform CLI dataform compile 명령어를 실행합니다.
time dataform compile

다음 코드 샘플은 time dataform compile 명령어를 실행한 결과를 보여줍니다.

real    0m3.480s
user    0m1.828s
sys     0m0.260s

real 결과를 저장소 컴파일의 대략적인 CPU 시간 사용량으로 취급할 수 있습니다.

저장소에서 생성된 작업 그래프의 전체 크기를 대략적으로 확인하려면 그래프 출력을 JSON 파일에 작성하면 됩니다. 비압축 JSON 파일의 크기를 전체 그래프 크기의 대략적인 표시기로 취급할 수 있습니다.

  • SQL 워크플로의 컴파일된 그래프 출력을 JSON 파일에 쓰려면 저장소 내에서 다음 Dataform CLI 명령어를 실행합니다.
dataform compile --json > graph.json

다음 단계