BigQuery 대상에 파티션 나누기와 클러스터링을 구성하면 쿼리 성능을 최적화하고 비용을 제어할 수 있습니다. 파티셔닝과 클러스터링을 사용하면 쿼리 실행 중에 BigQuery가 스캔해야 하는 데이터의 양을 줄일 수 있습니다.
테이블 파티션 나누기
테이블 파티셔닝은 테이블을 파티션이라고 하는 세그먼트로 분할하여 데이터를 더 쉽게 관리하고 쿼리할 수 있도록 합니다. 테이블을 분할하는 데 사용되는 파티션 열을 지정하여 테이블을 분할합니다.
Datastream은 BigQuery 테이블에 대해 다음 세 가지 유형의 파티셔닝을 지원합니다.
수집 시간별 파티셔닝: Datastream이 BigQuery로 데이터를 수집하는 시간을 기준으로 테이블을 파티션으로 나눌 수 있습니다. 수집 시간 파티션 나누기에 시간별, 일별, 월별 또는 연별 세부사항을 선택할 수 있습니다. 기본 기간 단위는 일별입니다.
시간 단위로 파티셔닝: Datastream이
DATE,DATETIME또는TIMESTAMPBigQuery 데이터 유형 중 하나에 매핑하는 데이터 유형의 소스 열을 기반으로 테이블을 파티셔닝할 수 있습니다. Datastream이 소스 데이터 유형을 BigQuery 데이터 유형에 매핑하는 방법에 대한 자세한 내용은 BigQuery의 데이터 유형 매핑을 참고하세요.소스 열이 매핑되는 BigQuery 데이터 유형에 따라 다음 세부사항 유형 중 하나를 선택할 수 있습니다.
DAY,MONTH,YEAR:DATE데이터 유형HOUR,DAY,MONTH,YEAR:DATETIME및TIMESTAMP데이터 유형의 경우
정수 범위별 파티셔닝: Datastream이 BigQuery
INTEGER데이터 유형에 매핑하는 데이터 유형의 소스 열을 기준으로 테이블을 파티셔닝할 수 있습니다. 다음 정보를 제공해야 합니다.- 시작: 첫 번째 파티션 범위의 시작 값 (해당 값 포함)
- End: 마지막 파티션 범위의 종료 값 (해당 값 제외)
- Interval: 각 파티션 범위의 너비입니다.
자세한 내용은 정수 범위 파티션 나누기를 참고하세요.
스트림의 파티셔닝을 구성하는 방법은 스트림의 소스 데이터베이스에 대한 정보 구성을 참고하세요.
테이블 클러스터링
클러스터링은 클러스터링 열의 값을 기준으로 테이블의 데이터를 정렬하고 비슷한 값이 있는 데이터를 같은 위치에 배치합니다. 클러스터링된 열을 기준으로 필터링하는 쿼리는 전체 테이블 또는 테이블 파티션 대신 관련 데이터 블록만 스캔합니다. 이렇게 하면 쿼리 성능을 개선하고 쿼리 비용을 줄일 수 있습니다.
최대 4개의 열을 기준으로 BigQuery 테이블을 클러스터링할 수 있습니다. 열을 지정하는 순서에 따라 데이터의 정렬 순서가 결정됩니다.
Datastream이 다음 BigQuery 데이터 유형 중 하나에 매핑되는 데이터 유형의 소스 열을 기반으로 테이블을 클러스터링할 수 있습니다.
BIGNUMERICBOOLEANDATEDATETIMEGEOGRAPHYINT64NUMERICRANGESTRINGTIMESTAMP
Datastream이 소스 데이터 유형을 BigQuery 데이터 유형에 매핑하는 방법에 대한 자세한 내용은 BigQuery의 데이터 유형 매핑을 참고하세요.
스트림의 클러스터링을 구성하는 방법은 스트림의 소스 데이터베이스에 대한 정보 구성을 참고하세요.
제한사항
BigQuery의 파티셔닝 제한사항은 파티션을 나눈 테이블 소개를 참고하세요.
BigQuery의 클러스터링 제한사항은 클러스터링된 테이블 소개를 참고하세요.
BigQuery 파티션을 나눈 테이블에 적용되는 할당량 한도는 할당량 및 한도를 참고하세요.
또한 Datastream을 사용할 때는 다음 제한사항이 적용됩니다.
- 파티셔닝과 클러스터링은 Datastream이 새 BigQuery 테이블을 만들 때만 적용됩니다. 기존 테이블의 파티셔닝 및 클러스터링 설정을 구성하거나 수정하려면 먼저 BigQuery에서 테이블을 삭제한 후 Datastream에서 설정을 구성하거나 수정하세요.
- MongoDB 소스의 경우 수집 시간으로만 테이블을 파티셔닝할 수 있습니다.
- MongoDB 데이터베이스에는 클러스터링이 지원되지 않습니다.
다음 단계
- BigQuery의 파티셔닝에 대해 자세히 알아보려면 파티션을 나눈 테이블 소개 및 파티션을 나눈 테이블 관리를 참고하세요.
- BigQuery의 클러스터링에 대한 자세한 내용은 클러스터링된 테이블 소개 및 클러스터링된 테이블 관리를 참고하세요.
- 스트림에 관한 자세한 내용은 스트림 수명 주기를 참고하세요.
- 스트림을 만드는 방법은 스트림 만들기를 참고하세요.
- BigQuery에 대해 자세히 알아보려면 BigQuery 대상을 참고하세요.