GCP/BigQuery

BigQuery - 테이블에서 스키마 추출

데이터엔지니어 주형권 2021. 9. 28. 17:09
반응형

BigQuery의 다수의 테이블의 스키마를 Json으로 봐야 하는 작업이 있어서 한 땀 한 땀 열심히 만다가 문득 스키마를 추출해서 파일로 저장할 수 없을까?라는 생각이 들어서 찾아봤습니다. 

 

🙋‍♂️ 들어가며

일단 해당 기능을 사용하기 위해서는 bq가 있어야 합니다.

bq 설치는 아래를 참고해 주세요. 👇👇👇👇

https://cloud.google.com/bigquery/docs/bq-command-line-tool?hl=ko 

 

bq 명령줄 도구 사용  |  BigQuery  |  Google Cloud

의견 보내기 bq 명령줄 도구 사용 bq 명령줄 도구는 BigQuery용 Python 기반 명령줄 도구입니다. 이 페이지에는 bq 명령줄 도구 사용에 대한 일반적인 정보가 포함되어 있습니다. 모든 bq 명령어 및 플

cloud.google.com

 

그리고 스키마 다운로드 관련 공식 문서를 참고하여 보시면 좋습니다. 👇👇👇👇

https://cloud.google.com/bigquery/docs/schemas

 

스키마 지정  |  BigQuery  |  Google Cloud

의견 보내기 스키마 지정 BigQuery를 사용하면 데이터를 테이블에 로드할 때와 빈 테이블을 만들 때 테이블의 스키마를 지정할 수 있습니다. 또는 지원되는 데이터 형식의 스키마 자동 감지를 사

cloud.google.com

 

공식 문서에서 해당하는 부분의 명령어는 다음과 같습니다.

bq show \
--schema \
--format=prettyjson \
project_id:dataset.table > path_to_file
cs

 

가장 아래 부분에 본인이 다운로드 할 테이블의 스키마를 입력해주고, > 다음으로 파일을 다운로드할 위치를 지정하면 됩니다.

 

💁‍♂️ 실제 테스트

실제로 테스트를 하기 위해서 테이블을 한개 만듭니다.

CREATE TABLE `temp_jeff.schema_export`
(
ts TIMESTAMP,
id INT64,
name STRING
)
cs

 

위와 같이 테이블을 만들고 다음의 명령를 실행하여 테이블의 스키마를 추출합니다.

스키마 추출

 

스키마가 잘 추출되었습니다.

다음과 같이 확인이 가능합니다.

추출 된 스키마

 

이 밖에도 csv 형태도 제공합니다.

하지만 제일 편한 건 역시... json 인 것 같습니다.

 

 

🙇‍♂️ 출처 

https://stackoverflow.com/questions/43195143/is-there-a-way-to-export-a-bigquery-tables-schema-as-json

 

Is there a way to export a BigQuery table's schema as JSON?

A BigQuery table has schema which can be viewed in the web UI, updated, or used to load data with the bq tool as a JSON file. However, I can't find a way to dump this schema from an existing table ...

stackoverflow.com

 

반응형