bq 명령줄 도구 참조

이 문서에서는 BigQuery 명령줄 도구인 bq의 구문, 명령어, 플래그, 인수를 설명합니다. BigQuery에 익숙하지만 특정 bq 명령줄 도구 명령어를 사용하는 방법을 알고 싶은 사용자를 대상으로 합니다. bq 명령줄 도구 사용 방법에 대한 일반적인 정보는 bq 명령줄 도구 사용을 참조하세요.

개요

bq 명령줄 도구는 다음 형식을 사용합니다.

bq COMMAND [FLAGS] [ARGUMENTS]

일부 플래그는 여러 bq 명령줄 도구 명령어와 함께 사용할 수 있습니다. 이러한 플래그는 전역 플래그 섹션에 설명되어 있습니다.

다른 플래그는 명령어별로 다르며 특정 bq 명령줄 도구 명령어에서만 사용할 수 있습니다. 명령어별 플래그는 명령어 섹션에 설명되어 있습니다.

부울 플래그

일부 bq 명령줄 도구 플래그는 부울입니다. 플래그 값을 true 또는 false로 설정할 수 있습니다. bq 명령줄 도구는 부울 플래그를 설정할 때 다음 형식을 허용합니다.

형식 예시
true --FLAGNAME=true --debug_mode=true
true --FLAGNAME --debug_mode
false --FLAGNAME=false --debug_mode=false
false --noFLAGNAME --nodebug_mode

이 문서에서는 부울 플래그에 --FLAGNAME=VALUE 형식을 사용합니다.

모든 부울 플래그는 선택사항입니다. 부울 플래그가 없으면 BigQuery는 플래그의 기본값을 사용합니다.

플래그 값 지정

플래그 값을 지정하면 등호 표시(=)는 선택사항입니다. 예를 들어 다음 두 명령어는 동일합니다.

bq ls --format prettyjson myDataset
bq ls --format=prettyjson myDataset

이 문서에서는 명확성을 위해 등호를 사용합니다.

온라인 도움말

다음과 같이 bq 명령줄 도구에서 문서를 확인할 수 있습니다.

설명 도움말 명령어 형식 예시
예시가 있는 전체 명령어 목록 bq help bq help
전역 플래그 설명 bq --help bq --help
특정 명령어 설명 bq help COMMAND bq help mk

리소스 사양

리소스 지정 형식은 컨텍스트에 따라 다릅니다. 프로젝트와 데이터 세트 사이의 구분 기호는 경우에 따라 콜론(:)이거나 마침표(.)입니다. 다음 표에서는 여러 컨텍스트에서 BigQuery 테이블을 지정하는 방법을 설명합니다.

컨텍스트 형식 예시
bq 명령줄 도구 PROJECT:DATASET.TABLE myProject:myDataset.myTable
표준 SQL 쿼리 PROJECT.DATASET.TABLE myProject.myDataset.myTable
Llegacy SQL 쿼리 PROJECT:DATASET.TABLE myProject:myDataset.myTable

프로젝트를 지정하지 않으면 BigQuery가 현재 프로젝트를 사용합니다. 예를 들어 현재 프로젝트가 myProject이면 BigQuery는 myDataset.myTablemyProject:myDataset.myTable(또는 myProject.myDataset.myTable)로 해석합니다.

