Amazon s3에서 모바일 애플리케이션의 이미지를 저장하는 가장 효율적인 방법

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Amazon S3용 BigQuery Data Transfer Service를 사용하면 Amazon S3에서 BigQuery로 반복되는 로드 작업을 자동으로 예약하고 관리할 수 있습니다.

지원되는 파일 형식

BigQuery Data Transfer Service는 현재 다음 형식 중 하나로 Amazon S3에서 데이터를 로드할 수 있습니다.

  • 쉼표로 구분된 값(CSV)
  • JSON(줄바꿈으로 구분)
  • Avro
  • Parquet
  • ORC

지원되는 압축 유형

Amazon S3용 BigQuery Data Transfer Service는 압축 데이터 로드를 지원합니다. BigQuery Data Transfer Service에서 지원되는 압축 유형은 BigQuery 로드 작업에서 지원되는 압축 유형과 동일합니다. 자세한 내용은 압축 데이터 및 압축되지 않은 데이터 로드를 참조하세요.

Amazon S3 기본 요건

Amazon S3 데이터 소스에서 데이터를 로드하려면 다음과 같은 기본 요건이 필요합니다.

  • 소스 데이터의 Amazon S3 URI를 제공해야 합니다.
  • 액세스 키 ID가 있어야 합니다.
  • 보안 비밀 액세스 키가 있어야 합니다.
  • Amazon S3 소스 데이터에 최소한 AWS 관리 정책 AmazonS3ReadOnlyAccess를 설정합니다.

Amazon S3 URI

Amazon S3 URI를 제공할 때 경로는 s3://bucket/folder1/folder2/... 형식이어야 합니다. 최상위 수준 버킷 이름만 필요합니다. 폴더 이름은 선택사항입니다. 버킷 이름만 포함된 URI를 지정하면 버킷의 모든 파일이 전송되어 BigQuery로 로드됩니다.

Amazon S3 전송 런타임 매개변수화

Amazon S3 URI와 대상 테이블이 모두 매개변수화될 수 있으므로 날짜별로 구성된 Amazon S3 버킷에서 데이터를 로드할 수 있습니다. URI의 버킷 부분은 매개 변수화할 수 없습니다. Amazon S3 전송에 사용되는 매개변수는 Cloud Storage 전송에 사용되는 매개변수와 동일합니다.

자세한 내용은 전송에 런타임 매개변수 사용을 참조하세요.

Amazon S3 URI의 와일드 카드 지원

소스 데이터가 기본 이름을 공유하는 여러 파일로 분리되는 경우, 데이터를 로드할 때 URI에 와일드 카드를 사용할 수 있습니다. 와일드 카드는 별표(*) 하나로 구성되며, 버킷 이름을 제외하고 Amazon S3 URI의 어느 곳에나 사용할 수 있습니다.

Amazon S3 URI에는 두 개 이상의 와일드 카드를 사용할 수 있지만, Amazon S3 URI에 와일드 카드를 하나만 지정하면 어느 정도 최적화가 가능합니다.

  • 전송 실행당 최대 파일 수에는 상한이 있습니다.

  • 와일드 카드는 디렉터리 경계를 포괄합니다. 예를 들어 Amazon S3 URI s3://my-bucket/*.csv는 파일 s3://my-bucket/my-folder/my-subfolder/my-file.csv과 일치합니다.

Amazon S3 URI 예시

예시 1

단일 파일을 Amazon S3에서 BigQuery로 로드하려면 파일의 Amazon S3 URI를 지정합니다.

s3://my-bucket/my-folder/my-file.csv

예시 2

Amazon S3 버킷의 모든 파일을 BigQuery로 로드하려면 버킷 이름만 지정하고 와일드 카드는 사용하거나 사용하지 않아도 됩니다.

s3://my-bucket/

또는

s3://my-bucket/*

와일드 카드는 버킷 이름에 사용할 수 없으므로 s3://my-bucket*는 허용되는 Amazon S3 URI가 아닙니다.

예시 3

공통 프리픽스를 공유하는 Amazon S3의 모든 파일을 로드하려면 공통 프리픽스 다음에 와일드 카드를 지정합니다.

s3://my-bucket/my-folder/*

최상위 Amazon S3 버킷의 모든 파일을 로드할 때와 달리, 로드할 파일의 Amazon S3 URI 끝에 와일드 카드를 지정해야 합니다.

예시 4

유사한 경로를 가진 Amazon S3의 모든 파일을 로드하려면 공통 프리픽스와 와일드 카드를 차례로 지정합니다.

s3://my-bucket/my-folder/*.csv

예시 5

와일드 카드는 디렉터리를 포괄하므로 my-foldermy-folder의 하위 폴더에 있는 모든 csv 파일이 BigQuery에 로드됩니다.

소스 파일이 logs 폴더에 있는 경우:

s3://my-bucket/logs/logs.csv
s3://my-bucket/logs/system/logs.csv
s3://my-bucket/logs/some-application/system_logs.log
s3://my-bucket/logs/logs_2019_12_12.csv

