이 문서에서는 Dataform 문제를 해결하는 방법을 설명합니다.
BigQuery 액세스가 거부됨
BigQuery에 Dataform 액세스 권한을 부여하기 전에 파이프라인 호출을 트리거할 때 다음 오류가 발생합니다.
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.
이 오류를 해결하려면 BigQuery에 Dataform에 대한 액세스 권한을 부여하세요.
원격 저장소의 액세스 토큰이 거부됨
연결된 서드 파티 저장소에 대한 인증 토큰이 해당 저장소에 액세스할 수 없으면 다음 오류가 발생합니다.
The access token for remote repository REPOSITORY_NAME was rejected
이 오류를 해결하려면 Git 제공업체에서 필요한 권한을 확인하고 그에 따라 Secret Manager 인증 토큰을 업데이트하세요. Dataform에서 서드 파티 Git 저장소 인증에 대한 자세한 내용은 서드 파티 Git 저장소에 연결을 참조하세요.
BigQuery 할당량이 초과됨
Dataform에서 BigQuery로 전송하는 API 요청 수가 BigQuery 할당량을 초과하면 다음 오류가 발생합니다.
Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.
이 오류를 해결하려면 다음과 같은 방법으로 병렬 쿼리 수를 250 미만으로 줄이세요.
- Dataform에서 태그로 작업을 분류하고 한 번에 선택한 태그만 실행합니다.
- Dataform에서 작업 간 종속 항목을 도입합니다.
- Dataform에서 작업 실행을 서로 다른Google Cloud 프로젝트로 나눕니다.
BigQuery에서 이 오류를 해결하는 방법은 할당량 및 한도 오류 문제 해결을 참고하세요.
BigQuery 쿼리 동시 실행 한도를 초과함
BigQuery에 실행되는 동시 쿼리 수가 BigQuery 쿼리 동시 실행 한도를 초과하면 다음 오류가 발생합니다.
Exceeded rate limits: too many concurrent queries for this project_and_region
이 오류를 해결하려면 다음과 같은 방법으로 병렬 쿼리 수를 250 미만으로 줄이세요.
- Dataform에서 태그로 작업을 분류하고 한 번에 선택한 태그만 실행합니다.
- Dataform에서 작업 간 종속 항목을 도입합니다.
- Dataform에서 작업 실행을 서로 다른Google Cloud 프로젝트로 나눕니다.
BigQuery에서 이 오류를 해결하는 방법은 할당량 및 한도 오류 문제 해결을 참고하세요.
BigQuery 파이프라인 호출 오류
BigQuery에 대한 워크플로 실행 중에 다음 오류가 발생합니다.
- BigQuery 오류 메시지로 시작하는 파이프라인 호출 오류
이러한 오류를 해결하려면 BigQuery 오류 메시지를 참고하세요.
includeDependentAssertions
속성이 충돌함
하나의 파일 내에서 서로 다른 값을 사용하여 동일한 작업에 includeDependentAssertions
매개변수를 설정하면 컴파일 중에 다음 오류가 발생합니다.
Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.
이 오류를 해결하려면 파일을 수정하고 충돌하는 includeDependentAssertions
매개변수의 반복을 삭제하세요.
includeDependentAssertions
매개변수를 사용하여 어설션을 종속 항목으로 설정하는 방법에 관한 자세한 내용은 선택한 작업의 어설션을 종속 항목으로 설정을 참고하세요.
컴파일 실패
컴파일된 쿼리의 크기 또는 수로 인해 컴파일 중에 다음 오류가 발생합니다.
Compilation timed out. Reduce the complexity of your project to ensure it can compile within limits.
Compilation exceeded its allowed heap memory limits. Reduce the complexity of your project to ensure it can compile within limits.
Compilation exceeded its allowed ArrayBuffer or string memory limits. Reduce the complexity of your project to ensure it can compile within limits.
이 오류를 해결하려면 다음 단계를 수행합니다.
- 최신 버전으로 Dataform 코어를 업데이트합니다.
- 워크플로를 검사하여 비효율성을 식별하고 줄입니다.
- SQL 쿼리의 크기를 줄입니다.
메모리에서 JavaScript 작업량을 줄입니다. 예를 들면 다음과 같습니다.
config { config {type: "table" }} js { const tooBig = new Uint8Array(110_000_000); } SELECT ...
Dataform 컴파일 리소스 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
@dataform/core
종속 항목 오류
package.json
의 dataform-core
종속 항목이 오래될 경우 컴파일 중에 다음 오류가 발생합니다.
Failed to resolve @dataform/core
@dataform/core version should be X.X.X or newer
@dataform/core
종속 항목은 package.json
에 필요합니다. 저장소의 첫 번째 작업공간을 초기화하면 Dataform이 package.json
에 현재 버전의 @dataform/core
를 자동으로 채웁니다. 최신 버전이 출시되면 @dataform/core
를 업데이트해야 합니다.
이러한 오류를 해결하려면 @dataform/core
를 최신 버전으로 업데이트합니다.
dataform.json
해결 실패
Dataform 작업공간을 초기화하지만 초기화 프로세스에서 모든 패키지를 설치할 수 없으면 다음 오류가 발생합니다.
Uncaught Error: Failed to resolve dataform.json
이 오류를 해결하려면 작업공간에서 package.json
을 열고 패키지 설치를 클릭합니다.
workflow_settings.yaml
해결 실패
Dataform 작업공간을 초기화하지만 초기화 프로세스에서 모든 패키지를 설치할 수 없으면 다음 오류가 발생합니다.
Uncaught Error: Failed to resolve workflow_settings.yaml
이 오류를 해결하려면 작업공간에서 workflow_settings.yaml
을 열고 패키지 설치를 클릭합니다.
git+
패키지 대상은 지원되지 않음
package.json
에서 git+
프리픽스가 있는 대상으로 패키지를 정의할 때 다음 오류가 발생합니다.
'git+' prefixed package targets are not currently supported. However,
in most cases they can be used via a '.tar.gz' suffixed target instead.
Dataform은 git+
프리픽스가 있는 패키지 대상을 지원하지 않습니다.
이 오류를 해결하려면 패키지의 tar.gz
URL을 생성하고 package.json
에서 패키지 대상을 업데이트합니다. Dataform에 패키지를 설치하는 방법에 대한 자세한 내용은 패키지 설치를 참고하세요.
패키지 설치 타임아웃
다음 오류는 package.json
에 정의된 패키지의 크기가 NPM 종속 항목의 최대 크기를 초과할 때 발생합니다.
API request error: Package installation timed out
이 오류를 해결하려면 package.json
에서 중복 패키지를 삭제합니다. package.json
파일에 @dataform/cli
가 포함되지 않았고 정의된 NPM 종속 항목의 총 크기가 200Mb를 초과하지 않는지 확인합니다.
출시 구성에서 Git 커밋을 참조하는 경우 대상의 package.json
파일이 유효한지 확인합니다.
비공개 패키지 레지스트리에 연결할 수 없음
비공개 패키지의 Dataform 인증이 만료되면 다음 오류가 발생합니다.
Permission denied when fetching one or more npm packages. Please verify that
private registry authentication details are valid for each npm registry
이 오류를 해결하려면 각 NPM 레지스트리에 대해 비공개 레지스트리 인증 세부정보가 유효한지 확인하세요. 자세한 내용은 비공개 패키지 인증을 참고하세요.
원격 저장소에 연결할 수 없음
Git에 결함이 있거나 서드 파티 저장소 연결이 올바르게 설정되지 않은 경우 다음 오류가 발생합니다.
Remote repository REPOSITORY_NAME could not be reached.
이 오류를 해결하려면 서드 파티 Git 저장소에 연결에 나열된 단계를 모두 따랐는지 확인하세요. 특히 Git 저장소 호스트가 공개 인터넷에서 액세스할 수 있는지 확인합니다. 또한 인증 토큰 또는 비공개 키가 올바르고 저장소에 액세스하는 데 필요한 권한이 있는지 확인합니다.
원격 저장소에 연결할 수 없음: generic::invalid_argument
계획 출시 시에 GitHub, GitLab, 또는 BitbucketGitHub 연결이 느리거나, 불안정하거나, 삭제될 경우에는 출시 구성 세부정보 페이지에서 다음 오류가 발생합니다.
generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.
별도로 취해야 할 조치는 없습니다. GitHub, GitLab, 또는 Bitbucket Cloud 문제가 지속되지 않는다면 후속 예약 출시는 성공적으로 수행됩니다.
원격 저장소의 보안 비밀에 연결할 수 없음
Dataform 서비스 계정에서 연결된 서드 파티 저장소의 Secret Manager 보안 비밀에 액세스할 수 없을 때 다음 오류가 발생합니다.
Dataform's service account is unable to reach the configured secret.
Make sure the secret exists and is shared with your Dataform service account:
SERVICE_ACCOUNT_ID.
이 오류를 해결하려면 다음 안내를 따르세요.
- Dataform 서비스 계정에 보안 비밀에 대한 액세스 권한이 있는지 확인합니다.
- VPC-SC 서비스 경계에서 시크릿을 제외합니다. Dataform은 현재 VPC-SC를 지원하지 않습니다.
알 수 없는 인수: tags
Dataform CLI 버전에서 tags
인식을 하지 못하면 다음 오류가 발생합니다.
Unknown argument: tags
이 오류를 해결하려면 다음 안내를 따르세요.
- CLI 버전을
3.0.0
이상으로 업데이트합니다. 프로덕션 환경에 배포하기 전에 항상 비프로덕션 환경에서 새 패키지 버전을 테스트하세요. - Dataform 핵심 패키지의 최신 버전을 항상 사용하는 것이 좋습니다.
package.json
에서 패키지 버전을 명시적으로 지정하세요(예:3.0.0
).package.json
의 다른dependencies
옵션(예:>version
)을 사용하지 마세요.