안녕하세요, 엄팀입니다.
드디어 무더위가 가시고 있는 것 같네요. BTC분들 모두 장마철 빗길 조심하고 환절기 대비 잘 하시길 바랍니다.
금일의 포스팅 주제는 BigQuery가 제공하는 Data Set입니다.
Data Set은 Table과 View에 대한 Access를 구성 및 제어하는 데 사용되는 최상위 Container입니다.
Table이나 View는 반드시 Data Set에 속해야 하므로, 개발자는 최소 한 개 이상의 Data Set을 만든 후에 Data를 BigQuery로 Load해야 합니다.
Data Set을 생성하기 위해선 Data를 저장할 위치를 지정해야 합니다. us-west2, asia-northeast3, europe-west2 등의 Region을 지정해야 하는데, GCP가 지원하는 저장 위치는 https://cloud.google.com/bigquery/docs/locations?hl=ko 해당 링크를 참고해주세요.
Data Set의 위치는 Data Set 생성 당시에만 설정할 수 있습니다.
또한 Query에서 참조하는 모든 Table은 같은 위치의 Data Set에 저장돼있어야 합니다.
Table을 복사할 때, Source Table과 Target Table을 포함하는 Data Set는 같은 위치에 있어야 합니다.
마지막으로, Project마다 Data Set의 이름은 유일성을 가져야 합니다.
Data Set을 생성하기 위해선
bigquery.datasets.create
Permission이 필요하며, 해당 Permission을 가지고 있는 Role은 아래와 같습니다.
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.user
roles/bigquery.admin
Data Set의 이름은 최대 1,024자(영문 기준)를 허용하며 문자, 숫자, 밑줄(_)로 지정할 수 있습니다.
대소문자를 구분하기에 dataset_01과 DATASET_01은 다른 Data Set으로 구분되며,
이름에 공백이나 이외 특수문자를 사용할 수는 없습니다.
Data Set을 생성하는 방법으론 Console, bq 명령어, SQL Query 사용 등이 있으며 금일은 bq 명령어로 생성하는 방법을 알아보겠습니다.
bq mk 명령어를 이용하여 다음과 같이 생성합니다.
bq --location=[Location명] mk \
--dataset \
--default_kms_key=[KMS Key명] \
--default_partition_expiration=[Partition 만료 시간] \
--default_table_expiration=[Table 만료 시간] \
--description=[Description 내용] \
--label=[Label명]:[Key:Value] \
--max_time_travel_hours=[Time Travel 시간] \
[Project ID]:[Data Set명]
Data Set을 나열(List)하기 위해선 해당 Project에 대한
roles/bigquery.metadataViewer
bigquery.datasets.get
Permission이 있어야합니다.
bq ls 명령어를 이용하여 다음과 같이 실행합니다.
bq ls --filter labels.[Key명]:[Value] \
--max_results [나열할 Data Set의 개수] \
--format=[Format 형식] \
--project_id [Project ID]
Data Set의 정보를 가져오기 위해선 bq show 명령어를 이용하여 다음과 같이 실행합니다.
bq show --format=[Format 형식] [Project ID]:[Data Set명]
오늘은 Data Set의 개념과 생성, 나열, 정보 확인에 대해서 알아보았습니다.
bq 명령어가 생소할 수도 있지만, 알아두면 유용하고 간편하게 활용할 수 있습니다.
오늘 포스팅은 여기까지입니다.
다들 즐거운 주말 보내세요. 베바!
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
[GCP] Identity-Aware Proxy (0) | 2023.09.27 |
---|---|
[GCP] Cloud Load Balancing (0) | 2023.09.15 |
VS Code 설치 및 GCP 연동하기 (0) | 2023.09.14 |
Cloud Armor & Firewall (0) | 2023.09.14 |
BigQuery - Time Travel이란? (4) | 2023.09.01 |
댓글