[ Google - GCP ] 솔루션: BigQuery 오류, 잘못된 uri 사양. 옵션 uri 값은 와일드카드 URI여야 합니다.

문제 설명

Google Cloud의 데이터베이스 웨어하우스인 BigQuery를 사용하여 GS 버킷으로 데이터를 내보내는 과정에서 오류가 발생했습니다.

URI 사양이 잘못되었습니다. 옵션 'uri' 값은 와일드카드 URI여야 합니다.

  • 실행되는 BigQuery 문은 다음과 같습니다.
EXPORT DATA OPTIONS(
  uri='gs://test_bucket/GENERATEDB_DATA.csv',
  format='CSV',
  overwrite=true,
  header=true,
  field_delimiter=',') AS
SELECT * FROM `test.test_table`
limit 50;

실행 후 아래 그림과 같이 명령 창에 오류 메시지가 나타납니다.

여기에 이미지 설명을 삽입하세요.

원인 분석:

오류 메시지에서 볼 수 있듯이 오류의 원인은 URI가 올바르지 않기 때문입니다. 최종 해결 방법은 URI의 경로를 수정하는 것입니다. 그런데 왜 잘못된가요? 이에 대한 설명은 다음과 같습니다.

먼저, GCP의 일반적인 공식 수출 데이터 설명은 다음과 같습니다.

EXPORT DATA OPTIONS(
  uri='gs://bucket/folder/*.csv',
  format='CSV',
  overwrite=true,
  header=true,
  field_delimiter=';') AS
SELECT field1, field2 FROM mydataset.table1 ORDER BY field1 LIMIT 10

위의 uri 값은 고정된 쓰기 방법입니다 gs:// + bucket的名字 + 文件夹(可选) + 通配的csv文件名. EXPORT DATA 구문은 내보내기를 위해 단일 파일을 직접 쓰는 것을 지원하지 않습니다. 공식 지침을 보려면 여기를 클릭하세요 .


해결책:

EXPORT DATA 구문을 수정하고 uri를 와일드카드 표현식으로 변경합니다. 코드는 다음과 같습니다.

EXPORT DATA OPTIONS(
  uri='gs://test_bucket/GENERATEDB_DATA_*.csv',
  format='CSV',
  overwrite=true,
  header=true,
  field_delimiter=',') AS
SELECT * FROM `test.test_table`
limit 50;

최종 실행이 다시 성공하면 내보낸 파일을 GS 버킷에서 볼 수 있습니다.

여기에 이미지 설명을 삽입하세요.

추가됨 : BigQuery는 각 URI에서 단일 와일드카드 연산자(*)를 지원합니다. 와일드카드는 URI의 어느 위치에나 나타날 수 있지만 버킷 이름에는 포함될 수 없습니다. 제공된 패턴을 기반으로 여러 샤드 파일을 생성하도록 BigQuery에 지시하려면 와일드 카드 연산자를 사용하세요. 와일드카드 연산자는 숫자(0부터 시작)를 왼쪽에 추가된 12비트로 바꿉니다. 예를 들어, URI의 파일 이름 끝에 와일드카드 문자가 있는 경우 파일이 생성될 때 첫 번째 파일의 이름 끝에는 000000000000이 추가되고, 두 번째 파일의 이름에는 000000000001이 추가됩니다. 등등.

[ 本文作者 ]   bluetata
[ 原文链接 ]   https://bluetata.blog.csdn.net/article/details/135508108
[ 最后更新 ]   01/10/2024 18:16
[ 版权声明 ]   如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。

추천

출처blog.csdn.net/dietime1943/article/details/135508108