데이터 전송 문제 해결

이 페이지에서는 BigQuery로 데이터를 전송하거나 로드할 때 발생하는 문제를 해결하는 방법을 설명합니다. BigQuery Data Transfer Service, Cloud de Confiance by S3NS, Amazon Web Services (AWS), Cloud SQL, 가상 프라이빗 클라우드 (VPC) 네트워크 간 네트워크 연결, Cloud Storage의 CSV 데이터 로드 작업과 관련된 일반적인 오류를 해결할 수 있습니다.

전송 구성 문제 해결

BigQuery Data Transfer Service 관련 문제 해결에 대한 자세한 내용은 전송 구성 문제 해결을 참고하세요.

외부 또는 파트너 데이터 소스에서 전송을 설정하거나 실행하는 경우 서드 파티 전송 설정 문제 해결을 참고하세요.

INFORMATION_SCHEMA 뷰로 작업 진단

INFORMATION_SCHEMA.JOBS 뷰를 쿼리하여 실패하거나 느린 로드 작업과 전송 쿼리를 거의 실시간으로 진단할 수 있습니다. 로드 작업 또는 전송 쿼리가 실패하면 error_result 및 errors 열을 검사하여 스키마 불일치, 할당량 한도 또는 권한 오류와 같은 근본 원인을 파악합니다.

다음 예에서는 INFORMATION_SCHEMA.JOBS를 쿼리하여 지난 24시간 동안 실패한 로드 작업의 오류 세부정보를 가져옵니다.

SELECT
  job_id,
  creation_time,
  user_email,
  error_result.reason AS error_reason,
  error_result.message AS error_message,
  errors
FROM
  `region-REGION`.INFORMATION_SCHEMA.JOBS
WHERE
  job_type = 'LOAD'
  AND state = 'DONE'
  AND error_result IS NOT NULL
  AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
ORDER BY
  creation_time DESC;

<var>REGION</var>을 데이터 세트 리전 이름(예: us 또는 europe-west1)으로 바꿉니다.

전송 네트워크 연결 문제 해결

외부 클라우드 제공업체 또는 비공개 데이터베이스 인스턴스에서 데이터를 전송할 때 네트워크 라우팅 또는 방화벽 규칙으로 인해 연결이 차단될 수 있습니다. 다음 섹션을 사용하여 VPN 연결 및 비공개 네트워크 연결 문제를 해결하세요.

AWS-Cloud de Confiance VPN 및 네트워크 연결

네트워크 연결을 설정하는 데 문제가 있는 경우 다음을 수행하세요.

  • AWS 콘솔과 Cloud de Confiance 콘솔 모두에서 VPN 연결이 실행 중인지 확인합니다.
  • VPN 로그에서 오류 또는 삭제된 패킷이 있는지 확인합니다.
  • AWS 및Cloud de Confiance 에서 라우팅 테이블이 올바르게 구성되었는지 확인합니다.
  • AWS 보안 그룹 및 Cloud de Confiance 방화벽 규칙에서 필요한 포트가 열려 있는지 확인합니다.

VPN 연결 구성에 관한 자세한 내용은 AWS-Cloud de Confiance VPN 및 네트워크 연결 만들기를 참고하세요.

Cloud SQL 인스턴스 액세스

네트워크 구성을 설정하는 데 문제가 있는 경우 다음을 수행하세요.

  • VPC 피어링이 설정되어 있고 경로가 올바르게 구성되어 있는지 확인합니다.
  • 방화벽 규칙이 필요한 포트의 트래픽을 허용하는지 확인합니다.
  • Cloud SQL 프록시 로그에서 오류를 확인하고 올바르게 실행되고 있는지 확인합니다.
  • 네트워크 연결이 올바르게 구성되고 연결되어 있는지 확인합니다.

비공개 데이터베이스 액세스 구성에 대한 자세한 내용은 Cloud SQL 인스턴스에 연결을 참고하세요.

CSV 파일 로드 문제 해결

Cloud Storage에서 BigQuery로 CSV 데이터를 로드할 때 형식 오류, 파일 크기 제한 또는 스키마 자동 감지 문제로 인해 작업이 실패할 수 있습니다. 다음 섹션을 사용하여 일반적인 CSV 로드 오류를 해결합니다.