일부 리소스 식별자는 역따옴표(` )를 사용하여 묶어야 합니다. 리소스 식별자가 문자 또는 밑줄로 시작하고 문자, 숫자, 밑줄로만 이루어진 경우 역따옴표를 사용할 필요가 없습니다. 하지만 리소스 식별자에 다른 유형의 문자 또는 예약된 키워드가 포함된 경우 식별자(또는 특수문자 또는 예약된 키워드가 포함된 부분)를 역따옴표로 묶어야 합니다. 자세한 내용은 식별자를 참조하세요.

전역 플래그

해당하는 경우 bq 명령어에 다음 플래그를 사용할 수 있습니다.

--api=ENDPOINT
호출할 API 엔드포인트를 지정합니다. 기본값은 https://www.googleapis.com입니다.
--api_version=VERSION
사용할 API 버전을 지정합니다. 기본값은 v2입니다.
--apilog=FILE

모든 API 요청 및 응답을 FILE로 지정된 파일에 로깅합니다. 가능한 값은 다음과 같습니다.

  • 파일 경로 - 지정된 파일에 로깅
  • stdout - 표준 출력에 로깅
  • stderr - 표준 오류 로깅
  • false - API 요청 및 응답이 로깅되지 않음(기본값)
--bigqueryrc=PATH

bq 명령줄 도구 구성 파일의 경로를 지정합니다. --bigqueryrc 플래그를 지정하지 않으면 명령어가 BIGQUERYRC 환경 변수를 사용합니다. 환경 변수가 설정되어 있지 않으면 $HOME/.bigqueryrc가 사용됩니다. 이 파일이 없으면 ~/.bigqueryrc가 사용됩니다. 자세한 내용은 명령줄 플래그 기본값 설정을 참조하세요.

--ca_certificates_file=PATH

Certificate Authority Service(CA) 파일의 위치를 지정합니다.

--dataset_id=DATASET_ID

명령어에 사용할 기본 데이터 세트를 지정합니다. 이 플래그는 적용할 수 없는 경우 무시됩니다. PROJECT:DATASET 또는 DATASET 형식을 사용하여 DATASET_ID 인수를 지정할 수 있습니다. PROJECT 부분이 누락되면 기본 프로젝트가 사용됩니다. --project_id 플래그를 지정하여 기본 프로젝트 설정을 재정의할 수 있습니다.

--debug_mode={true|false}

true로 설정하면 Python 예외에 대한 추적을 표시합니다. 기본값은 false입니다.

--disable_ssl_validation={true|false}

true로 설정하면 HTTPS 인증서 유효성 검사가 사용 설정됩니다. 기본값은 false입니다.

--discovery_file=PATH

검색을 위해 읽을 JSON 파일을 지정합니다.

--enable_gdrive={true|false}

false로 설정하면 드라이브 범위가 없는 새 OAuth 토큰을 요청합니다. 기본값은 true입니다. 드라이브 범위가 있는 새 OAuth 토큰을 요청합니다.

--fingerprint_job_id={true|false}

작업 구성의 디지털 지문에서 파생된 작업 ID를 사용하려면 true로 설정합니다. 이렇게 하면 같은 작업이 실수로 여러 번 실행되는 것을 방지할 수 있습니다. 기본값은 false입니다.

--format=FORMAT

명령어의 출력 형식을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • pretty: 형식이 지정된 테이블 출력
  • sparse: 더 단순한 테이블 출력
  • prettyjson: 읽기 쉬운 JSON 형식
  • json: 최대한 압축한 JSON
  • csv: 헤더가 있는 CSV 형식

pretty, sparse, prettyjson은 사람이 읽을 수 있도록 작성되었습니다. jsoncsv는 다른 프로그램에서 사용하는 것입니다. none이 지정되면 명령어가 출력을 생성하지 않습니다. --format 플래그가 없으면 명령어를 기준으로 적절한 출력 형식이 선택됩니다.

--headless={true|false}

사용자 상호작용 없이 bq 세션을 실행하려면 true로 설정합니다. 예를 들어 debug_mode는 디버거에 침입하지 않으며 정보 인쇄 빈도가 줄어듭니다. 기본값은 false입니다.

--httplib2_debuglevel=DEBUG_LEVEL

HTTP 디버깅 정보를 표시할지 여부를 지정합니다. DEBUG_LEVEL0보다 클 경우 이 명령어는 오류 메시지 외에도 HTTP 서버 요청 및 응답을 stderr에 로깅합니다. DEBUG_LEVEL이 0보다 작거나 --httplib2_debuglevel 플래그가 사용되지 않으면 오류 메시지만 제공됩니다.

예를 들면 다음과 같습니다.

--httplib2_debuglevel=1

--job_id=JOB_ID

새 작업의 작업 식별자를 지정합니다. 이 플래그는 작업을 생성하는 명령어인 cp, extract, load, query에만 적용됩니다. --job_id 플래그를 사용하지 않으면 명령어는 고유한 작업 식별자를 생성합니다. 자세한 내용은 프로그래매틱 방식으로 작업 실행을 참조하세요.

--job_property=KEY:VALUE

작업 구성의 속성 필드에 포함되는 키-값 쌍입니다. 이 플래그를 반복하면 속성을 추가로 지정할 수 있습니다.

--location=LOCATION

리전 또는 멀티 리전 위치에 해당하는 문자열입니다. 위치 플래그는 --jobs 플래그를 사용하여 작업 정보를 표시하는 경우 bq cancel 명령어와 bq show 명령어에 필요합니다. 위치 플래그는 다음 명령어에서 선택사항입니다.

다른 모든 명령어는 --location 플래그를 무시합니다.

--max_rows_per_request=MAX_ROWS

읽을 때마다 반환되는 최대 행 수를 지정하는 정수입니다.

--project_id=PROJECT

명령어에 사용할 프로젝트를 지정합니다.

--proxy_address=PROXY

Google Cloud에 연결하는 데 사용할 프록시 호스트의 이름 또는 IP 주소를 지정합니다.

--proxy_password=PASSWORD

프록시 호스트로 인증할 때 사용할 암호를 지정합니다.

--proxy_port=PORT

프록시 호스트에 연결하는 데 사용할 포트 번호를 지정합니다.

--proxy_username=USERNAME

프록시 호스트로 인증할 때 사용할 사용자 이름을 지정합니다.

--quiet={true|false} 또는 -q={true|false}

작업이 실행되는 동안 상태 업데이트를 숨기려면 true로 설정합니다. 기본값은 false입니다.

--synchronous_mode={true|false} 또는 -sync={true|false}

작업을 만들고 성공적인 완료 상태를 오류 코드로 즉시 반환하려면 false로 설정합니다. true로 설정하면 명령어는 작업이 완료될 때까지 기다린 후에 반환되고 작업 완료 상태를 오류 코드로 반환합니다. 기본값은 true입니다.

--trace=token:TOKEN

API 요청에 포함할 추적 토큰을 지정합니다.

지원 중단된 전역 플래그

bq 명령줄 도구 승인 구성을 위한 다음 전역 플래그는 지원 중단되었습니다. bq 명령줄 도구에 승인을 구성하려면 Google Cloud CLI 도구 승인을 참조하세요.

--application_default_credential_file

자세한 내용은 서비스 계정으로 인증을 참조하세요. 기본값은 ''입니다.

--credential_file

OAuth 토큰을 저장하는 데 사용되는 파일 이름입니다. 기본값은 $HOME/.bigquery.v2.token입니다.

--service_account

승인에 사용할 서비스 계정 이메일 주소를 지정합니다. 예를 들면 다음과 같습니다.

        1234567890@developer.gserviceaccount.com
        
.

--service_account_credential_file

서비스 계정의 사용자 인증 정보 저장소로 사용되는 파일입니다. 서비스 계정을 사용하는 경우 이 플래그를 설정해야 합니다.

--service_account_private_key_file

서비스 계정 비공개 키가 포함된 파일입니다. --service_account 플래그가 지정된 경우 이 플래그는 필수입니다. 기본값은 ''입니다.

--service_account_private_key_password

비공개 키 암호입니다. 이 비밀번호는 키를 만들 때 설정한 키 비밀번호와 일치해야 합니다. 기본값은 notasecret입니다.

--use_gce_service_account={true|false}

Compute Engine 인스턴스에서 실행할 때 저장된 사용자 인증 정보 대신 서비스 계정 사용자 인증 정보를 사용하려면 true로 설정합니다. 기본값은 false이며 저장된 사용자 인증 정보가 사용됩니다. 자세한 내용은 인스턴스의 서비스 계정 만들기 및 사용 설정을 참조하세요.

파일에서 bq 명령줄 도구 플래그를 지정하기 위한 다음 전역 플래그는 지원 중단되었습니다. 파일에서 플래그를 지정하려면 --bigqueryrc 플래그를 사용합니다.

--flagfile=PATH

이 플래그를 지정하면 제공된 파일의 플래그 정의가 bq 명령줄 도구에 삽입됩니다. 기본값은 ''입니다.

자세한 내용은 명령줄 플래그 기본값 설정을 참조하세요.

명령어

다음 섹션에서는 bq 명령줄 도구 명령어와 명령어별 플래그 및 인수를 설명합니다.

bq add-iam-policy-binding

bq add-iam-policy-binding 명령어를 사용하여 테이블 또는 뷰의 Identity and Access Management(IAM) 정책을 검색하고 한 번에 정책에 binding을 추가합니다.

이 명령어는 다음 3단계 프로세스를 대체합니다.

  1. bq get-iam-policy 명령어를 사용하여 JSON 형식의 정책 파일 검색
  2. 정책 파일 수정
  3. bq set-iam-policy 명령어를 사용하여 정책을 새 binding으로 업데이트

개요

bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE
  [--table] RESOURCE

예시

bq add-iam-policy-binding --member=user:myAccount@gmail.com \
  --role=roles/bigquery.dataViewer myDataset.myTable

플래그 및 인수

bq add-iam-policy-binding 명령어는 다음 플래그와 인수를 사용합니다.

--member=MEMBER_TYPE:MEMBER

필수 항목입니다. --member 플래그를 사용하여 IAM 정책 binding의 구성원 부분을 지정합니다. --role 플래그와 함께 --member 플래그가 필요합니다. --member--role 플래그의 한 조합은 하나의 binding과 같습니다.

MEMBER_TYPE 값은 IAM 정책 binding의 구성원 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • user
  • serviceAccount
  • group
  • domain

MEMBER 값은 IAM 정책 binding에서 구성원의 이메일 주소 또는 도메인을 지정합니다.

--role=ROLE

필수 항목입니다. IAM 정책 binding의 역할 부분을 지정합니다. --member 플래그와 함께 --role 플래그가 필요합니다. --member--role 플래그의 한 조합은 하나의 binding과 같습니다.

--table={true|false}

RESOURCE 인수가 테이블 또는 뷰 식별자가 아닌 경우 오류를 반환하려면 --table 플래그를 true로 설정합니다. 기본값은 false입니다. 이 플래그는 다른 명령어와의 일관성을 위해 지원됩니다.

RESOURCE

정책을 추가할 테이블 또는 뷰입니다.

자세한 내용은 IAM 정책 참조를 확인하세요.

bq cancel

bq cancel 명령어를 사용하여 BigQuery 작업을 취소합니다.

개요

bq [--synchronous_mode=false] cancel JOB_ID

예시

bq cancel bqjob_12345
bq --synchronous_mode=false cancel bqjob_12345

플래그 및 인수

bq cancel 명령어는 다음 플래그와 인수를 사용합니다.

--synchronous_mode=false
bq cancel 명령어가 완료될 때까지 기다리지 않으려면 전역 --synchronous_mode 플래그를 false로 설정합니다. 기본값은 true입니다.
JOB_ID
취소할 작업입니다.

bq cancel 명령어 사용에 대한 자세한 내용은 작업 관리를 참조하세요.

bq cp

다음 태스크에 bq cp 명령어를 사용합니다.

개요

bq cp [FLAGS] SOURCE_TABLE DESTINATION_TABLE

예시

bq cp myDataset.myTable myDataset.myTableCopy

플래그 및 인수

bq cp 명령어는 다음 플래그와 인수를 사용합니다.

--append_table={true|false} 또는 -a={true|false}
기존 테이블에 테이블을 추가하려면 true로 설정합니다. 기본값은 false입니다.
--clone={true|false}
테이블 클론을 만들려면 true로 설정합니다. 소스 테이블은 표준 테이블, 테이블 클론 또는 테이블 스냅샷일 수 있습니다. 대상 테이블은 테이블 클론입니다. 기본값은 false입니다. --clone=true--snapshot=true 중에서 어느 것도 지정되지 않으면 대상 테이블은 소스 테이블과 동일한 테이블 유형입니다.
--destination_kms_key=KEY

대상 테이블 데이터를 암호화하기 위한 Cloud KMS 키 리소스 ID를 지정합니다.

예를 들면 다음과 같습니다.

--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey

--expiration=SECONDS

테이블 스냅샷이 만료되기까지 걸리는 시간(초)입니다. 포함하지 않으면 테이블 스냅샷 만료 시간이 새 테이블 스냅샷이 포함된 데이터 세트의 기본 만료 시간으로 설정됩니다. --snapshot 플래그와 함께 사용합니다.

--force={true|false} 또는 -f={true|false}

대상 테이블이 있는 경우 메시지를 표시하지 않고 이를 덮어쓰려면 true로 설정합니다. 기본값은 false입니다. 대상 테이블이 존재하는 경우 명령어는 덮어쓰기 전에 확인 메시지를 표시합니다.

--no_clobber={true|false} 또는 -n={true|false}

대상 테이블이 있는 경우 이를 덮어쓰지 않으려면 true로 설정합니다. 기본값은 false입니다. 대상 테이블이 있는 경우 덮어씁니다.

--restore={true|false}

이 플래그는 지원 중단되었습니다. 테이블 스냅샷에서 쓰기 가능한 테이블을 만들려면 bq cp 명령어나 bq cp --clone 명령어를 사용합니다.

--snapshot={true|false}

SOURCE_TABLE 인수에 지정된 테이블의 테이블 스냅샷을 만들려면 true로 설정합니다. 소스 테이블은 표준 테이블, 테이블 클론 또는 다른 테이블 스냅샷일 수 있습니다. 기본값은 false입니다. --clone=true--snapshot=true 중에서 어느 것도 지정되지 않으면 대상 테이블은 소스 테이블과 동일한 테이블 유형입니다. --no_clobber 플래그가 필요합니다.

SOURCE_TABLE

복사하려는 테이블입니다.

DESTINATION_TABLE

복사를 실행할 테이블입니다.

cp 명령어 사용에 대한 자세한 내용은 다음을 참조하세요.

bq extract

테이블 데이터를 Cloud Storage로 내보내려면 bq extract 명령어를 사용합니다.

개요

bq extract [FLAGS] RESOURCE DESTINATION

예시

bq extract --compression=GZIP --destination_format=CSV --field_delimiter=tab \
    --print_header=false myDataset.myTable gs://my-bucket/myFile.csv.gzip
bq extract --destination_format=CSV --field_delimiter='|' myDataset.myTable \
  gs://myBucket/myFile.csv

플래그 및 인수

bq extract 명령어는 다음 플래그와 인수를 사용합니다.

--compression=COMPRESSION_TYPE

내보낸 파일에 사용할 압축 유형을 지정합니다. 가능한 값은 다음과 같습니다.

  • GZIP
  • DEFLATE
  • SNAPPY
  • NONE

기본값은 NONE입니다.

각 압축 유형에 지원되는 형식에 대한 자세한 내용은 내보내기 형식 및 압축 유형을 참조하세요.

--destination_format=FORMAT

내보내는 데이터의 형식을 지정합니다. 가능한 값은 다음과 같습니다.

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • PARQUET

기본값은 CSV입니다.

--field_delimiter=DELIMITER

CSV 내보내기의 경우 출력 파일에서 열 사이의 경계를 표시하는 문자를 지정합니다. CSV 파일의 구분 기호는 ISO-8859-1 단일 바이트의 어떤 문자도 될 수 있습니다. \t 또는 tab을 사용하여 탭 구분 기호를 지정할 수 있습니다.

--print_header={true|false}

헤더가 있는 형식의 헤더 행 인쇄를 나타내지 않으려면 false로 설정합니다. 기본값은 true입니다. 헤더 행이 포함됩니다.

RESOURCE

내보내기를 실행할 테이블입니다.

DESTINATION

내보낸 데이터를 수신하는 스토리지 위치입니다.

bq extract 명령어 사용에 대한 자세한 내용은 테이블 데이터 내보내기를 참조하세요.

bq get-iam-policy

bq get-iam-policy 명령어를 사용하여 리소스의 IAM 정책을 검색하고 stdout에 출력합니다. 리소스는 테이블 또는 뷰일 수 있습니다. 정책은 JSON 형식입니다.

개요

bq get-iam-policy [FLAGS] RESOURCE

예시

bq get-iam-policy myDataset.myTable

플래그 및 인수

bq get-iam-policy 명령어는 다음 플래그와 인수를 사용합니다.

--table={true|false} 또는 --t={true|false}
RESOURCE가 테이블 또는 뷰 식별자가 아닌 경우 오류를 반환하려면 --table 플래그를 true로 설정합니다. 기본값은 false입니다. 이 플래그는 다른 명령어와의 일관성을 위해 지원됩니다.
RESOURCE
정책을 가져올 테이블 또는 뷰입니다.

bq get-iam-policy 명령어에 대한 자세한 내용은 테이블 액세스 제어 소개를 참조하세요.

bq head

bq head 명령어를 사용하여 테이블의 지정된 행과 열을 표시합니다. 기본적으로 처음 100개 행의 모든 열이 표시됩니다.

개요

bq head [FLAGS] [TABLE]

예시

bq head --max_rows=10 --start_row=50 --selected_fields=field1,field3 \
  myDataset.myTable

플래그 및 인수

bq head 명령어는 다음 플래그와 인수를 사용합니다.

--job=JOB or -j=JOB
쿼리 작업 결과를 읽으려면 유효한 작업 ID와 함께 이 플래그를 지정합니다.
--max_rows=MAX or -n=MAX
테이블 데이터를 표시할 때 인쇄할 행의 최대 개수를 나타내는 정수입니다. 기본값은 100입니다.
--selected_fields=COLUMN_NAMES or -c=COLUMN_NAMES
테이블 데이터를 표시할 때 반환할 필드의 하위 집합(중첩된 필드 및 반복된 필드 포함)을 지정하는 쉼표로 구분된 목록입니다. 이 플래그를 지정하지 않으면 모든 열이 반환됩니다.
--start_row=START_ROW or -s=START_ROW
테이블 데이터를 표시하기 전에 건너뛸 행의 개수를 지정하는 정수입니다. 기본값은 0입니다. 테이블 데이터는 첫 번째 행에서 시작됩니다.
--table={true|false} 또는 -t={true|false}
명령어 인수가 테이블 또는 뷰가 아닌 경우 오류를 반환하려면 true로 설정합니다. 기본값은 false입니다. 이 플래그는 다른 명령어와의 일관성을 위해 지원됩니다.
TABLE
데이터를 검색하려는 테이블입니다.

bq head 명령어 사용에 대한 자세한 내용은 테이블 데이터 관리를 참조하세요.

bq help

bq help 명령어를 사용하여 도구 내에 bq 명령줄 도구 문서를 표시합니다.

개요

bq help [COMMAND]

플래그 및 인수

bq help 명령어는 다음 플래그와 인수를 사용합니다.

COMMAND
온라인 도움말을 보려는 특정 bq 명령줄 도구 명령어를 지정합니다.

bq insert

bq insert 명령어를 사용하여 스트리밍 삽입을 사용하는 파일에서 줄바꿈으로 구분된 JSON 형식의 데이터 행을 테이블에 삽입합니다. 데이터 유형은 대상 테이블의 열 유형과 일치하도록 변환됩니다. 이 명령어는 테스트 목적으로만 사용됩니다. BigQuery로 데이터를 스트리밍하려면 insertAll API 메서드를 사용합니다.

개요

bq insert [FLAGS] TABLE FILE

예시

bq insert --ignore_unknown_values --template_suffix=_insert myDataset.myTable /tmp/myData.json
echo '{"a":1, "b":2}' | bq insert myDataset.myTable

플래그 및 인수

bq insert 명령어는 다음 플래그와 인수를 사용합니다.

--ignore_unknown_values={true|false} 또는 -i={true|false}
true로 설정하면 BigQuery는 테이블 스키마와 일치하지 않는 키-값 쌍을 무시하고 스키마와 일치하는 데이터가 있는 행을 삽입합니다. false로 설정하면 테이블 스키마와 일치하지 않는 데이터가 있는 행은 삽입되지 않습니다. 기본값은 false입니다.
--skip_invalid_rows={true|false} 또는 -s={true|false}
true로 설정하면 BigQuery는 유효하지 않은 행이 있어도 유효한 행 삽입을 시도합니다. false로 설정하면 유효하지 않은 행이 있으면 명령어가 실패합니다. 기본값은 false입니다.
--template_suffix=SUFFIX or -x=SUFFIX
이 플래그를 지정하면 대상 테이블 TABLE이 기본 템플릿으로 처리되고 행은 {destination}{templateSuffix}라는 인스턴스 테이블에 삽입됩니다. BigQuery는 기본 템플릿의 스키마를 사용하여 인스턴스 테이블을 만듭니다.
TABLE
데이터를 삽입할 테이블입니다.
FILE
삽입하려는 데이터가 포함된 파일입니다.

bq insert 명령어 사용에 대한 자세한 내용은 BigQuery로 데이터 스트리밍을 참조하세요.

bq load

bq load 명령어를 사용하여 테이블에 데이터를 로드합니다.

개요

bq load [FLAGS] DESTINATION_TABLE SOURCE_DATA [SCHEMA]

예시

bq load myDataset.newTable gs://mybucket/info.csv ./info_schema.json

플래그 및 인수

bq load 명령어는 다음 플래그와 인수를 사용합니다.

--allow_jagged_rows={true|false}
CSV 데이터에서 후행 선택 열이 누락된 것을 허용하려면 true로 설정합니다.
--preserve_ascii_control_characters={true|false}
CSV 데이터에서 포함된 ASCII 제어 문자를 허용하려면 true로 설정합니다.
--allow_quoted_newlines={true|false}
CSV 데이터에 따옴표가 있는 줄바꿈을 허용하려면 true로 설정합니다.
--autodetect={true|false}
CSV 및 JSON 데이터에 스키마 자동 감지를 사용 설정하려면 true로 설정합니다. 기본값은 false입니다. --autodetectfalse이면서 --schema 플래그를 사용하여 지정된 스키마가 없고 대상 테이블이 있으면 대상 테이블의 스키마가 사용됩니다.
--clustering_fields=COLUMNS
테이블 클러스터링에 사용할 필드를 지정하는 최대 4개의 열 이름이 포함된 쉼표로 구분된 목록입니다.
--destination_kms_key=KEY
대상 테이블 데이터를 암호화하기 위한 Cloud KMS 키 리소스 ID를 지정합니다.
--encoding=ENCODING_TYPE or -E=ENCODING_TYPE
데이터에 사용되는 문자 인코딩입니다. 다음 중 한 가지 값을 사용합니다.
  • ISO-8859-1(Latin-1이라고도 함)
  • UTF-8
--field_delimiter=DELIMITER or -F=DELIMITER
데이터에서 열 사이의 경계를 표시하는 문자를 지정합니다. CSV 파일의 구분 기호는 ISO-8859-1 단일 바이트의 어떤 문자도 될 수 있습니다. \t 또는 tab을 사용하여 탭 구분 기호를 지정할 수 있습니다.
--ignore_unknown_values={true|false}
true로 설정된 경우, CSV 및 JSON 파일에 대해 테이블 스키마와 일치하지 않는 추가 열 값이 있는 행이 무시되고 로드되지 않습니다. 마찬가지로 Avro, Parquet, ORC 파일의 경우 테이블 스키마에 없는 파일 스키마의 필드는 무시되고 로드되지 않습니다.
--json_extension=JSON_TYPE

로드할 JSON 파일의 유형을 지정합니다. JSON 파일에만 적용됩니다. 가능한 값은 다음과 같습니다.

  • GEOJSON - 줄바꿈으로 구분된 GeoJSON 파일입니다.

이 플래그를 사용하려면 --source_format 플래그를 NEWLINE_DELIMITED_JSON으로 설정해야 합니다.

자세한 내용은 줄바꿈으로 구분된 GeoJSON 파일 로드를 참조하세요.

--max_bad_records=MAX

전체 작업이 실패하기 전에 허용되는 불량 레코드의 최대 개수를 지정하는 정수입니다. 기본값은 0입니다. --max_bad_records 값과 관계없이 모든 유형에 오류가 최대 5개까지 반환됩니다. 이 플래그는 CSV, JSON, Sheets 데이터 로드에만 적용됩니다.

--null_marker=STRING

CSV 데이터에서 NULL 값을 나타내는 선택적 커스텀 문자열입니다.

--projection_fields=PROPERTY_NAMES

--source_formatDATASTORE_BACKUP으로 설정하면 이 플래그는 Datastore 내보내기에서 로드할 항목 속성을 나타냅니다. 쉼표로 구분된 목록에 속성 이름을 지정합니다. 속성 이름은 대소문자를 구분하며 최상위 속성을 참조해야 합니다. 이 플래그는 Firestore 내보내기에도 사용될 수 있습니다.

--quote=CHARACTER

CSV 데이터의 필드를 묶을 따옴표 문자를 지정합니다. CHARACTER 인수는 1바이트 문자일 수 있습니다. 기본값은 큰따옴표(")입니다. 따옴표가 없도록 지정하려면 빈 문자열 ""을 사용합니다.

--replace={true|false}

새 데이터가 로드될 때 기존 데이터와 스키마를 삭제하려면 true로 설정합니다. --destination_kms_key 플래그를 지정하지 않으면 모든 Cloud KMS 키도 삭제됩니다. 기본값은 false입니다.

--schema={SCHEMA_FILE|SCHEMA}

로컬 JSON 스키마 파일의 경로 또는 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등의 쉼표로 구분된 열 정의 목록 등을 지정합니다. 스키마 파일을 사용하는 경우 파일에 확장자를 포함하지 마세요.

예를 들면 다음과 같습니다.

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

지정된 스키마가 없고 --autodetectfalse이면서 대상 테이블이 있으면 대상 테이블의 스키마가 사용됩니다.

--schema_update_option=OPTION

로드 작업이나 쿼리 작업에서 데이터를 테이블에 추가하거나 테이블 파티션을 덮어쓸 때 대상 테이블의 스키마 업데이트 방법을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • ALLOW_FIELD_ADDITION: 새 필드를 추가하도록 허용
  • ALLOW_FIELD_RELAXATION: REQUIRED 필드를 NULLABLE로 완화하도록 허용

여러 스키마 업데이트 옵션을 지정하려면 이 플래그를 반복합니다.

--skip_leading_rows=NUMBER_OF_ROWS

소스 파일의 시작 부분에서 건너뛸 행 수를 지정하는 정수입니다. 기본값은 0입니다.

--source_format=FORMAT

소스 데이터의 형식입니다. 다음 중 한 가지 값을 사용합니다.

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • DATASTORE_BACKUP(Filestore에 이 값 사용)
  • PARQUET
  • ORC
--time_partitioning_expiration=SECONDS

시간 기준 파티션을 삭제할 시간을 초 단위로 지정하는 정수입니다. 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값입니다. 음수는 만료 시간이 없음을 의미합니다.

--time_partitioning_field=COLUMN_NAME

시간 기준 파티션을 만드는 방법을 결정하는 필드를 지정합니다. 이 값을 사용하지 않고 시간 기준 파티션 나누기를 사용 설정하면 로드 시간을 기준으로 테이블 파티션이 나눠집니다.

--time_partitioning_type=INTERVAL

테이블에 시간 기준 파티션 나누기를 사용 설정하고 파티션 유형을 설정합니다. 다음 중 한 가지 값을 사용합니다.

  • DAY
  • HOUR
  • MONTH
  • YEAR

시간 기준 파티션 나누기의 기본 파티션 유형은 DAY입니다.

--use_avro_logical_types={true|false}

--source_format 플래그가 AVRO로 설정된 경우 이 플래그를 true로 설정하여 INTEGER와 같은 원시 유형만 사용하지 않고 논리 유형을 TIMESTAMP와 같은 해당 유형으로 변환합니다.

--decimal_target_types=DECIMAL_TYPE

Decimal 논리 유형을 변환하는 방법을 결정합니다. JobConfigurationLoad.decimalTargetTypes와 같습니다. 이 플래그를 반복하면 타겟 유형을 여러 개 지정할 수 있습니다.

--parquet_enum_as_string={true|false}

--source_format 플래그가 PARQUET로 설정되어 있고 BigQuery가 Parquet ENUM 논리 유형을 STRING 값으로 추론하려면 이 플래그를 true로 설정합니다. 기본값은 false입니다.

--parquet_enable_list_inference={true|false}

--source_format 플래그가 PARQUET로 설정된 경우 이 플래그는 Parquet LIST 논리 유형에 스키마 추론을 사용할지 여부를 나타냅니다.

DESTINATION_TABLE

데이터를 로드할 테이블입니다.

SOURCE_DATA

로드할 데이터가 포함된 파일의 Cloud Storage URI입니다.

SCHEMA

대상 테이블의 스키마입니다.

bq load 명령어를 사용하여 Cloud Storage에서 데이터를 로드하는 방법에 대한 자세한 내용은 다음을 참조하세요.

bq load 명령어를 사용하여 로컬 소스에서 데이터를 로드하는 방법에 대한 자세한 내용은 다음을 참조하세요.

bq ls

컬렉션의 객체를 나열하려면 bq ls 명령어를 사용합니다.

개요

bq ls [FLAGS] [RESOURCE]

예시

bq ls myDataset

플래그 및 인수

bq ls 명령어는 다음 플래그와 인수를 사용합니다.

--all={true|false} 또는 -a={true|false}
모든 결과를 표시하려면 true로 설정하세요. 모든 사용자 또는 모든 데이터 세트의 작업(숨겨진 작업 포함)을 표시됩니다. 전송 구성 또는 전송 실행을 나열할 때는 이 플래그가 필요하지 않습니다. 기본값은 false입니다.
--capacity_commitment={true|false}

용량 약정을 나열하려면 true로 설정하고 --location 플래그를 사용해서 위치를 지정합니다. 자세한 내용은 구매한 약정 보기를 참조하세요.

예: bq ls --capacity_commitment=true --location='us'

--datasets={true|false} 또는 -d={true|false}

데이터 세트를 나열하려면 true로 설정합니다. 기본값은 false입니다.

--filter="FILTER"

labels.KEY:VALUE 형식에서 공백으로 구분되는 하나 이상의 트리플로 구성된 FILTER 인수와 일치하는 데이터 세트를 나열합니다. 두 개 이상의 트리플이 제공되는 경우, 이 명령어는 모든 트리플과 일치하는 데이터 세트만 반환합니다(예: OR가 아닌 AND 논리 연산자를 사용하는 명령어). 둘 이상의 트리플을 지정하려면FILTER 값을 따옴표로 묶어야 합니다.

  • 데이터 세트 라벨을 기준으로 필터링하려면 데이터 세트에 적용한 키와 값을 사용합니다.

    예를 들면 다음과 같습니다.

    --filter "labels.department:marketing labels.team:sales"
    

  • 전송 구성을 기준으로 필터링하려면 dataSourceIds를 키로 사용하고 다음 데이터 소스 중 하나를 값으로 사용합니다.

예를 들면 다음과 같습니다.

   --filter labels.dataSourceIds:dcm_dt
   

  • 전송 실행을 기준으로 필터링하려면 states를 키로 사용하고 다음 전송 상태 중 하나를 값으로 사용합니다.

    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED

      예를 들면 다음과 같습니다.

      --filter labels.states:FAILED
      

--jobs={true|false} 또는 -j={true|false}
작업을 나열하려면 true로 설정합니다. 기본값은 false입니다. 기본적으로 결과는 100,000개로 제한됩니다.
--max_creation_time=MAX_CREATION_TIME_MS
타임스탬프를 밀리초 단위로 나타내는 정수입니다. 이 플래그를 --jobs 플래그와 함께 지정하면 타임스탬프 이전에 생성된 작업이 나열됩니다.
--max_results=MAX_RESULTS or -n=MAX_RESULTS
결과의 최대 수를 나타내는 정수입니다. 기본값은 50이고 최댓값은 1,000입니다. 작업이 1,000개 이상인 경우 page_token 플래그를 사용하여 페이지로 나누기를 사용하는 모든 작업을 나열할 수 있습니다.
--min_creation_time=MIN_CREATION_TIME_MS
타임스탬프를 밀리초 단위로 나타내는 정수입니다. 이 플래그를 --jobs 플래그와 함께 지정하면 타임스탬프 이후에 생성된 작업만 나열됩니다.
--message_type=messageTypes:MESSAGE_TYPE

특정 유형의 전송 실행 로그 메시지만 나열하려면 messageTypes:MESSAGE_TYPE을 지정합니다. 가능한 값은 다음과 같습니다.

  • INFO
  • WARNING
  • ERROR
--models={true|false} 또는 -m={true|false}

BigQuery ML 모델을 나열하려면 true로 설정합니다. 기본값은 false입니다.

--page_token=TOKEN 또는 -k=TOKEN

지정된 페이지 토큰부터 시작하는 항목을 나열합니다.

--projects={true|false} 또는 -p={true|false}

모든 프로젝트를 표시하려면 true로 설정합니다. 기본값은 false입니다.

--reservation={true|false}

특정 프로젝트 및 위치의 모든 예약을 나열하려면 true로 설정합니다. 기본값은 false입니다. --project_id--location 플래그와 함께 사용합니다.

예를 들면 다음과 같습니다.

bq ls --reservation=true --project_id=myProject --location=us

--reservation_assignment={true|false}

지정된 프로젝트 및 위치의 모든 예약 할당을 나열하려면 true로 설정합니다. 기본값은 false입니다. --project_id--location 플래그와 함께 사용합니다.

--routines={true|false}

지정된 데이터 세트의 모든 루틴을 나열하려면 true로 설정합니다. 기본값은 false입니다. 루틴에는 영구 사용자 정의 함수, 테이블 함수(미리보기), 저장 프로시저가 있습니다.

--row_access_policies

지정하면 테이블의 모든 행 수준 액세스 정책이 나열됩니다. 행 수준 액세스 정책은 행 수준 보안에 사용됩니다. dataset.table 형식으로 테이블 이름을 제공해야 합니다.

--run_attempt=RUN_ATTEMPT

--transfer_run 플래그와 함께 사용합니다. 지정된 전송 실행의 모든 실행 시도를 나열하려면 RUN_ATTEMPT_UNSPECIFIED로 설정합니다. 최근 실행 시도만 나열하려면 LATEST로 설정합니다. 기본값은 LATEST입니다.

--transfer_config={true|false}

지정된 프로젝트와 위치의 전송 구성을 나열하려면 true로 설정합니다. --transfer_location--project_id 플래그와 함께 사용합니다. 기본값은 false입니다.

--transfer_location=LOCATION

지정된 위치의 전송 구성을 나열합니다. 전송이 생성되면 전송 위치를 설정합니다.

--transfer_log={true|false}

--transfer_run 플래그와 함께 사용합니다. 지정된 전송 실행의 전송 로그 메시지를 나열하려면 true로 설정합니다. 기본값은 false입니다.

--transfer_run={true|false}

지정된 전송 구성의 전송 실행을 나열합니다.

예를 들면 다음과 같습니다.

bq ls --transfer_run=true projects/myProject/locations/us/transferConfigs/12345

RESOURCE

객체를 나열할 컬렉션입니다. 이러한 리소스는 데이터 세트, 프로젝트, 예약 또는 전송 구성일 수 있습니다.

bq ls 명령어 사용에 대한 자세한 내용은 다음을 참조하세요.

bq mk

bq mk 명령어를 사용하여 BigQuery 리소스를 만듭니다.

개요

bq mk TYPE_FLAG [OTHER FLAGS] [ARGS]

플래그 및 인수

bq mk 명령어는 만들려는 리소스 유형을 지정하는 유형 플래그와 리소스 유형에 따라 달라지는 추가 플래그를 사용합니다.

TYPE_FLAG: 다음 플래그 중 하나를 true로 설정합니다. 선택에 따라 만들 리소스 유형이 지정됩니다.

bq mk 명령어는 모든 유형의 리소스에 다음 플래그를 지원합니다.

--force={true|false} 또는 -f={true|false}
동일한 이름의 리소스가 이미 있는 경우 오류를 무시하려면 true로 설정합니다. 리소스가 이미 있는 경우 종료 코드는 0이지만 이 플래그를 true으로 설정해도 bq mk 명령어가 리소스를 덮어쓰지는 않습니다. 기본값은 false입니다.

bq mk 명령어는 다음 섹션에 설명된 대로 만든 리소스 유형에 따라 추가 플래그를 지원합니다.

bq mk --capacity_commitment

용량 약정을 구매하려면 --capacity_commitmenttrue로 설정하고 다음 플래그를 사용합니다.

--location=LOCATION
프로젝트의 위치를 지정합니다.
--plan=PLAN_TYPE
약정 요금제 유형을 지정합니다. 다음 중 하나로 설정합니다.
  • FLEX
  • MONTHLY
  • ANNUAL
--renewal_plan=RENEWAL_TYPE
갱신 요금제 유형을 지정합니다. ANNUAL 약정 요금제에만 적용되며 필수 항목입니다. 다음 필드 중 하나는 사용해야 합니다.
  • FLEX
  • MONTHLY
  • ANNUAL
--project_id=PROJECT_ID
슬롯을 관리하는 프로젝트를 지정합니다.
--slots=NUMBER_OF_SLOTS
구입할 슬롯 수를 지정합니다.

자세한 내용은 슬롯 구매를 참조하세요.

bq mk --connection

연결을 만듭니다. 지원되는 플래그는 다음과 같습니다.

--connection_type=CONNECTION_TYPE
연결 유형입니다(예: Cloud SQL 연결의 경우 CLOUD_SQL).
--properties=PROPERTIES
JSON 형식의 연결별 매개변수입니다. instanceId, database, type을 지정해야 합니다.
--connection_credential=CONNECTION_CREDENTIAL
연결의 사용자 인증 정보입니다(JSON 형식). usernamepassword를 지정해야 합니다.
--project_id=PROJECT_ID
연결이 속한 프로젝트의 ID를 지정합니다.
--location=LOCATION
연결이 저장될 위치를 지정합니다.
--display_name=DISPLAY_NAME
선택사항으로, 연결의 별칭을 지정합니다.
--description=DESCRIPTION
선택사항으로, 연결의 설명을 지정합니다.
--iam_role_id=ROLE_ID

AWS BigQuery Omni의 경우 리소스에 대한 액세스를 허용하는 IAM 역할을 지정합니다.

"arn:aws:iam::AWS_ACCOUNT_ID:role/POLICY_NAME" 형식을 사용합니다. 이때 각 항목의 의미는 다음과 같습니다.

  • AWS_ACCOUNT_ID는 연결의 AWS IAM 사용자 ID 번호입니다.
  • POLICY_NAME은 정책 이름입니다.

예를 들면 "arn:aws:iam::0123456789AB:policy/s3-read-role"입니다.

--tenant_id=TENANT_ID

Azure BigQuery Omni의 경우 Azure Storage 계정이 포함된 Azure 디렉터리의 테넌트 ID를 지정합니다.

CONNECTION_ID

선택사항으로, 연결의 연결 ID를 지정합니다. 연결 ID가 제공되지 않으면 고유 ID가 자동으로 생성됩니다. 연결 ID에는 문자, 숫자, 밑줄을 포함할 수 있습니다.

자세한 내용은 연결 만들기를 참조하세요.

bq mk --dataset

데이터 세트를 만듭니다. 지원되는 플래그는 다음과 같습니다.

--default_kms_key=KEY
테이블 생성 또는 쿼리 중에 명시적 키가 제공되지 않은 경우 데이터 세트의 테이블 데이터를 암호화하기 위한 기본 Cloud KMS 키 리소스 ID를 지정합니다.
--default_partition_expiration=SECONDS
데이터 세트에서 새로 생성된 파티션을 나눈 테이블의 모든 파티션에 기본 만료 시간을 초 단위로 지정하는 정수입니다. 파티션 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값으로 설정됩니다. 이 속성을 설정하면 해당 값은 데이터 세트 수준 기본 테이블 만료 시간이 존재하는 경우 이를 재정의합니다. 파티션을 나눈 테이블을 만들거나 업데이트할 때 --time_partitioning_expiration 플래그를 지정하면 테이블 수준의 파티션 만료 시간이 데이터 세트 수준의 기본 파티션 만료 시간보다 우선 적용됩니다.
--default_table_expiration=SECONDS
데이터 세트에 새로 생성된 테이블의 기본 수명을 초 단위로 지정하는 정수입니다. 만료 시간은 현재 UTC 시간에 이 값을 더한 값으로 설정됩니다.
--description=DESCRIPTION
데이터 세트에 관한 설명을 지정합니다.
--label=KEY:VALUE
데이터 세트의 라벨을 지정합니다. 여러 개의 라벨을 지정하려면 이 플래그를 반복합니다.
--location=LOCATION 또는 --data_location=LOCATION
데이터 세트의 위치를 지정합니다. --location 플래그를 우선적으로 사용합니다. --data_location 플래그는 기존 플래그입니다.
--max_time_travel_hours=HOURS

미리보기에서 데이터 세트의 시간 이동 창의 기간(시간)을 지정합니다. --max_time_travel_hours 값은 48(2일)에서 168(7일) 사이의 정수여야 합니다. 이 플래그를 지정하지 않으면 168시간이 기본값입니다.

시간 이동 기간에 대한 상세 설명은 시간 이동 기간 구성을 참조하세요.

자세한 내용은 데이터 세트 만들기를 참조하세요.

bq mk --materialized_view

구체화된 뷰를 만듭니다. 지원되는 플래그는 다음과 같습니다.

--enable_refresh={true|false}
구체화된 뷰의 자동 새로고침을 사용 중지하려면 false로 설정합니다. 구체화된 뷰를 만들 때의 기본값은 true입니다.
--refresh_interval_ms=MILLISECONDS
구체화된 뷰의 새로고침 간격을 밀리초 단위의 숫자로 지정합니다. 이 플래그를 지정하지 않으면 새로고침이 사용 설정된 구체화된 뷰의 기본 새로고침 간격은 1,800,000밀리초, 즉 30분입니다.

자세한 내용은 구체화된 뷰 만들기 및 사용을 참조하세요.

bq mk --reservation

전용 슬롯으로 예약을 만듭니다. 지원되는 플래그는 다음과 같습니다.

--concurrency=CONCURRENCY
미리보기 상태입니다. 동시에 실행되는 대상 쿼리 수를 지정합니다. 기본값은 0입니다. 즉, 예약 크기에 따라 동시성이 자동으로 계산됩니다. 자세한 내용은 쿼리 큐 사용을 참조하세요.
--ignore_idle_slots={true|false}
이 예약에서 실행되는 작업이 예약에 할당된 슬롯만 사용하도록 제한하려면 true로 설정합니다. 기본값은 false입니다. 이 예약의 작업은 다른 예약의 유휴 슬롯 또는 어떤 예약에도 할당되지 않은 슬롯을 사용할 수 있습니다. 자세한 내용은 유휴 슬롯을 참조하세요.
--location=LOCATION
프로젝트의 위치를 지정합니다.
--project_id=PROJECT_ID
예약을 소유하는 프로젝트를 지정합니다.
--slots=NUMBER_OF_SLOTS
이 예약에 할당할 슬롯 수를 지정합니다.

자세한 내용은 전용 슬롯이 있는 예약 만들기를 참조하세요.

bq mk --reservation_assignment

프로젝트, 폴더, 조직을 예약에 할당합니다. 지원되는 플래그는 다음과 같습니다.

--assignee_id=ASSIGNEE_ID
폴더, 조직, 프로젝트의 ID입니다.
--assignee_type=ASSIGNEE_TYPE
예약에 할당할 항목 유형을 지정합니다. 다음 필드 중 하나는 사용해야 합니다.
  • FOLDER
  • ORGANIZATION
  • PROJECT
--job_type=JOB_TYPE
예약에 할당할 작업 유형을 지정합니다. 다음 필드 중 하나는 사용해야 합니다.
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--location=LOCATION
프로젝트의 위치를 지정합니다.
--project_id=PROJECT_ID
예약을 소유하는 프로젝트를 지정합니다.
--reservation_id=RESERVATION_ID
예약의 ID를 지정합니다.

자세한 내용은 예약 할당 작업을 참조하세요.

bq mk --table

테이블을 만듭니다. 지원되는 플래그는 다음과 같습니다.

--clustering_fields=COLUMNS
테이블 클러스터링에 사용할 필드를 지정하는 최대 4개의 열 이름이 포함된 쉼표로 구분된 목록입니다. 파티션 나누기를 지정하면 테이블이 파티션으로 나누어진 후 각 파티션이 제공된 열을 통해 클러스터링됩니다.
--description=DESCRIPTION
테이블에 대한 설명을 지정합니다.
--destination_kms_key=KEY
대상 테이블 데이터를 암호화하기 위한 Cloud KMS 키 리소스 ID를 지정합니다.
--expiration=SECONDS
테이블 수명을 지정합니다. SECONDS0이면 테이블이 만료되지 않습니다. --expiration 플래그를 지정하지 않으면 BigQuery에서 데이터 세트의 기본 테이블 수명으로 테이블을 만듭니다.
--external_table_definition={PATH_TO_FILE|DEFINITION}

외부 테이블을 만들기 위한 테이블 정의를 지정합니다. 이 값은 테이블 정의 파일(PATH_TO_FILE)이 포함된 파일의 경로이거나 인라인 테이블 정의(DEFINITION)일 수 있습니다.

  • DEFINITION 필드의 형식은 SCHEMA@FORMAT=URI입니다.
  • SCHEMA 값의 형식은 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등 쉼표로 구분된 열 정의 목록입니다. 데이터 형식이 자체 설명(예: Avro)이거나 스키마 자동 감지를 사용하는 경우 SCHEMA 값을 생략할 수 있습니다. .
  • FORMAT 값은 다음 중 하나의 데이터 형식을 지정합니다.

  • CSV

  • NEWLINE_DELIMITED_JSON

  • AVRO

  • DATASTORE_BACKUP(Filestore에 이 값 사용)

  • PARQUET

  • ORC

테이블 정의 파일을 지정하는 경우 확장자를 제공하지 마세요.

예를 들면 다음과 같습니다.

--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--label=KEY:VALUE

테이블의 라벨을 지정합니다. 여러 개의 라벨을 지정하려면 이 플래그를 반복합니다.

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

다음과 같이 정수 범위 파티션의 옵션을 지정합니다.

  • column_name은 정수 범위 파티션을 만드는 데 사용되는 열입니다.
  • start는 파티션 나누기 범위의 시작(해당 값 포함)입니다.
  • end는 파티션 나누기 범위의 끝(해당 값 포함)입니다.
  • interval은 파티션 내 각 범위의 너비입니다.

예를 들면 다음과 같습니다.

--range_partitioning=customer_id,0,10000,100

--require_partition_filter={true|false}

제공된 테이블에 대한 쿼리에 파티션 필터를 사용하려면 true로 설정합니다. 이 플래그는 파티션을 나눈 테이블에만 적용됩니다. 기본값은 false입니다.

--schema={SCHEMA_FILE|SCHEMA}

로컬 JSON 스키마 파일의 경로 또는 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등의 쉼표로 구분된 열 정의 목록 등을 지정합니다. 스키마 파일을 사용하는 경우 파일에 확장자를 포함하지 마세요.

예를 들면 다음과 같습니다.

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--time_partitioning_expiration=SECONDS

시간 기준 파티션을 삭제할 시간을 초 단위로 지정하는 정수입니다. 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값입니다. 음수는 만료 시간이 없음을 의미합니다.

--time_partitioning_field=COLUMN_NAME

시간 기준 파티션을 만드는 방법을 결정하는 데 사용되는 필드를 지정합니다. 이 값을 사용하지 않고 시간 기준 파티션 나누기를 사용 설정하면 로드 시간을 기준으로 테이블 파티션이 나눠집니다.

--time_partitioning_type=INTERVAL

테이블에 시간 기준 파티션 나누기를 사용 설정하고 파티션 유형을 설정합니다. 다음 중 한 가지 값을 사용합니다.

  • DAY
  • HOUR
  • MONTH
  • YEAR
--use_avro_logical_types={true|false}

--external_table_definition 플래그FORMAT 부분이 AVRO로 설정된 경우 이 플래그는 논리 유형을 INTEGER와 같은 원시 유형만 사용하는 대신 TIMESTAMP와 같은 해당 유형으로 논리 유형을 변환할지 여부를 지정합니다.

--parquet_enable_list_inference={true|false}

--external_table_definition 플래그FORMAT 부분이 PARQUET로 설정된 경우 이 플래그는 Parquet LIST 논리 유형에 스키마 추론을 사용할지 여부를 지정합니다.

--parquet_enum_as_string={true|false}

--external_table_definition 플래그FORMAT 부분이 PARQUET로 설정된 경우 이 플래그는 Parquet ENUM 논리 유형을 STRING 값으로 추론할지 여부를 지정합니다.

자세한 내용은 테이블 만들기 및 사용을 참조하세요.

bq mk --transfer_config

전송 구성을 만듭니다. 지원되는 플래그는 다음과 같습니다.

--data_source=DATA_SOURCE
데이터 소스를 지정합니다. 전송 구성을 만들 때 필요합니다. 다음 중 한 가지 값을 사용합니다.
--display_name=DISPLAY_NAME
전송 구성의 표시 이름을 지정합니다.
--params={"PARAMETER":"VALUE"} 또는 -p={"PARAMETER":"VALUE"}
JSON 형식으로 전송 구성의 매개변수를 지정합니다. 매개변수는 데이터 소스에 따라 다릅니다.
--refresh_window_days=DAYS
전송 구성의 새로고침 기간을 일 단위로 지정하는 정수입니다. 기본값은 0입니다.
--service_account_name=SERVICE_ACCOUNT
전송 구성에 대해 사용자 인증 정보로 사용할 서비스 계정을 지정합니다.
--target_dataset=DATASET
전송 구성의 대상 데이터 세트를 지정합니다.

BigQuery Data Transfer Service에서 bq mk 명령어를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.

bq mk --transfer_run

지정된 데이터 전송 구성을 사용하여 지정된 시간이나 시간 범위에서 데이터 전송 실행을 만듭니다.

개요
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG

지원되는 플래그는 다음과 같습니다.

--run_time=RUN_TIME
데이터 전송 실행을 예약할 시간을 지정하는 타임스탬프입니다.
--start_time=START_TIME
데이터 전송 실행 범위의 시작 시간을 지정하는 타임스탬프입니다.
--end_time=END_TIME
데이터 전송 실행 범위의 종료 시간을 지정하는 타임스탬프입니다.

타임스탬프 형식은 RFC3339 UTC 'Zulu'입니다.

CONFIG 인수는 기존 데이터 전송 구성을 지정합니다.

예시
bq mk --transfer_run \
      --run_time=2021-01-20T17:00:00.00Z \
      projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \
      --start_time=2020-12-19T16:39:57-08:00 \
      --end_time=2020-12-19T20:39:57-08:00 \
      projects/p/locations/l/transferConfigs/c

bq mk --view

뷰를 만듭니다. 지원되는 플래그는 다음과 같습니다.

--description=DESCRIPTION
뷰에 대한 설명을 지정합니다.
--expiration=SECONDS
뷰 수명을 지정합니다. SECONDS0이면 뷰가 만료되지 않습니다. --expiration 플래그를 지정하지 않으면 BigQuery에서 데이터 세트의 기본 테이블 수명으로 뷰를 만듭니다.
--label=KEY:VALUE
뷰의 라벨을 지정합니다. 여러 개의 라벨을 지정하려면 이 플래그를 반복합니다.
--use_legacy_sql={true|false}
표준 SQL 쿼리를 사용하여 뷰를 만들려면 false로 설정합니다. 기본값은 true이며 legacy SQL을 사용합니다.
--view_udf_resource=FILE
보기의 SQL 쿼리에 사용되는 사용자 정의 함수 리소스로 즉시 로드되고 평가되는 Cloud Storage URI 또는 로컬 코드 파일의 경로를 지정합니다. 여러 파일을 지정하려면 이 플래그를 반복합니다.

자세한 내용은 뷰 만들기를 참조하세요.

bq mkdef

bq mkdef 명령어를 사용하여 Cloud Storage 또는 드라이브에 저장된 데이터에 JSON 형식의 테이블 정의를 만듭니다.

개요

bq mkdef [FLAGS] URI [ > FILE ]

플래그 및 인수

bq mkdef 명령어는 다음 플래그와 인수를 사용합니다.

--autodetect={true|false}
CSV 및 JSON 데이터에 스키마 자동 감지를 사용할지 여부를 지정합니다. 기본값은 false입니다.
--connection_id=CONNECTION_ID
인증에 사용할 연결 리소스의 ID입니다.
--ignore_unknown_values={true|false} 또는 -i={true|false}
스키마에 없는 행의 모든 값을 무시할지 지정합니다. 기본값은 false입니다.
--parquet_enable_list_inference={true|false}
source_formatPARQUET로 설정된 경우 이 플래그는 Parquet LIST 논리 유형에 스키마 추론을 사용할지 여부를 지정합니다. 기본값은 false입니다.
--parquet_enum_as_string={true|false}
source_formatPARQUET로 설정된 경우 이 플래그는 Parquet ENUM 논리 유형을 STRING 값으로 추론할지 지정합니다. 기본값은 false입니다.
--source_format=FORMAT

소스 데이터의 형식을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • AVRO
  • CSV
  • DATASTORE_BACKUP(Filestore에 이 값 사용)
  • GOOGLE_SHEETS
  • NEWLINE_DELIMITED_JSON
  • ORC
  • PARQUET

기본값은 CSV입니다.

--use_avro_logical_types={true|false}

--source_format 플래그가 AVRO로 설정된 경우 이 플래그는 논리 유형을 INTEGER와 같은 원시 유형만 사용하지 않고 TIMESTAMP와 같은 해당 유형으로 변환할지 여부를 지정합니다. 기본값은 false입니다.

bq mkdef 명령어 사용에 대한 자세한 내용은 외부 데이터 소스의 테이블 정의 파일 만들기를 참조하세요.

bq partition

bq partition 명령어를 사용하여 날짜로 파티션 나누기에서 YYYYMMDD로 끝나는 테이블과 같은 시간 단위 서픽스가 있는 테이블 그룹을 파티션을 나눈 테이블로 변환합니다.

개요

bq partition [FLAGS] SOURCE_TABLE_BASE_NAME PARTITION_TABLE

플래그 및 인수

bq partition 명령어는 다음 플래그와 인수를 사용합니다.

--no_clobber={true|false} 또는 -n={true|false}
기존 파티션을 덮어쓰지 않으려면 true로 설정합니다. 기본값은 false입니다. 파티션이 있으면 덮어쓰게 됩니다.
--time_partitioning_expiration=SECONDS
시간 기준 파티션을 삭제할 시간을 초 단위로 지정하는 정수입니다. 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값입니다. 음수는 만료 시간이 없음을 의미합니다.
--time_partitioning_type=INTERVAL

파티션 유형을 지정합니다. 다음 표에서는 INTERVAL 플래그에 사용 가능한 값과 각 플래그에 대해 예상 time-unit-suffix 형식을 제공합니다.

INTERVAL Suffix
HOUR YYYYMMDDHH
DAY YYYYMMDD
MONTH YYYYMM
YEAR YYYY
SOURCE_TABLE_BASE_NAME

시간 단위 서픽스가 있는 테이블 그룹의 기본 이름입니다.

PARTITION_TABLE

대상으로 파티션을 나눈 테이블의 이름입니다.

bq partition 명령어 사용에 대한 자세한 내용은 날짜로 샤딩된 테이블을 수집 시간으로 파티션을 나눈 테이블로 변환을 참조하세요.

bq query

bq query 명령어를 사용하여 지정된 SQL 쿼리를 실행하는 쿼리 작업을 만듭니다.

개요

bq query [FLAGS] 'QUERY'

플래그 및 인수

bq query 명령어는 다음 플래그와 인수를 사용합니다.

--allow_large_results={true|false}
Legacy SQL 쿼리에 큰 대상 테이블 크기를 사용 설정하려면 true로 설정합니다. 기본값은 false입니다.
--append_table={true|false}
대상 테이블에 데이터를 추가하려면 true로 설정합니다. 기본값은 false입니다.
--batch={true|false}
배치 모드에서 쿼리를 실행하려면 true로 설정합니다. 기본값은 false입니다.
--clustering_fields=COLUMNS
쿼리에서 대상 테이블을 클러스터링하는 데 사용할 필드를 지정하는 최대 4개의 열 이름이 쉼표로 구분된 목록입니다. 파티션 나누기를 지정하면 테이블이 파티션으로 나누어진 후 각 파티션이 제공된 열을 통해 클러스터링됩니다.
--destination_kms_key=KEY
대상 테이블 데이터를 암호화하기 위한 Cloud KMS 키 리소스 ID를 지정합니다.
--destination_schema={PATH_TO_FILE|SCHEMA}
로컬 JSON 스키마 파일의 경로 또는 FIELDDATA_TYPE, FIELD:DATA_TYPE 형식의 쉼표로 구분된 열 정의 목록입니다.
--destination_table=TABLE

이 플래그를 지정하면 쿼리 결과가 TABLE에 저장됩니다. TABLEPROJECT:DATASET.TABLE 형식으로 지정합니다. PROJECT를 지정하지 않으면 현재 프로젝트가 가정됩니다. --destination_table 플래그를 지정하지 않으면 쿼리 결과가 임시 테이블에 저장됩니다.

예를 들면 다음과 같습니다.

--destination_table myProject:myDataset.myTable
--destination_table myDataset.myTable

--dry_run={true|false}

이 플래그를 지정하면 쿼리가 확인되지만 실행되지 않습니다.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

외부 테이블 쿼리의 테이블 이름과 테이블 정의를 지정합니다. 테이블 정의는 로컬 JSON 스키마 파일의 경로 또는 인라인 테이블 정의일 수 있습니다. 인라인 테이블 정의를 제공하는 형식은 SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI입니다. SCHEMA 값의 형식은 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등 쉼표로 구분된 열 정의 목록입니다. 테이블 정의 파일을 사용하는 경우 확장자를 제공하지 마세요.

예를 들면 다음과 같습니다.

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

이 플래그를 반복하면 테이블을 여러 개 쿼리할 수 있습니다.

--flatten_results={true|false}

Legacy SQL 쿼리 결과에서 중첩 필드와 반복 필드를 평면화하지 않으려면 false로 설정합니다. 기본값은 true입니다.

--label=KEY:VALUE

쿼리 작업의 라벨을 지정합니다. 여러 개의 라벨을 지정하려면 이 플래그를 반복합니다.

--max_rows=MAX_ROWS 또는 -n=MAX_ROWS

쿼리 결과에서 반환할 행 수를 지정하는 정수입니다. 기본값은 100입니다.

--maximum_bytes_billed=MAX_BYTES

쿼리 요금이 청구되는 바이트 수를 제한합니다. 이 한도를 초과하는 쿼리는 실패하며 요금이 청구되지 않습니다. 이 플래그를 지정하지 않으면 청구되는 바이트가 프로젝트 기본값으로 설정됩니다.

--min_completion_ratio=RATIO

[실험용] 쿼리가 반환되기 전에 검사해야 하는 데이터의 최소 비율을 지정하는 0과 1.0 사이의 숫자입니다. 플래그를 지정하지 않으면 기본 서버 값 1.0이 사용됩니다.

--parameter={PATH_TO_FILE|PARAMETER}

쿼리 매개변수 목록이 포함된 JSON 파일 또는 NAME:TYPE:VALUE 형식의 쿼리 매개변수입니다. 이름이 비어 있으면 위치 매개변수가 생성됩니다. TYPE이 생략된 경우 STRING 유형으로 간주됩니다. NULL은 null 값을 지정합니다. 이 플래그를 반복하면 매개변수를 여러 개 지정할 수 있습니다.

예를 들면 다음과 같습니다.

--parameter=/tmp/queryParams
--parameter=Name::Oscar
--parameter=Count:INTEGER:42

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

--destination_table 플래그와 함께 사용합니다. 대상 테이블의 정수 범위 파티션 나누기 옵션을 지정합니다. 이 값은 column_name,start,end,interval 형식으로 쉼표로 구분된 목록이며 각 항목의 의미는 다음과 같습니다.

  • column_name은 정수 범위 파티션을 만드는 데 사용되는 열입니다.
  • start는 파티션 나누기 범위의 시작(해당 값 포함)입니다.
  • end는 파티션 나누기 범위의 끝(해당 값 포함)입니다.
  • interval은 파티션 내 각 범위의 너비입니다.

예를 들면 다음과 같습니다.

--range_partitioning=customer_id,0,10000,100

--replace={true|false}

대상 테이블을 쿼리 결과로 덮어쓰려면 true로 설정합니다. 기존 데이터 및 스키마는 삭제됩니다. --destination_kms_key 플래그를 지정하지 않으면 모든 Cloud KMS 키도 삭제됩니다. 기본값은 false입니다.

--require_cache={true|false}

이 플래그를 지정하면 결과를 캐시에서 검색할 수 있는 경우에만 쿼리가 실행됩니다.

--require_partition_filter={true|false}

이 플래그를 지정하면 제공된 테이블에 대한 쿼리에 파티션 필터가 필요합니다. 파티션을 나눈 테이블에만 이 플래그를 사용할 수 있습니다.

--rpc={true|false}

REST API jobs.insert 메서드 대신 RPC 스타일 쿼리 API를 사용하려면 true로 설정합니다. 기본값은 false입니다.

--schedule="SCHEDULE"

쿼리를 반복 예약 쿼리로 만듭니다. 쿼리 실행 빈도에 대한 일정이 필요합니다.

예를 들면 다음과 같습니다.

--schedule="every 24 hours"
--schedule="every 3 hours"

예약 구문에 대한 설명은 일정 형식 지정을 참조하세요.

--schema_update_option=OPTION

로드 작업이나 쿼리 작업에서 데이터를 테이블에 추가하거나 테이블 파티션을 덮어쓸 때 대상 테이블의 스키마 업데이트 방법을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • ALLOW_FIELD_ADDITION: 새 필드를 추가하도록 허용
  • ALLOW_FIELD_RELAXATION: REQUIRED 필드를 NULLABLE로 완화하도록 허용

여러 스키마 업데이트 옵션을 지정하려면 이 플래그를 반복합니다.

--start_row=ROW_NUMBER 또는 -s=ROW_NUMBER

쿼리 결과에서 반환할 첫 번째 행을 지정하는 정수입니다. 기본값은 0입니다.

--target_dataset=DATASET

--schedule로 지정하면 예약된 쿼리의 대상 데이터세트가 업데이트됩니다. 쿼리는 DDL 또는 DML이어야 합니다.

--time_partitioning_expiration=SECONDS

--destination_table 플래그와 함께 사용합니다. 시간 기준 파티션을 삭제할 시간을 초 단위로 지정하는 정수입니다. 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값입니다. 음수는 만료 시간이 없음을 의미합니다.

--time_partitioning_field=COLUMN_NAME

--destination_table 플래그와 함께 사용합니다. 시간 기준 파티션 나누기의 파티션 나누기 열을 지정합니다. 이 값을 사용하지 않고 시간 기준 파티션 나누기를 사용 설정하면 수집 시간을 기준으로 테이블 파티션이 나눠집니다.

--time_partitioning_type=INTERVAL

--destination_table 플래그와 함께 사용합니다. 대상 테이블의 파티션 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • DAY
  • HOUR
  • MONTH
  • YEAR
--udf_resource=FILE

이 플래그는 legacy SQL 쿼리에만 적용됩니다. Cloud Storage URI나 legacy SQL 쿼리에서 사용할 사용자 정의 함수 리소스가 포함된 로컬 파일의 경로를 지정합니다. 여러 파일을 지정하려면 이 플래그를 반복합니다.

--use_cache={true|false}

쿼리 결과 캐싱을 허용하지 않으려면 false로 설정합니다. 기본값은 true입니다.

--use_legacy_sql={true|false}

표준 SQL 쿼리를 실행하려면 false로 설정합니다. 기본값은 true입니다. 이 명령어는 legacy SQL을 사용합니다.

QUERY

실행하려는 쿼리입니다.

bq query 명령어 사용에 대한 자세한 내용은 대화형 및 일괄 쿼리 실행을 참조하세요.

bq remove-iam-policy-binding

bq remove-iam-policy-binding 명령어를 사용하여 리소스의 IAM 정책을 검색하고 한 번에 정책의 binding을 삭제합니다. 리소스는 테이블 또는 뷰일 수 있습니다.

이 명령어는 다음 3단계 프로세스를 대체합니다.

  1. bq get-iam-policy 명령어를 사용하여 JSON 형식의 정책 파일 검색
  2. 정책 파일 수정
  3. bq set-iam-policy 명령어를 사용하여 binding 없이 정책 업데이트

개요

bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE

플래그 및 인수

bq remove-iam-policy-binding 명령어는 다음 플래그와 인수를 사용합니다.

--member=MEMBER_TYPE:MEMBER

필수 항목입니다. --member 플래그를 사용하여 IAM 정책 binding의 구성원 부분을 지정합니다. --role 플래그와 함께 --member 플래그가 필요합니다. --member--role 플래그의 한 조합은 하나의 binding과 같습니다.

MEMBER_TYPE 값은 IAM 정책 binding의 구성원 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • user
  • serviceAccount
  • group
  • domain

MEMBER 값은 IAM 정책 binding에서 구성원의 이메일 주소 또는 도메인을 지정합니다.

--role=ROLE

필수 항목입니다. IAM 정책 binding의 역할 부분을 지정합니다. --member 플래그와 함께 --role 플래그가 필요합니다. --member--role 플래그의 한 조합은 하나의 binding과 같습니다.

--table={true|false} 또는 -t={true|false}

선택사항. 테이블 또는 뷰의 IAM 정책에서 binding을 삭제하려면 true로 설정합니다. 기본값은 false입니다.

RESOURCE는 정책 binding을 삭제할 테이블 또는 뷰입니다.

자세한 내용은 IAM 정책 참조를 확인하세요.

bq rm

bq rm 명령어를 사용하여 BigQuery 리소스를 삭제합니다.

개요

bq rm [FLAGS] RESOURCE

플래그 및 인수

bq rm 명령어는 다음 플래그와 인수를 사용합니다.

--capacity_commitment={false|true}
용량 약정을 삭제하려면 true로 설정하고 --location 플래그를 사용하여 삭제할 약정의 위치를 지정한 후 RESOURCE를 삭제하려는 약정의 ID로 바꿉니다.
--dataset={true|false} 또는 -d={true|false}
데이터 세트를 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--force={true|false} 또는 -f={true|false}
표시하지 않고 리소스를 삭제하려면 true로 설정하세요. 기본값은 false입니다.
--job={true|false} 또는 -j={true|false}
작업을 삭제하려면 true로 설정하세요. 기본값은 false입니다.
--model={true|false} 또는 -m={true|false}
BigQuery ML 모델을 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--recursive={true|false} 또는 -r{true|false}
데이터 세트와 테이블, 테이블 데이터 또는 모델을 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--reservation={true|false}
예약을 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--reservation_assignment={true|false}
예약 할당을 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--routine={true|false}
루틴을 삭제하려면 true로 설정합니다. 기본값은 false입니다. 루틴은 영구 사용자 정의 함수 ,테이블 함수(미리보기) 또는 저장된 프로시져일 수 있습니다.
--table={true|false} 또는 -t={true|false}
테이블을 삭제하려면 true로 설정합니다. 기본값은 false입니다.
--transfer_config={true|false}
전송 구성을 삭제하려면 true로 설정하세요. 기본값은 false입니다.
RESOURCE
삭제하려는 리소스입니다.

bq rm 명령어 사용에 대한 자세한 내용은 다음을 참조하세요.

bq set-iam-policy

bq set-iam-policy 명령어를 사용하여 리소스의 IAM 정책을 지정하거나 업데이트합니다. 리소스는 테이블 또는 뷰일 수 있습니다. 정책을 설정하면 새 정책이 stdout에 출력됩니다. 정책은 JSON 형식입니다.

업데이트된 정책의 etag 필드는 현재 정책의 etag 값과 일치해야 하며 그렇지 않으면 업데이트가 실패합니다. 이 기능은 동시 업데이트를 방지합니다.

bq get-iam-policy 명령어를 사용하여 리소스의 현재 정책과 etag 값을 가져올 수 있습니다.

개요

bq set-iam-policy [FLAGS] RESOURCE FILE_NAME

플래그 및 인수

bq set-iam-policy 명령어는 다음 플래그와 인수를 사용합니다.

--table={true|false} 또는 -t={true|false}
선택사항. 테이블 또는 뷰의 IAM 정책을 설정하려면 true로 설정합니다. 기본값은 false입니다.

RESOURCE는 정책을 업데이트할 테이블 또는 뷰입니다.

FILE_NAME은 정책이 포함된 파일의 이름(JSON 형식)입니다.

bq set-iam-policy 명령어에 대한 자세한 내용과 예시는 테이블 액세스 제어 소개를 참조하세요.

bq show

bq show 명령어를 사용하여 리소스에 대한 정보를 표시합니다.

개요

bq show [FLAGS] [RESOURCE]

플래그 및 인수

bq show 명령어는 다음 플래그와 인수를 사용합니다.

--assignee_id=ASSIGNEE
--reservation_assignment 플래그와 함께 사용된 경우 폴더, 조직, 프로젝트의 ID를 지정합니다. --assignee_type 플래그를 사용하여 표시할 담당자 유형을 지정합니다.
--assignee_type=TYPE
--reservation_assignment 플래그와 함께 사용된 경우 표시할 항목 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.
  • FOLDER
  • ORGANIZATION
  • PROJECT
--connection={true|false}
연결 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다. 자세한 내용은 연결 리소스 보기를 참조하세요.
--dataset={true|false} 또는 -d={true|false}
데이터 세트에 대한 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--encryption_service_account={true|false}
프로젝트에 암호화 서비스 계정이 있는 경우 이를 표시하고 존재하지 않는 경우 새로 만들기 위해 true로 설정합니다. 기본값은 false입니다. --project_id 플래그와 함께 사용합니다.
--job={true|false} 또는 -j={true|false}
작업에 대한 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--job_type=JOB_TYPE
--reservation_assignment 플래그와 함께 사용된 경우 표시하려는 예약 할당의 작업 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--model={true|false} 또는 -m={true|false}
BigQuery ML 모델 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--reservation={true|false}
예약 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--reservation_assignment={true|false}
true로 설정하면 명령어는 지정된 폴더, 조직 또는 프로젝트에 대한 예약 할당을 표시합니다. 명령어는 대상 리소스의 명시적 할당을 표시합니다. 그렇지 않으면 상위 리소스에서 상속된 할당을 표시합니다. 예를 들어 프로젝트는 상위 폴더에서 할당을 상속할 수 있습니다. 이 플래그를 사용하면 --job_type, --assignee_type, --assignee_id 플래그가 적용됩니다. 기본값은 false입니다.
--routine={true|false}
루틴 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다. 루틴은 영구 사용자 정의 함수 ,테이블 함수(미리보기) 또는 저장된 프로시져일 수 있습니다.
--schema={true|false}
테이블 스키마만 표시하려면 true로 설정합니다. 기본값은 false입니다.
--transfer_config={true|false}
전송 구성에 대한 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--transfer_run={true|false}
전송 실행에 대한 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
--view={true|false}
뷰에 대한 정보를 표시하려면 true로 설정합니다. 기본값은 false입니다.
RESOURCE
정보를 표시할 리소스입니다.

bq show 명령어 사용에 대한 자세한 내용은 다음을 참조하세요.

bq update

bq update 명령어를 사용하여 리소스를 변경합니다.

개요

bq update [FLAGS] [RESOURCE]

플래그 및 인수

bq update 명령어는 다음 플래그와 인수를 사용합니다.

--capacity_commitment={true|false}
용량 약정을 업데이트하려면 true로 설정합니다. 이 플래그를 --merge, --plan, --renewal_plan, --split, --slots 플래그와 함께 사용합니다.
--clear_label=KEY:VALUE
리소스에서 라벨을 삭제합니다. KEY:VALUE 형식을 사용하여 삭제할 라벨을 지정합니다. 이 플래그를 반복하면 라벨을 여러 개 삭제할 수 있습니다.
--clustering_fields=COLUMNS
테이블의 클러스터링 사양을 업데이트합니다. COLUMNS 값은 클러스터링에 사용할 쉼표로 구분된 열 이름 목록입니다. 클러스터링을 삭제하려면 COLUMNS""(빈 문자열)로 설정합니다. 자세한 내용은 클러스터링 사양 수정을 참조하세요.
--concurrency=CONCURRENCY
미리보기 상태입니다. --reservation 플래그와 함께 사용된 경우 동시에 실행되는 대상 쿼리 수입니다. 기본값은 0입니다. 즉, 예약 크기에 따라 동시성이 자동으로 설정됩니다. 자세한 내용은 쿼리 큐 사용을 참조하세요.
--dataset={true|false} 또는 -d={true|false}
데이터 세트를 업데이트하려면 true로 설정합니다. 기본값은 false입니다.
--default_kms_key=KEY
데이터 세트의 테이블 데이터를 암호화하기 위한 기본 Cloud KMS 키 리소스 ID를 지정합니다. 테이블 생성 또는 쿼리에 명시적 키가 제공되지 않으면 기본 키가 사용됩니다.
--default_partition_expiration=SECONDS

데이터 세트에서 새로 생성된 파티션을 나눈 테이블의 모든 파티션에 기본 만료 시간을 초 단위로 지정하는 정수입니다. 이 플래그에는 최솟값이 없습니다.

파티션 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값으로 설정됩니다. 이 속성을 설정한 경우 데이터 세트 수준의 기본 테이블 만료 시간이 있으면 재정의됩니다. 파티션을 나눈 테이블을 만들거나 업데이트할 때 --time_partitioning_expiration 플래그를 지정하면 테이블 수준의 파티션 만료 시간이 데이터 세트 수준의 기본 파티션 만료 시간보다 우선 적용됩니다. 기존 만료 시간을 삭제하려면 0을 지정합니다.

--default_table_expiration=SECONDS

데이터 세트에 새로 생성된 테이블의 기본 수명을 초 단위로 업데이트하는 정수입니다. 만료 시간은 현재 UTC 시간에 이 값을 더한 값으로 설정됩니다. 기존 만료 시간을 삭제하려면 0을 지정합니다.

--description=DESCRIPTION

데이터 세트, 테이블, 테이블 스냅샷, 모델 또는 뷰의 설명을 업데이트합니다.

--destination_reservation_id=RESERVATION_ID

--reservation_assignment 플래그와 함께 사용되는 경우 기존 예약 할당을 지정된 예약으로 이동합니다. 값은 대상 예약의 ID입니다. 자세한 내용은 할당을 다른 예약으로 이동을 참조하세요.

--display_name=DISPLAY_NAME

전송 구성의 표시 이름을 업데이트합니다.

--etag=ETAG

필터 역할을 하며 리소스에 ETAG 인수에 지정된 문자열과 일치하는 ETag가 있는 경우에만 리소스를 업데이트합니다.

--expiration SECONDS

테이블, 모델, 테이블 스냅샷 또는 뷰의 만료 시간을 업데이트하려면 이 플래그를 포함합니다. SECONDS를 업데이트 시간부터 만료 시간까지의 초 수로 바꿉니다. 테이블, 모델, 테이블 스냅샷 또는 뷰의 만료 시간을 삭제하려면 SECONDS 인수를 0으로 설정합니다.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

지정된 테이블 정의로 외부 테이블을 업데이트합니다. 테이블 정의는 로컬 JSON 테이블 정의 파일의 경로 또는 SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI 형식의 인라인 테이블 정의일 수 있습니다. SCHEMA 값은 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등 쉼표로 구분된 열 정의 목록입니다. 테이블 정의 파일을 사용하는 경우 확장자를 제공하지 마세요.

예를 들면 다음과 같습니다.

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--ignore_idle_slots={true|false}

--reservation 플래그와 함께 사용합니다. 지정된 예약에서 실행 중인 작업을 해당 예약에 할당된 슬롯만 사용하도록 제한하려면 true로 설정합니다. 기본값은 false입니다. 지정된 예약의 작업은 다른 예약의 유휴 슬롯 또는 어떤 예약에도 할당되지 않은 슬롯을 사용할 수 있습니다. 자세한 내용은 유휴 슬롯을 참조하세요.

--max_time_travel_hours=HOURS

미리보기에서 데이터 세트의 시간 이동 창의 기간(시간)을 지정합니다. --max_time_travel_hours 값은 48(2일)에서 168(7일) 사이의 정수여야 합니다.

시간 이동 기간에 대한 상세 설명은 시간 이동 기간 구성을 참조하세요.

--merge={true|false}

2개의 용량 약정을 병합하려면 --mergetrue로 설정합니다. --capacity_commitment 플래그를 true로 설정하고, --location 플래그를 사용하여 병합할 약정의 위치를 지정하고, RESOURCE를 병합할 두 약정 ID로 바꿉니다(쉼표로 구분). 자세한 내용은 2개 약정 병합을 참조하세요.

--model={true|false} 또는 -m={true|false}

BigQuery ML 모델의 메타데이터를 업데이트하려면 true로 설정합니다. 기본값은 false입니다.

--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}

전송 구성의 매개변수를 업데이트합니다. 매개변수는 데이터 소스에 따라 다릅니다. 자세한 내용은 BigQuery Data Transfer Service 소개를 참조하세요.

--plan=PLAN

--capacity_commitment 플래그와 함께 사용할 경우 용량 약정을 기간이 더 긴 지정된 약정 요금제로 변환합니다. PLAN을 다음 중 하나로 바꿉니다.

  • MONTHLY
  • ANNUAL
--refresh_window_days=DAYS

전송 구성의 업데이트된 새로고침 기간을 일 단위로 지정하는 정수입니다.

--renewal_plan=PLAN

--capacity_commitment 플래그와 함께 사용하면 연간 용량 약정에 대해 갱신 요금제를 업데이트합니다. PLAN을 다음 중 하나로 바꿉니다.

  • FLEX
  • MONTHLY
  • ANNUAL
--reservation={true|false}

예약을 업데이트할지 여부를 지정합니다. 기본값은 false입니다.

--reservation_assignment={true|false}

예약 할당을 업데이트할지 여부를 지정합니다. 기본값은 false입니다.

--schema={SCHEMA_FILE|SCHEMA}

로컬 JSON 스키마 파일의 경로 또는 FIELD:DATA_TYPE, FIELD:DATA_TYPE 형식 등의 쉼표로 구분된 열 정의 목록 등을 지정합니다. 스키마 파일을 사용하는 경우 파일에 확장자를 포함하지 마세요.

예를 들면 다음과 같습니다.

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--service_account_name=SERVICE_ACCOUNT

전송 구성에 대해 사용자 인증 정보로 사용할 서비스 계정을 지정합니다.

--set_label=KEY:VALUE

업데이트할 라벨을 지정합니다. 여러 라벨을 업데이트하려면 이 플래그를 반복합니다.

--slots=NUMBER_OF_SLOTS

--capacity_commitment--split 플래그와 함께 사용되는 경우 기존 용량 약정에서 새 약정으로 분할할 슬롯 수를 지정합니다. RESOURCE를 분할할 약정의 ID로 바꿉니다.

--reservation 플래그와 함께 사용되는 경우 예약에 있는 슬롯 수를 업데이트합니다.

--source=FILE

리소스를 업데이트하는 데 사용되는 페이로드가 포함된 로컬 JSON 파일의 경로입니다. 예를 들어 이 플래그를 사용하여 업데이트된 access 속성이 있는 데이터세트 리소스가 포함된 JSON 파일을 지정할 수 있습니다. 이 파일은 데이터 세트의 액세스 제어를 덮어쓰는 데 사용됩니다. JSON 파일에는 바이트 순서 표시(BOM)가 포함되면 안 됩니다.

--split={true|false}

true로 설정하고 --capacity_commitment 플래그와 함께 사용할 경우 기존 용량 약정을 분할하도록 지정합니다. --location 플래그를 사용해서 분할할 약정의 위치를 지정하고 --slots 플래그를 사용해서 분할할 슬롯 수를 지정합니다. RESOURCE를 분할하려는 약정의 ID로 바꿉니다. 자세한 내용은 약정 분할을 참조하세요.

--table={true|false} 또는 -t={true|false}

테이블 업데이트 여부를 지정합니다. 기본값은 false입니다.

--target_dataset=DATASET

이 플래그를 지정하면 전송 구성의 대상 데이터 세트가 업데이트됩니다.

--time_partitioning_expiration=SECONDS

시간 기준 파티션을 삭제할 시간을 초 단위로 업데이트하는 정수입니다. 만료 시간은 파티션의 UTC 날짜에 정수 값을 더한 값입니다. 음수는 만료 시간이 없음을 의미합니다.

--time_partitioning_field=COLUMN_NAME

시간 기준 파티션을 만드는 방법을 확인하는 데 사용되는 필드를 업데이트합니다. 이 값을 사용하지 않고 시간 기준 파티션 나누기를 사용 설정하면 로드 시간을 기준으로 테이블 파티션이 나눠집니다.

--time_partitioning_type=INTERVAL

파티션 나누기 유형을 지정합니다. 다음 중 한 가지 값을 사용합니다.

  • DAY
  • HOUR
  • MONTH
  • YEAR

기존 테이블의 파티션 나누기 유형은 변경할 수 없습니다.

--transfer_config={true|false}

전송 구성 업데이트 여부를 지정합니다. 기본값은 false입니다.

--update_credentials={true|false}

전송 구성 사용자 인증 정보를 업데이트할지 여부를 지정합니다. 기본값은 false입니다.

--use_legacy_sql={true|false}

뷰의 SQL 쿼리를 legacy SQL에서 표준 SQL로 업데이트하려면 false로 설정합니다. 기본값은 true입니다. 쿼리는 legacy SQL을 사용합니다.

--view=QUERY

이 플래그를 지정하면 보기의 SQL 쿼리가 업데이트됩니다.

--view_udf_resource=FILE

보기의 SQL 쿼리에서 즉시 사용자 정의 함수 리소스로 로드되고 평가되는 Cloud Storage URI 또는 로컬 코드 파일의 경로를 업데이트합니다. 여러 파일을 지정하려면 이 플래그를 반복합니다.

RESOURCE

업데이트할 리소스입니다.

bq update 명령어 사용에 대한 자세한 내용은 다음을 참조하세요.

bq version

bq version 명령어를 사용하여 bq 명령줄 도구의 버전 번호를 표시합니다.

개요

bq version

bq wait

작업이 완료될 때까지 지정된 시간(초) 동안 대기하려면 bq wait 명령어를 사용합니다. 작업이 지정되지 않은 경우 명령어는 현재 작업이 완료될 때까지 기다립니다.

개요

bq wait [FLAGS] [JOB] [SECONDS]

예시

bq wait
bq wait --wait_for_status=RUNNING 12345 100

플래그 및 인수

bq wait 명령어는 다음 플래그와 인수를 사용합니다.

--fail_on_error={true|false}
작업이 대기 시간 중에 완료된 경우 작업이 실패하더라도 성공을 반환하려면 false로 설정합니다. 기본값은 true로, 대기 시간이 경과한 후에 작업이 계속 실행 중이거나 작업이 완료되었지만 실패한 경우 명령어는 오류와 함께 종료됩니다.
--wait_for_status=STATUS

이 플래그를 지정하면 종료되기 전에 특정 작업 상태가 대기합니다. 다음 중 한 가지 값을 사용합니다.

  • PENDING
  • RUNNING
  • DONE

기본값은 DONE입니다.

JOB

대기할 작업을 지정합니다. bq ls --jobs myProject 명령어를 사용하여 작업 식별자를 찾을 수 있습니다.

SECONDS

작업이 완료될 때까지 대기할 최대 시간(초)을 지정합니다. 0을 입력하면 명령어가 작업이 완료되도록 폴링하고 즉시 결과를 반환합니다. 정수 값을 지정하지 않으면 작업이 완료될 때까지 명령어가 대기합니다.