이 문서에서는 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에 SQL 워크플로를 실행하는 동안 다음 오류가 발생합니다.
- 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 워크플로를 조사해서 비효율성을 식별하고 줄입니다.
- 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
package.json
에는 @dataform/core
종속 항목이 필요합니다. 저장소의 첫 번째 작업공간을 초기화하면 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에 패키지를 설치하는 방법에 대한 자세한 내용은 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 레지스트리에 유효한지 확인합니다. 자세한 내용은 Dataform에서 비공개 패키지 인증을 참고하세요.
원격 저장소에 연결할 수 없음
Git에 결함이 있거나 연결된 타사 Git 저장소의 브랜치 이름에 비ASCII 또는 영어 이외의 문자가 포함된 경우 다음 오류가 발생합니다.
Remote repository REPOSITORY_NAME could not be reached.
이 오류를 해결하려면 연결된 서드 파티 저장소의 브랜치 이름을 검사합니다. 브랜치 이름에 비ASCII 또는 영어가 아닌 문자가 포함된 경우 브랜치를 삭제합니다.
원격 저장소에 연결할 수 없음: 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를 지원하지 않습니다.
알 수 없는 인수: 태그
사용 중인 Dataform CLI 버전에서 tags
인수를 인식하지 못하면 다음 오류가 발생합니다.
Unknown argument: tags
이 오류를 해결하려면 다음 안내를 따르세요.
- CLI 버전을
3.0.0
이상으로 업데이트합니다. 프로덕션 환경에 배포하기 전에 항상 비프로덕션 환경에서 새 패키지 버전을 테스트하세요. - 항상 사용 가능한 최신 버전의 Dataform 핵심 패키지를 사용하는 것이 좋습니다.
package.json
에서 패키지 버전을 명시적으로 지정하세요(예:3.0.0
).package.json
의 다른dependencies
옵션(예:>version
)을 사용하지 마세요.