Cloud Storage에서 데이터를 로드하는 방법 소개

이 페이지에서는 Cloud Storage에서 BigQuery로 데이터를 로드하는 방법을 간략히 설명합니다.

개요

Google Storage에서 BigQuery로 데이터를 로드할 때 허용되는 데이터 형식은 다음과 같습니다.

  • 쉼표로 구분된 값(CSV)
  • JSON(줄바꿈으로 구분)
  • Avro
  • Parquet
  • ORC
  • Cloud Datastore 내보내기
  • Cloud Firestore 내보내기

BigQuery Data Transfer Service는 Cloud Storage에서 BigQuery로 로드를 반복하는 기능을 지원합니다.

BigQuery는 다음 Cloud Storage 저장소 등급에서 데이터 로드를 지원합니다.

  • 다중 지역
  • 리전
  • Nearline
  • Coldline

위치 고려 사항

데이터 위치를 선택할 때는 다음 사항을 고려해야 합니다.

  • 데이터 로드용 Cloud Storage 버킷을 같은 위치에 배치합니다.
    • BigQuery 데이터세트가 다중 지역 위치에 있는 경우, 로드하는 데이터가 포함된 Cloud Storage 버킷은 같은 위치의 지역이나 다중 지역 버킷에 있어야 합니다. 예를 들어, BigQuery 데이터세트가 EU에 있으면 Cloud Storage 버킷은 EU 내 지역 또는 다중 지역 버킷에 있어야 합니다.
    • 데이터세트가 지역 위치에 있는 경우, Cloud Storage 버킷은 같은 위치의 지역 버킷에 있어야 합니다. 예를 들어, 데이터세트가 도쿄 지역에 있으면 Cloud Storage 버킷은 도쿄 내 지역 버킷에 있어야 합니다.
    • 예외: 데이터세트가 US 다중 리전 위치에 있는 경우 모든 리전 내 또는 다중 리전 위치에 있는 Cloud Storage 버킷에서 데이터를 로드할 수 있습니다.
  • 데이터 관리 계획을 세웁니다.
    • BigQuery 데이터세트 또는 Cloud Storage 버킷과 같은 리전 내 저장소 리소스를 선택한 경우 데이터를 지리적으로 관리하기 위한 계획을 세웁니다.

Cloud Storage 위치에 대한 자세한 내용은 Cloud Storage 문서의 버킷 위치를 참조하세요.

다른 위치 간 BigQuery 데이터 이동

데이터세트를 만든 후에는 위치를 변경할 수 없습니다. 한 위치에서 다른 위치로 데이터세트를 이동할 수도 없습니다. 한 위치에서 다른 위치로 데이터세트를 이동해야 하는 경우에는 다음 프로세스를 따르세요.

  1. 데이터세트와 같은 위치 내 지역 또는 다중 지역 Cloud Storage 버킷으로 BigQuery 테이블의 데이터를 내보냅니다. 예를 들어, 데이터세트가 EU 다중 지역 위치에 있으면 EU 내 지역 또는 다중 지역 버킷으로 데이터를 내보냅니다.

    BigQuery에서 데이터를 내보내는 경우에는 요금이 청구되지 않지만 Cloud Storage에 내보낸 데이터를 저장하는 경우에는 요금이 청구됩니다. BigQuery 내보내기에는 내보내기 작업의 제한사항이 적용됩니다.

  2. Cloud Storage 버킷에서 데이터를 새 위치 내 지역 또는 다중 지역 버킷으로 복사하거나 이동합니다. 예를 들어, 데이터를 US 다중 지역 위치에서 도쿄 지역 위치로 이동하는 경우에는 데이터가 도쿄 내 지역 버킷으로 전송됩니다. Cloud Storage 객체 전송에 대한 자세한 내용은 Cloud Storage 문서의 객체 이름 바꾸기, 복사, 이동을 참조하세요.

    지역 간에 데이터를 전송하면 Cloud Storage에 네트워크 송신 요금이 청구됩니다.

  3. 새 위치의 Cloud Storage 버킷으로 데이터를 전송한 후 새 위치에서 새 BigQuery 데이터세트를 만듭니다. 그런 다음 Cloud Storage 버킷의 데이터를 BigQuery로 로드합니다.

    BigQuery로 데이터를 로드하는 경우에는 요금이 청구되지 않지만 데이터 또는 버킷을 삭제하기 전에는 Cloud Storage에 데이터를 저장하면 요금이 청구됩니다. 데이터를 로드한 후 BigQuery에 데이터를 저장하는 경우에도 요금이 청구됩니다. BigQuery에 데이터를 로드하면 로드 작업의 제한사항이 적용됩니다.

Cloud Storage를 사용하여 대규모 데이터세트를 저장 및 이동하는 방법에 대한 자세한 내용은 빅데이터에 Cloud Storage 사용을 참조하세요.

제한사항

Cloud Storage 버킷에서 BigQuery로 데이터를 로드할 때는 다음과 같은 제한사항이 적용됩니다.

  • 데이터세트 위치가 US 이외의 값으로 설정된 경우, 지역별 또는 다중 지역 Cloud Storage 버킷은 데이터세트와 동일한 지역에 있어야 합니다.

Cloud Storage 소스 데이터의 형식에 따라 추가 제한사항이 적용될 수 있습니다. 자세한 내용은 다음을 참조하세요.

Cloud Storage URI 검색

Cloud Storage 데이터 소스에서 데이터를 로드하려면 Cloud Storage URI를 제공해야 합니다.

