- 인쇄
- PDF
전송처 - Google BigQuery
- 인쇄
- PDF
개요
Google Cloud의 BigQuery로 데이터를 전송하는 설정 도움말 페이지입니다.
TROCCO의 제품 사이트에서는 고객의 도입 사례를 소개하고 있습니다.
본 도움말 페이지와 함께 참고하시기 바랍니다.
제약조건
- Google BigQuery 측의 제약
- 전송할 수 있는 파일 크기 등에 제한이 있습니다.
- 자세한 내용은 BigQuery 공식 문서 - 할당량 및 한도를 참고하세요.
설정 항목
STEP1 기본 설정
항목 | 필수 | 기본값 | 내용 |
---|---|---|---|
Google BigQuery 연결 정보 | 예 | ----------------------------------------------------------------------------------------------. | 미리 등록되어 있는 Google BigQuery 접속 정보 중 이번 전송 설정에 필요한 권한을 가진 것을 선택합니다. |
데이터 세트 | 예 | ----------------------------------------------------------------------------------------------. | 전송할 데이터 세트 이름을 선택합니다. |
테이블 | 예 | ----------------------------------------------------------------------------------------------. | 전송할 테이블 이름을 선택합니다. 대상 테이블이 전송 대상 데이터 세트에 존재하지 않는 경우 자동으로 테이블이 생성됩니다. |
데이터 세트 위치 | 예 | US (미국) | 전송할 데이터 세트의 위치를 지정합니다. 도쿄 지역을 지정하려면 asia-northeast1을 입력합니다. 지정할 수 있는 위치에 대한 자세한 내용은 BigQuery 공식 문서 - BigQuery 위치에서 확인할 수 있습니다. |
데이터 세트 자동 생성 옵션 | 예 | 생성하지 않음 | 지정한 데이터 세트가 대상 프로젝트 산하에 존재하지 않는 경우 자동으로 생성합니다. |
전송 모드 | 예 | 추기 (APPEND) | 전송 모드를 선택합니다. 자세한 내용은 후술하는 전송 모드에 대해 참고하세요. |
각각 명칭상의 제약이 있습니다.
- 데이터 세트 이름(STEP1에서 지정)
- 영문, 숫자, 언더스코어로만 구성되어야 합니다.
- 공백이나 특수문자는 포함할 수 없습니다.
- 자세한 내용은 BigQuery 공식 문서 - 데이터 세트 생성을 참조하세요.
- 테이블 이름(STEP1에서 지정)
- 다양한 문자( 숫자, 밑줄, 하이픈, 공백 등 )로 구성할 수 있습니다.
- 자세한 내용은 BigQuery 공식 문서 - 테이블 생성 및 사용에서 확인할 수 있습니다.
- 컬럼 이름(STEP2 컬럼 정의에서 지정)
- 영문, 숫자, 언더스코어로만 구성되어야 합니다.
- 열 이름의 시작은 영문 또는 밑줄로 시작해야 합니다.
- 공백이나 특수문자는 포함할 수 없습니다.
- 자세한 내용은 BigQuery 공식 문서 - 스키마 지정에서 확인할 수 있습니다.
STEP2 출력 옵션
항목 | 내용 |
---|---|
컬럼 설정 | 후술할 컬럼 설정을 참고하세요. |
스키마 정보를 템플릿으로 참조하는 테이블 | BigQuery에 테이블을 새로 생성할 때 스키마로 BigQuery 측에 이미 존재하는 테이블의 스키마를 활용할 수 있습니다. 이 경우, 전송 설정 STEP1에서 지정한 데이터셋 아래에 있는 테이블 이름을 입력합니다. |
파티셔닝 | 후술하는 파티션 클러스터링 설정을 참고하세요. |
클러스터링 | 후술하는 파티션 클러스터링 설정을 참고하세요. |
STEP2 출력 옵션의 아래 설정은 테이블을 새로 생성하는 경우에만 적용됩니다.
- 컬럼 설정
- 스키마 정보를 템플릿으로 참조하는 테이블
- 파티셔닝
- 클러스터링
구체적으로 다음과 같은 조건에서 작업을 실행할 때 적용됩니다.
- 전송 대상 테이블이 존재하지 않는 경우
- 전송 모드에서 전건 교체
(REPLACE)
를 선택한 경우- 이 경우, 전송할 때마다 전송 대상 테이블의 스키마가 업데이트되기 때문에 위의 설정 내용이 매번 적용된다.
보충 사항
전송 모드에 대하여
아래 설명은 모두 전송 대상 테이블이 이미 존재하는 경우의 동작입니다.
전송 대상 테이블이 존재하지 않는 경우, 두 모드 모두 테이블을 새로 생성합니다.
전송 모드 | 스키마 변경 | 트랜잭션 | 행동 | 보충자료 |
---|---|---|---|---|
추기 (APPEND) | No | 예 | 표에 대한 추가 사항을 아래와 같이 추가합니다.
| |
추기 (APPEND DIRECT) | No | No | 표를 아래와 같이 추가합니다.
| (APPEND) 모드에 비해 처리 시간은 짧지만, 트랜잭션은 담보되지 않는다. |
전건 리필 (DELETE IN ADVANCE) | No | No | 테이블 세척은 다음과 같이 진행합니다.
| |
전건 교체 (REPLACE) | 예 | 예 | 테이블 세척은 다음과 같이 진행합니다.
|
전송 대상 Google BigQuery의 전송 모드에는 UPSERT(MERGE)
가 없습니다.
UPSERT (MERGE)
를 수행하고자 하는 경우의 대안은 DWH의 마스터 테이블을 중복 없이 효율적으로 업데이트하기에서 설명하고 있습니다.
꼭 참고하시기 바랍니다.
BigQuery API 레퍼런스 - Job의writeDisposition
필드를 참조하세요.
컬럼 설정
컬럼에 대한 세부적인 설정을 할 수 있습니다.
자세한 내용은 BigQuery 공식 문서 - 스키마 지정에서 확인할 수 있습니다.
항목 | 내용 |
---|---|
칼럼명 | 전송 설정 STEP2 컬럼 정의의****컬럼 이름 목록에서 선택합니다. |
데이터 유형 | 컬럼의 데이터 타입을 명시적으로 지정하고 싶을 때 선택합니다. |
모드 | 컬럼의 모드를 명시적으로 지정하고 싶을 때 선택합니다. |
날짜 형식 | 전송 설정 STEP2 컬럼 정의에서timestamp 타입으로 정의된 컬럼을 STRING 타입으로 전송하고자 할 때, 전개 시 사용할 날짜 형식을 입력할 수 있습니다. |
시간대 | 전송 설정 STEP2 컬럼 정의에서timestamp 타입으로 정의된 컬럼을 STRING 타입 또는 DATETIME 타입으로 전송하고자 할 때, 배포 시 사용할 타임존을 입력할 수 있습니다. |
설명 | 컬럼에 대한 설명을 입력할 수 있습니다. 스키마 정보를 템플릿으로 참조하는 테이블을 이용하는 경우에도 본 항목에서 입력한 내용이 우선적으로 반영됩니다. |
파티셔닝 클러스터링 설정
파티셔닝 및 클러스터링에 대한 자세한 내용은 파티션 분할 테이블 개요, 클러스터링 테이블 개요를 각각 참고하시기 바랍니다.
항목 | 필수 | 내용 |
---|---|---|
파티셔닝 | ✓ | 다음 중 하나를 선택할 수 있습니다. |
파티션 필드 | ✓ | 필드에 따라 분할을 선택했을 때 입력합니다.DATE , TIMESTAMP , DATETIME 중 한 가지 유형의 열 이름을 입력하세요. |
파티션 유형 | ✓ | 파티셔닝에서 분할 방식 중 하나를 선택한 경우 선택합니다. 테이블 분할의 세분화 정도를 아래에서 선택해 주세요. |
클러스터링 | ----------------------------------------------------------------------------------------------. | 클러스터화 테이블을 생성하고 싶을 때 설정할 수 있습니다. 클러스터링 컬럼에 컬럼 이름을 입력하면 해당 컬럼을 기준으로 테이블이 클러스터링된다. 클러스터화 열은 최대 4개까지 지정할 수 있습니다. |
파티션의 수명 | ----------------------------------------------------------------------------------------------. | 파티션의 유효기간을 지정할 수 있습니다. 자세한 내용은 파티션 만료일 설정하기를 참고하세요. |
파티셔닝 클러스터링 설정은 테이블을 새로 생성할 때만 유효합니다.
출력처에 이미 테이블이 존재하는 경우, 본 설정의 내용이 아닌 기존 테이블의 설정 내용으로 작업이 실행됩니다.
Google BigQuery의 사양상 파티션의 경계는 UTC 시간을 기준으로 합니다. 주의하시기 바랍니다.
TROCCO에서는 특정 INTEGER
열의 값을 기준으로 테이블을 분할하는 정수 범위 파티셔닝을 지원하지 않습니다.
필요한 권한
이용에 필요한 권한은 다음과 같습니다.
bigquery.datasets.create
bigquery.datasets.get
bigquery.jobs.create
bigquery.tables.create
bigquery.tables.delete
bigquery.tables.export
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.list
bigquery.tables.update
bigquery.tables.updateData