파싱 오류 문제 해결

CSV 파일을 파싱하는 데 문제가 있으면 로드 작업의 errors 리소스에 오류 세부정보가 채워집니다.

일반적으로 이러한 오류에서는 바이트 오프셋으로 문제가 있는 줄의 시작을 식별합니다. 압축하지 않은 파일의 경우 gcloud storage를 --recursive 인수와 함께 사용하여 관련 줄에 액세스할 수 있습니다.

예를 들어 bq load 명령어를 실행하면 오류가 발생합니다.

bq load
    --skip_leading_rows=1 \
    --source_format=CSV \
    mydataset.mytable \
    gs://my-bucket/mytable.csv \
    'Number:INTEGER,Name:STRING,TookOffice:STRING,LeftOffice:STRING,Party:STRING'

출력의 오류는 다음과 유사합니다.

Waiting on bqjob_r5268069f5f49c9bf_0000018632e903d7_1 ... (0s)
Current status: DONE
BigQuery error in load operation: Error processing job
'myproject:bqjob_r5268069f5f49c9bf_0000018632e903d7_1': Error while reading
data, error message: Error detected while parsing row starting at position: 1405.
Error: Data between close quote character (") and field separator.
File: gs://my-bucket/mytable.csv
Failure details:
- gs://my-bucket/mytable.csv: Error while reading data,
error message: Error detected while parsing row starting at
position: 1405. Error: Data between close quote character (") and
field separator. File: gs://my-bucket/mytable.csv
- Error while reading data, error message: CSV processing encountered
too many errors, giving up. Rows: 22; errors: 1; max bad: 0; error
percent: 0

위 오류에 따르면 파일에 형식 오류가 있습니다. 파일의 콘텐츠를 보려면 gcloud storage cat 명령어를 실행합니다.

gcloud storage cat 1405-1505 gs://my-bucket/mytable.csv --recursive

출력은 다음과 비슷합니다.

16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican
18,Ulysses S. Grant,"March 4, 1869",
...

파일의 출력에 따르면 "April 15, "1865에 잘못 배치된 따옴표가 문제입니다.

압축된 CSV 파일

보고된 바이트 오프셋은 비압축 파일의 위치를 참조하므로 압축된 CSV 파일은 오류 디버깅이 더 어렵습니다. 다음 gcloud storage cat 명령어는 Cloud Storage에서 파일을 스트리밍하고, 파일을 압축 해제하고, 적절한 바이트 오프셋을 식별하고, 형식 오류가 있는 줄을 출력합니다.

gcloud storage cat gs://my-bucket/mytable.csv.gz | gunzip - | tail -c +1406 | head -n 1

출력은 다음과 비슷합니다.

16,Abraham Lincoln,"March 4, 1861","April 15, "1865,Republican

할당량 오류 문제 해결

이 섹션의 정보를 사용하여 BigQuery에 CSV 파일을 로드하는 것과 관련된 할당량 또는 한도 오류를 해결하세요.

--allow_quoted_newlines 플래그와 함께 bq load 명령어를 사용하여 대용량 CSV 파일을 로드하는 경우 이 오류가 발생할 수 있습니다.

오류 메시지

Input CSV files are not splittable and at least one of the files is larger than
the maximum allowed size. Size is: ...

해결 방법

이 할당량 오류를 해결하려면 다음 안내를 따르세요.

  • --allow_quoted_newlines 플래그를 false로 설정합니다.
  • 4GB 미만의 작은 단위로 CSV 파일을 분할합니다.

BigQuery에 데이터를 로드할 때 적용되는 한도에 대한 자세한 내용은 로드 작업을 참조하세요.

스키마 자동 감지 문제 해결

CSV 파일의 스키마를 자동 감지할 때 다음 오류가 발생할 수 있습니다.

오류: Error while reading data, error message: CSV processing encountered too many errors, giving up.

이 오류는 CSV 파일에 문자열 값이 있는 헤더 행이 있고 BigQuery에서 이를 헤더로 감지하지 못한 경우에 발생할 수 있습니다. --skip_leading_rows 옵션을 사용하여 헤더 행을 건너뛸 수 있습니다.