Cloud Storage URI는 버킷 이름과 객체(파일 이름)로 구성됩니다. 예를 들어 Cloud Storage 버킷 이름이 mybucket이고 데이터 파일 이름이 myfile.csv라면 버킷 URI는 gs://mybucket/myfile.csv가 됩니다. 데이터가 여러 개 파일로 분리되어 있으면 URI에 와일드 카드를 사용할 수 있습니다. 자세한 내용은 Cloud Storage 요청 URI를 참조하세요.

BigQuery는 처음 이중 슬래시 다음에 슬래시 여러 개가 연속으로 포함된 소스 URI를 지원하지 않습니다. Cloud Storage 객체 이름에는 연속된 슬래시('/') 문자 여러 개가 포함될 수 있습니다. 하지만 BigQuery는 연속된 슬래시 여러 개를 단일 슬래시로 변환합니다. 예를 들어 소스 URI gs://[BUCKET]/my//object//name은 Cloud Storage에서는 유효하지만 BigQuery에서는 작동하지 않습니다.

Cloud Storage URI를 가져오려면 다음 단계를 따르세요.

  1. Cloud Storage 콘솔을 엽니다.

    Cloud Storage 콘솔

  2. 소스 데이터가 포함된 객체(파일) 위치로 이동합니다.

  3. Cloud Storage 콘솔 맨 위에서 객체 경로를 확인합니다. URI를 만들기 위해 gs://[BUCKET]/[FILE]을 적절한 경로로 바꿉니다(예: gs://mybucket/myfile.json). [BUCKET]은 Cloud Storage 버킷 이름이고 [FILE]은 데이터가 포함된 객체(파일) 이름입니다.

필수 권한

BigQuery로 데이터를 로드할 때는 데이터를 신규 또는 기존 BigQuery 테이블과 파티션에 로드할 수 있는 프로젝트 또는 데이터세트 수준의 권한이 있어야 합니다. Cloud Storage에서 데이터를 로드하는 경우에는 데이터가 포함된 버킷에 대한 액세스 권한도 필요합니다.

BigQuery 권한

Cloud Storage에서 BigQuery로 데이터를 로드할 때는 프로젝트 수준이나 데이터세트 수준에서 bigquery.dataOwner 또는 bigquery.dataEditor 역할을 부여 받아야 합니다. 두 역할 모두 사용자와 그룹에게 데이터를 새로운 테이블에 로드하거나 기존 테이블에 추가 또는 덮어쓸 수 있는 권한을 부여합니다.

사용자나 그룹이 프로젝트 수준의 역할을 부여 받으면 프로젝트 내의 모든 데이터세트에 있는 테이블에 데이터를 로드할 수 있는 권한이 제공됩니다. 사용자나 그룹이 데이터세트 수준의 역할을 부여 받으면 데이터를 해당 데이터세트의 테이블에만 로드할 수 있습니다.

데이터세트 액세스 권한 구성에 대한 자세한 내용은 데이터세트에 대한 액세스 제어를 참조하세요. BigQuery의 IAM 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.

Cloud Storage 권한

Cloud Storage 버킷에서 데이터를 로드하려면 프로젝트 수준이나 개별 버킷에서 storage.objects.get 권한을 부여 받아야 합니다. URI 와일드 카드를 사용하는 경우에는 storage.objects.list 권한도 있어야 합니다.

사전 정의된 IAM 역할 storage.objectViewer를 부여받으면 storage.objects.get 권한과 storage.objects.list 권한이 제공됩니다.

Cloud Storage 액세스 및 스토리지 로그

Cloud Storage는 분석을 위해 BigQuery로 직접 가져올 수 있는 CSV 형식의 액세스 및 저장소 로그 파일을 제공합니다. Cloud Storage 로그 로드 및 분석에 대한 자세한 내용은 Cloud Storage 문서에서 액세스 로그 및 저장소 로그를 참조하세요.

Cloud Storage URI의 와일드 카드 지원

Cloud Storage 데이터가 공통된 기본 이름을 공유하는 여러 파일로 분리되어 있는 경우, 데이터를 로드할 때 URI에 와일드 카드를 사용할 수 있습니다.

Cloud Storage URI에 와일드 카드를 추가하려면 기본 이름에 별표(*)를 추가합니다. 예를 들어, fed-sample000001.csvfed-sample000002.csv라는 파일 두 개가 있다면 버킷 URI는 gs://mybucket/fed-sample*이 됩니다. 그런 다음 이 와일드 카드 URI를 콘솔, 기본 UI, CLI 또는 API에서 사용할 수 있습니다.

버킷 내의 객체(파일 이름)에 와일드 카드 하나만 사용할 수 있습니다. 와일드 카드는 객체 이름 중간이나 끝에 입력할 수 있습니다. 버킷 이름에 와일드 카드를 추가하는 것은 지원되지 않습니다.

Google Cloud Datastore 내보내기의 경우 하나의 URI만 지정할 수 있으며 .backup_info 또는 .export_metadata로 끝나야 합니다.

다음과 같은 경우에는 * 와일드 카드 문자가 허용되지 않습니다.

  • Cloud Datastore 또는 Cloud Firestore 내보내기에 연결된 외부 테이블을 만드는 경우
  • Cloud Storage의 Cloud Datastore 또는 Cloud Firestore 내보내기 데이터를 로드하는 경우

다음 단계

데이터 형식별로 해당 문서를 참조하여 Cloud Storage에서 BigQuery로 데이터를 로드하는 방법을 알아보세요.

Cloud Storage에서 BigQuery로 로드를 반복하는 방법을 알아보려면 Cloud Storage 전송을 참조하세요.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.