반응형
개요
빅쿼리는 파이썬 기반의 CLI(Command Line Interface)도구인 bq 를 이용해서 명령을 실행할 수 있습니다.
해당 페이지에는 기본적인 명령어와 사용법을 정리해보았습니다.
참고 사이트 : https://cloud.google.com/bigquery/docs/reference/bq-cli-reference?hl=ko
설치
- gcloud CLI 는 구글 클라우드 SDK의 일부입니다.
- 시스템에서 SDK를 다운받아 설치하고 초기화 한 후 gcloud 명령줄 도구를 사용할 수 있습니다.
- PowerShell 명령어를 통해 SDK를 설치할 수 있습니다. powershell 로 진행해보겠습니다.
- Prerequire
Google Cloud SDK 는 Python 으로 프로그래밍 되어있기 때문에, python 3.5 ~ 3.7 버전까지 지원합니다. 저는 3.8 이였기 때문에 다운그레이드 하여 설치하였습니다. -
Installation
Powershell 에서 해당 명령어를 실행합니다. - 설치 완료 후 다음 옵션을 허용 후 기본값으로 설정해주면 Cloud SDK Shell 설치 완료됩니다.
- Cloud SDK 쉘 시작
- gcloud init 실행
명령어
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
& $env:Temp\GoogleCloudSDKInstaller.exe
bq 명령어
명령설명사용법
명령 | 설명 | 사용법 |
cancel | 작업 취소를 요청 | bq cancel job_id |
cp | 테이블을 다른 테이블로 복사 | bq cp dataset.old_table dataset2.new_table |
extract | destination_uris로 데이터를 추출. -m 옵션으로 모델만 추출 가능 | bq extract ds.table gs://mybucket/table.csv |
get-iam-policy | 리소스에 대한 IAM 정책을 반환 | bq get-iam-policy proj:ds |
head | 테이블에 행을 표시 | bq head dataset.table |
help | 전체 또는 선택된 명령에 대한 도움말 출력 | bq ls help |
init | .bigqueryrc 설정 파일 작성 | bq init |
insert | 테이블에 행을 삽입 | bq insert dataset.table /tmp/mydata.json |
load | destination_table에 데이터를 입력 | bq load ds.new_tbl gs://mybucket/info.csv ./info_schema.json |
ls | 명명 된 컬렉션에 포함 된 개체를 나열 | bq ls mydataset |
mk | 데이터 세트, 테이블, 뷰 또는 전송 구성(transfer configuration)을 작성 | bq mk new_dataset |
mkdef | GCS와 같은 외부 테이블에 대한 정의를 JSON으로 생성 | bq mkdef 'gs://bucket/file.csv' field1:integer,field2:string |
partition | 소스 테이블을 파티션 된 테이블로 복사 | bq partition source_table_prefix destination_partitioned_table |
query | 쿼리를 실행 | bq query 'select count(*) from publicdata:samples.shakespeare' |
rm | 데이터 세트, 테이블, 전송 구성 또는 예약을 삭제 | bq rm ds.table |
set-iam-policy | 리소스에 대한 IAM 정책 설정 | bq set-iam-policy ds /tmp/policy.json |
shell | 대화식 bq 세션을 실행 | bq shell |
show | 객체에 대한 모든 정보를 표시 | bq show dataset |
update | 데이터 세트, 테이블, 뷰 또는 전송 구성을 업데이트 | bq update --description "Dataset description" existing_dataset |
version | bq 버전을 반환 | bq version |
wait | 작업이 완료 될 때까지 대기 | bq wait job_id |
로컬 데이터 소스에서 데이터 로드
아래의 방법 중 하나를 사용하여 읽을 수 있는 데이터 소스를 로드할 수 있습니다.
- Cloud Console 또는 기본 BigQuery 웹 UI
- bq 명령줄 도구의 bq load 명령어
- API
- 클라이언트 라이브러리
이 중, bq 명령줄 도구의 bq load 명령어를 사용하면 아래와 같이 진행됩니다.
조건은
- 구글 쉘 SDK를 실행되는 리눅스에 데이터소스에 대한 파일이 있어야 하며, 윈도우 PATH나 파일은 인식하지 않습니다.
-
해당 데이터를 로드할 테이블을 생성 합니다. (참고 : https://cloud.google.com/bigquery/docs/tables?hl=ko)
-
bq 명령어를 사용해 테이블에 데이터를 로드합니다.
bq load \
프로젝트명:데이터셋명.테이블명\
데이터 path (절대 주소) / 데이터.csv
Cloud Storage 에서 데이터 로드
리눅스에 파일 업로드나 , 용량이 커서 Cloud Console을 통해 테이블에 업로드하지 못했다면 Cloud Storage를 통해 로드할 수 있습니다.
조건은
- 테이블을 포함한 데이터세트는 스토리지 버킷과 같은 리전이나 멀티 리전에 위치에 있어야합니다.
- 빅쿼리 로드에 대한 모든 권한이 있어야 합니다.
- 스토리지 버킷 생성 → 데이터 업로드 가 선행되어야 합니다. (참고 : https://cloud.google.com/storage/docs/creating-buckets?hl=ko )
- 해당 데이터를 로드할 테이블을 생성합니다. (참고 : https://cloud.google.com/bigquery/docs/tables?hl=ko)
-
bq 명령어를 사용해 테이블에 데이터를 로드합니다.
bq load \
프로젝트명:데이터셋명.테이블명\
gs://버킷명/데이터.csv
위의 두 가지 방법을 사용하면 아래와 같이 데이터가 해당 테이블에 로드된 것을 확인할 수 있습니다.
추가적인 옵션(--autodetct) 등등은 구글 문서에서 확인하실 수 있습니다.
반응형
'Database Study > BigQuery' 카테고리의 다른 글
[BigQuery]빅쿼리 쿼리 성능 향상 - 집합 처리 (2) | 2020.09.05 |
---|---|
OLTP, OLAP (0) | 2020.08.31 |
[BigQuery]표준 SQL 쿼리 구문 (0) | 2020.06.14 |
[BigQuery] Datetime UTC 를 KST로 (0) | 2020.05.26 |
[BigQuery]BigQuery Dremel (0) | 2020.05.26 |