안녕하세요. MC에몽입니다.
오늘은 GCP의 Serverless Data Warehouse 제품인 BigQuery의 Clustering 기능에 대해 알아보는 시간을 가지겠습니다.
BigQuery는 Partitioning 기능을 이용해 데이터를 어느 구역에 저장할 지 정할 수 있습니다.
Clustering은 Partitioning 나눈 구역을 일정한 순서에 맞게 데이터를 정렬 시키는 역할을 수행합니다. Columns 값을 기준으로 데이터를 집계하는 쿼리를 제출할 시, 정렬된 블록이 유사한 값으로 행을 배치하기 때문에 성능이 개선됩니다.여러 열을 사용해 테이블을 clustering할 때는 Columns 순서에 따라 데이터 정렬 순서가 달라지기 때문에 Columns 순서 지정이 중요합니다. Clustering columns은 최대 4개 지정 가능합니다.
다음은 clustering 기능을 사용할 때 필요한 권한입니다.
- bigquery.tables.create
- bigquery.tables.updateData
- bigquery.jobs.create
다음은 clustering 기능의 장,단점을 살펴보도록 하겠습니다.
1. 장점.
- Columns을 필터링하는 쿼리나 데이터를 집계하는 쿼리와 같은 특정 유형 쿼리의 성능에 대해 개선이 가능합니다.
- 정렬된 블록을 사용하여 불필요한 데이터 검색을 줄일 수 있습니다.
- Clustering Columns 의 값을 기준으로 데이터를 집계하는 쿼리를 제출하면 정렬된 블록이 유사한 값으로 행을 배치하기 때문에 성능 개선이 가능합니다.
2. 단점
- Partitioning 단독 사용 시 보다 많은 세부 설정 필요합니다.
- Clustering 테이블 쿼리 및 결과는 표준 SQL만 지원합니다.
- Clustering은 table 생성 시에만 clustering columns 지정 가능합니다.
- 수정이 불가하여 생성 시 주의하여야 합니다.
- Clustering columns은 top-level이 반복되지 않아야합니다.
- STRING type 사용의 경우 BigQuery는 처음 1,024자만 사용하여 데이터 clustering이 가능합니다.
- 아래 types만을 지원합니다.
DATE
BOOL
GEOGRAPHY
INT64
NUMERIC
BIGNUMERIC
STRING
TIMESTAMP
DATETIME
See you later!
참고자료
[1] https://cloud.google.com/bigquery/docs/creating-clustered-tables?hl=ko#required_permissions
[2] https://cloud.google.com/bigquery/docs/clustered-tables?hl=ko
[3] https://cloud.google.com/bigquery/docs/creating-clustered-tables?hl=ko
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
Cloud Dataproc (0) | 2022.07.15 |
---|---|
Persistent Disk 및 Cloud SQL로 GKE에 WordPress 배포 (0) | 2022.07.09 |
[Google Cloud Platform] 스토리지, 컨테이너 (0) | 2022.07.08 |
Cloud VPN (0) | 2022.07.05 |
[Google Cloud Platform] GCP 스토리지, 컨테이너 (0) | 2022.07.04 |
댓글