BigQuery의 SQL 소개
이 문서에서는 BigQuery에서 지원되는 문과 SQL 언어를 간략하게 설명합니다.
GoogleSQL은 다음과 같은 유형의 지원되는 문을 포함하는 ANSI와 호환되는 구조화된 쿼리 언어(SQL)입니다.
- 쿼리 문(데이터 쿼리 언어(DQL) 문이라고도 함)은 BigQuery에서 데이터를 분석하는 기본 방법입니다. 테이블 또는 표현식을 하나 이상 스캔하고 계산된 결과 행을 반환합니다. 쿼리 문에는 파이프 구문 (미리보기)이 포함될 수 있습니다.
- 절차적 언어 문은 단일 요청으로 여러 SQL 문을 실행할 수 있게 해주는 GoogleSQL의 절차적 확장입니다. 절차적 문에서 변수와 제어 흐름 문을 사용할 수 있으며 부작용이 있을 수 있습니다.
- 데이터 정의 언어(DDL) 문을 사용하면 테이블, 뷰, 함수, 행 수준 액세스 정책과 같은 데이터베이스 객체를 만들고 수정할 수 있습니다.
- 데이터 조작 언어(DML) 문을 사용하여 BigQuery 테이블에서 데이터를 업데이트, 삽입, 삭제할 수 있습니다.
- 데이터 제어 언어(DCL) 문을 사용하면 액세스 및 용량과 같은 BigQuery 시스템 리소스를 제어할 수 있습니다.
- 트랜잭션 제어 언어(TCL) 문을 사용하면 데이터 수정 트랜잭션을 관리할 수 있습니다.
- 로드 문 및 내보내기 문을 사용하여 BigQuery로 들어오고 나가는 데이터를 관리합니다.
BigQuery SQL 언어
BigQuery는 GoogleSQL 언어를 지원하지만 legacy SQL 언어도 사용할 수 있습니다. BigQuery를 처음 사용하는 경우 Google Cloud에서 다양한 기능을 지원하므로 GoogleSQL을 사용하는 것이 좋습니다. 예를 들어 DDL 및 DML 문과 같은 기능은 GoogleSQL을 통해서만 지원됩니다. legacy SQL은 이전 버전과의 호환성을 위해 유지 관리되므로 고객이 legacy SQL을 사용하는 경우 마이그레이션하는 것이 좋습니다.
기본 언어에서 변경
데이터를 쿼리하는 데 사용하는 인터페이스에 따라 기본 쿼리 언어가 결정됩니다. 다른 언어로 전환하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔의 기본 언어가 GoogleSQL입니다. 언어를 legacy SQL로 변경하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 더보기 > 쿼리 설정 버튼을 클릭합니다.
고급 옵션 섹션에서 SQL 언어에 레거시를 클릭한 후 저장을 클릭합니다. 이에 따라 이 쿼리에 legacy SQL 옵션이 설정됩니다. add_box SQL 쿼리를 클릭하여 새 쿼리를 작성할 때 legacy SQL 옵션을 다시 선택해야 합니다.
SQL
기본 SQL 언어는 GoogleSQL입니다.
프리픽스 #standardSQL
또는 #legacySQL
을 쿼리 일부로 포함시켜 SQL 언어를 설정할 수 있습니다.
이러한 쿼리 프리픽스는 대소문자를 구분하지 않으며 쿼리 앞에 와야 하며 줄바꿈 문자로 쿼리와 구분해야 합니다. 다음 예시에서는 언어를 legacy SQL로 설정하고 출생률 데이터 세트를 쿼리합니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
쿼리 편집기에서 다음 문을 입력합니다.
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
실행을 클릭합니다.
쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 쿼리 실행을 참조하세요.
bq
bq
명령줄 도구의 기본 쿼리 언어는 legacy SQL입니다. GoogleSQL 언어로 전환하려면 명령줄 문에 --use_legacy_sql=false
또는 --nouse_legacy_sql
플래그를 추가합니다.
GoogleSQL 언어로 전환
쿼리 작업에서 GoogleSQL 문법을 사용하려면 use_legacy_sql
매개변수를 false
로 설정합니다.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
GoogleSQL을 기본 언어로 설정
명령줄 도구의 구성 파일 .bigqueryrc
를 편집하여 GoogleSQL을 명령줄 도구 및 대화형 셸의 기본 언어로 설정할 수 있습니다.
.bigqueryrc
에 대한 자세한 내용은 명령어별 플래그의 기본값 설정을 참조하세요.
.bigqueryrc
에서 --use_legacy_sql=false
를 설정하려면 다음 안내를 따르세요.
- 텍스트 편집기에서
.bigqueryrc
를 엽니다. 기본적으로.bigqueryrc
는 사용자 디렉터리에 있습니다(예:$HOME/.bigqueryrc
). 파일에 다음 텍스트를 추가합니다. 이 예시는 GoogleSQL을 쿼리와
mk
명령어(뷰를 만들 때 사용됨)의 기본 문법으로 설정합니다.query
또는mk
명령어 플래그의 기본값을 이미 구성한 경우[query]
또는[mk]
를 다시 추가할 필요가 없습니다.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
저장하고 파일을 닫습니다.
대화형 셸을 사용하는 경우 변경 사항을 적용하려면 종료한 후 다시 시작해야 합니다.
사용할 수 있는 명령줄 플래그에 대한 자세한 내용은 bq 명령줄 도구 참조를 확인하세요.
C#
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 BigQuery C# API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 C# 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 구문을 사용하려면 UseLegacySql
매개변수를 true
로 설정합니다.
Go
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 BigQuery Go API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 Go 클라이언트 라이브러리는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 구문을 사용하려면 쿼리 구성 내 UseLegacySQL
속성을 true
로 설정합니다.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 Java 클라이언트 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 문법을 사용하려면 useLegacySql
매개변수를 true
로 설정합니다.
Node.js
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 BigQuery Node.js API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 Node.js 클라이언트 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 문법을 사용하려면 useLegacySql
매개변수를 true
로 설정합니다.
PHP
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 BigQuery PHP API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 PHP 클라이언트 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 문법을 사용하려면 useLegacySql
매개변수를 true
로 설정합니다.
Python
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 BigQuery Python API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 Python 클라이언트 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 문법을 사용하려면 use_legacy_sql
매개변수를 True
로 설정합니다.
Ruby
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 BigQuery Ruby API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
기본적으로 Ruby 클라이언트 라이브러리에서는 GoogleSQL을 사용합니다.legacy SQL 언어로 전환
쿼리 작업에서 legacy SQL 구문을 사용하려면 legacy_sql: true
옵션을 쿼리에 전달합니다.
다음 단계
- BigQuery에서 SQL 쿼리를 실행하는 방법에 대한 자세한 내용은 대화형 및 일괄 쿼리 작업 실행을 참조하세요.
- 일반적인 쿼리 최적화에 대한 자세한 내용은 쿼리 성능 최적화 소개를 참조하세요.
- BigQuery에서 데이터를 쿼리하는 데 사용되는 GoogleSQL 문법은 쿼리 문법을 참고하세요.
- 쿼리에서 파이프 문법을 사용하는 방법에 관한 자세한 내용은 파이프 문법을 참고하세요.