bigquery_fdw 확장 프로그램을 사용하는 쿼리가 실패하면 다음 오류 메시지와 권장 수정사항을 사용하여 PostgreSQL용 AlloyDB에서 BigQuery 데이터에 대한 실시간 액세스를 복원하세요. 일반적인 원인으로는 사용 중지된 확장 프로그램, 클러스터 서비스 계정에 대한 BigQuery 권한 누락, BigQuery의 열 이름 또는 데이터 유형과 일치하지 않는 외부 테이블 정의가 있습니다.
BigQuery 외부 데이터 래퍼를 사용하여 데이터에 액세스하는 방법에 대한 자세한 내용은 BigQuery의 실시간 데이터에 액세스하도록 PostgreSQL용 AlloyDB 구성을 참조하세요.
확장 프로그램 및 메타데이터 문제
이 섹션에서는 발생할 수 있는 확장 프로그램 및 메타데이터 오류를 나열하고 각 오류를 해결하는 방법을 제안합니다.
bigquery_fdw 확장 프로그램이 사용 중지됨
권장 해결 방법
이 문제를 해결하려면 다음 단계를 따르세요.
데이터베이스 플래그
bigquery_fdw.enabled가on로 설정되어 있는지 확인합니다. 다음 방법 중 하나로 이를 확인할 수 있습니다.- 인스턴스의 현재 데이터베이스 플래그를 확인합니다.
- 인스턴스에 연결하고
psql에서 다음 명령어를 실행합니다.
SHOW bigquery_fdw.enabled;bigquery_fdw.enabled플래그가off이면bigquery_fdw.enabled를on로 설정합니다.
권한 및 액세스 문제
이 섹션에서는 발생할 수 있는 권한 및 액세스 오류를 나열하고 권장 수정사항을 제공합니다.
액세스 거부됨: 테이블 권한 bigquery.tables.get 거부됨
확장 프로그램에서 다음 오류로 인해 BigQuery 읽기 세션을 만들지 못했습니다.
Error in non-idempotent operation: Access Denied: Table TABLE_NAME: Permission bigquery.tables.get denied on table TABLE_NAME (or it may not exist).
이는 AlloyDB 클러스터 서비스 계정에 BigQuery 데이터 뷰어 권한이 없음을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 기본 클러스터 service_account_email에 다음 역할 중 하나를 제공합니다.
- BigQuery 데이터 뷰어(
roles/bigquery.dataViewer) bigquery.tables.get및bigquery.tables.getData권한이 포함된 커스텀 역할
bigquery.readsessions.create 액세스가 거부됨
확장 프로그램에서 다음 오류로 인해 BigQuery 읽기 세션을 만들지 못했습니다.
Error in non-idempotent operation: request failed: the user does not have 'bigquery.readsessions.create' permission for PROJECT_NAME.
이는 AlloyDB 클러스터 서비스 계정에 BigQuery 읽기 세션 사용자 권한이 없음을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 기본 클러스터의 service_account_email에 다음 역할 중 하나를 제공합니다.
- BigQuery 읽기 세션 사용자(
roles/bigquery.readSessionUser) bigquery.readsessions.create및bigquery.readsessions.getData권한이 포함된 커스텀 역할
사용자에게 bigquery.jobs.create 권한이 없습니다.
확장 프로그램에서 다음 오류로 인해 BigQuery 읽기 세션을 만들지 못했습니다.
Error in non-idempotent operation: Access Denied: Project PROJECT_NAME: User does not have bigquery.jobs.create permission in project PROJECT_NAME.
권장 해결 방법
이 문제를 해결하려면 AlloyDB 클러스터 service_account_email에 다음 역할 중 하나를 제공합니다.
- BigQuery 작업 사용자 (
roles/bigquery.jobUser) bigquery.jobs.create권한이 포함된 커스텀 역할
구성 및 데이터 유형 문제
이 섹션에서는 발생할 수 있는 구성 및 데이터 유형 오류를 나열하고 권장 수정사항을 제공합니다.
선택한 필드가 테이블 스키마에 없습니다.
다음 문제가 발생했습니다.
Error in non-idempotent operation: request failed: The following selected fields do not exist in the table schema: POSTGRES_COLUMN_NAME(S). Error in non-idempotent operation: Unrecognized name: POSTGRES_COLUMN_NAME(S);
이는 외래 테이블 정의에 잘못된 열 이름이 있음을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 정의에 지정된 해당 BigQuery 테이블에 정확한 열 이름 (대소문자 구분)이 있는지 확인합니다.
유형 매핑의 입력 문법이 잘못되었습니다.
다음 오류로 인해 작업이 실패했습니다.
ERROR: invalid input syntax for type POSTGRES_COLUMN_DATA_TYPE: BIGQUERY_COLUMN_VALUE_RECEIVED.
이는 외래 테이블 정의에서 잘못된 열 데이터 유형 매핑을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 데이터 유형 매핑이 호환되는지 확인하세요. 예를 들어 BigQuery의 문자열 열은 PostgreSQL의 정수 열에 매핑할 수 없습니다. 자세한 내용은 데이터 유형 매핑을 참조하세요.
지원되지 않는 BigQuery 열 데이터 유형
다음 문제가 발생했습니다.
ERROR: bigquery_fdw extension encountered internal error for column: POSTGRES_COLUMN_DATA_TYPE. Only avro logical type: AVRO_BIGQUERY_LOGICAL_TYPE is supported for avro type: AVRO_BIGQUERY_DATA_TYPE. encountered internal error for column:POSTGRES_COLUMN_NAME. Data type: BIGQUERY_DATA_TYPE is not supported.
쿼리 중인 열 데이터 유형이 지원되지 않음을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 데이터 유형 매핑을 참조하세요.
테이블이 아닌 항목은 읽을 수 없습니다.
다음 오류로 인해 확장 프로그램이 실패했습니다.
ERROR: bigquery_fdw extension failed to create BigQuery read session with error: Error in non-idempotent operation: request failed: non-table entities cannot be read with the storage API.
쿼리 중인 BigQuery 테이블 유형이 지원되지 않음을 나타냅니다.
권장 해결 방법
이 문제를 해결하려면 표준 테이블과 같이 지원되는 BigQuery 항목 유형을 쿼리하고 있는지 확인하세요.