이를 식별하려면 다음을 사용합니다.

s3://my-bucket/logs/*

예 6

이러한 소스 파일을 가지고 있지만 파일 이름이 logs.csv인 파일만 전송하려는 경우:

s3://my-bucket/logs.csv
s3://my-bucket/metadata.csv
s3://my-bucket/system/logs.csv
s3://my-bucket/system/users.csv
s3://my-bucket/some-application/logs.csv
s3://my-bucket/some-application/output.csv

이름에 logs.csv가 있는 파일을 식별하려면 다음을 사용합니다.

s3://my-bucket/*logs.csv

예 7

여러 개의 와일드 카드를 사용하면 하한값을 포기하는 대신 전송할 파일을 더 세밀하게 제어할 수 있습니다. 여러 개의 와일드 카드를 사용하면 각 와일드 카드가 하위 디렉터리 내의 경로 끝에만 일치합니다. 예를 들어 Amazon S3의 소스 파일이 다음과 같은 경우:

s3://my-bucket/my-folder1/my-file1.csv
s3://my-bucket/my-other-folder2/my-file2.csv
s3://my-bucket/my-folder1/my-subfolder/my-file3.csv
s3://my-bucket/my-other-folder2/my-subfolder/my-file4.csv

my-file1.csvmy-file2.csv만 전송하려면 Amazon S3 URI의 값으로 다음을 사용합니다.

s3://my-bucket/*/*.csv

이 경우에는 와일드 카드가 디렉터리를 포괄하지 않으므로 이 URI는 전송을 my-folder1my-other-folder2에 있는 csv 파일로만 제한합니다. 하위 폴더는 전송에 포함되지 않습니다.

AWS 액세스 키

액세스 키 ID와 보안 비밀 액세스 키를 사용하여 사용자 대신 Amazon S3 데이터에 액세스할 수 있습니다. 가장 좋은 방법은 BigQuery Data Transfer Service에 대한 최소한의 액세스 권한만 부여하도록 Amazon S3 전송을 위한 고유한 액세스 키 ID와 보안 비밀 액세스 키를 만드는 것입니다. 액세스 키 관리에 대한 자세한 내용은 AWS 일반 참조 문서를 참조하세요.

일관성 관련 고려사항

Amazon S3에서 데이터를 전송할 때, 특히 아주 최근에 파일을 버킷에 추가한 경우 일부 데이터가 BigQuery로 전송되지 않을 수 있습니다. 파일을 버킷에 추가한 후 약 10분이 경과해야 BigQuery Data Transfer Service에서 사용할 수 있습니다.

그러나 경우에 따라 10분 이상이 소요될 수도 있습니다. 파일을 버킷에 추가한 후 최소 10분 후에 Amazon S3 전송이 수행되도록 예약하면 데이터 누락 가능성을 줄일 수 있습니다. Amazon S3 일관성 모델에 대한 자세한 내용은 Amazon S3 문서의 Amazon S3 데이터 일관성 모델을 참조하세요.

이그레스 비용 권장사항

대상 테이블이 제대로 구성되지 않으면 Amazon S3에서 전송이 실패할 수 있습니다. 부적절한 구성이 발생할 수 있는 이유는 다음과 같습니다.

  • 대상 테이블이 존재하지 않음
  • 테이블 스키마가 정의되지 않음
  • 테이블 스키마가 전송되는 데이터와 호환되지 않음

Amazon S3 이그레스 비용을 피하려면 먼저 파일의 작지만 대표적인 하위 집합을 사용하여 전송을 테스트해야 합니다. 작다는 것은 테스트할 데이터 크기가 작고 파일 수가 적어야 함을 의미합니다.

가격 책정

BigQuery Data Transfer Service 가격 책정에 대한 자세한 내용은 가격 책정 페이지를 참조하세요.

이 서비스를 사용하면 Google 외부에서 비용이 발생할 수 있습니다. 자세한 내용은 Amazon S3 가격 책정 페이지를 참조하세요.

할당량 및 한도

BigQuery Data Transfer Service는 로드 작업을 사용하여 Amazon S3 데이터를 BigQuery에 로드합니다. 로드 작업에 대한 모든 BigQuery 할당량 및 한도는 다음과 같은 추가 고려 사항과 함께 반복되는 Amazon S3 전송에 적용됩니다.

한도
로드 작업 전송 실행당 최대 크기 15TB
Amazon S3 URI에 0개 또는 1개의 와일드 카드가 포함된 경우 전송 실행당 최대 파일 수 10,000,000개 파일
Amazon S3 URI에 두 개 이상의 와일드 카드가 포함된 경우 전송 실행당 최대 파일 수 10,000개 파일

다음 단계

  • Amazon S3 전송 설정 알아보기
  • S3 전송에 런타임 매개변수 사용 알아보기
  • BigQuery Data Transfer Service 자세히 알아보기

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2022-10-04 UTC.

[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"이해하기 어려움" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"잘못된 정보 또는 샘플 코드" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"필요한 정보/샘플이 없음" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }]