Legacy SQL 기능 가용성
이 문서에서는 평가 기간 동안의 사용량을 기반으로 하며 2026년 6월 1일 이후에 적용되는 BigQuery 기존 SQL 사용 가능 여부에 대한 향후 제한사항을 설명합니다. 이러한 변경사항은 BigQuery가 기존 SQL에서 BigQuery에 권장되는 ANSI 호환 언어인 GoogleSQL로 전환하는 과정의 일환입니다.
GoogleSQL로 마이그레이션하면 기존 SQL에 비해 다음과 같은 이점이 있습니다.
- BigQuery 고급 런타임을 사용하여 성능을 개선하면 비용 효율성이 높아질 수 있습니다.
- DML 및 DDL 문, 공통 테이블 표현식 (CTE), 복잡한 하위 쿼리 및 조인 조건자, 구체화된 뷰, 검색 색인, 생성형 AI 함수와 같이 기존 SQL에서 지원하지 않는 기능을 사용할 수 있습니다.
기능 사용 가능 여부 작동 방식
BigQuery는 평가 기간 동안 이전 SQL 기능의 사용을 모니터링합니다. 2025년 11월 1일부터 2026년 6월 1일 사이에 기존 SQL을 사용하지 않는 조직과 프로젝트의 경우 평가 기간이 종료된 후 기존 SQL을 사용할 수 없게 됩니다. 평가 기간에 기존 SQL을 사용하는 조직과 프로젝트의 경우 사용하는 특정 기존 SQL 기능 집합을 사용하여 쿼리를 계속 실행할 수 있습니다.
기능 사용량은 조직 수준에서 집계됩니다. 조직 내 프로젝트에서 기능을 사용하는 경우 해당 기능은 조직의 다른 모든 프로젝트에서 계속 사용할 수 있습니다. 조직과 연결되지 않은 프로젝트의 경우 기능 제공 여부가 프로젝트 수준에서 관리됩니다.
Legacy SQL 기능 집합
Legacy SQL 기능은 기본 언어 기능, 확장 언어 기능, 함수 그룹의 세 가지 기능 집합으로 구성됩니다. 다음 섹션에서는 각 세트의 기능을 자세히 설명합니다.
기본 언어 기능
이러한 기능은 기존 SQL의 핵심입니다. 이 전체 기능 집합은 평가 기간 동안 하나 이상의 기존 SQL 쿼리를 실행하는 모든 조직 또는 독립형 프로젝트에서 사용할 수 있습니다.
| 카테고리 | 기능 |
|---|---|
| 쿼리 구문 |
|
| 표현식 로직 | 리터럴:
논리 연산자:
비교 함수:
제어 흐름 문:
|
| 기본 작업 | 산술 연산자:
기본 집계 함수:
|
| 데이터 요소 | 기본 데이터 유형:
구조화되고 부분적으로 지원되는 데이터 유형:
변환 함수:
강제 변환: 모든 자동 데이터 유형 강제 변환이 포함됩니다. |
확장된 언어 기능
이 카테고리에는 기본 집합을 벗어나는 특정 legacy SQL 기능이 포함됩니다. 기본 기능 또는 함수 그룹과 달리 이 카테고리의 각 기능은 개별적으로 추적됩니다. 기능을 계속 사용하려면 평가 기간 동안 각 기능을 명시적으로 사용해야 합니다.
| 카테고리 | 기능 |
|---|---|
| 확장 기능 |
함수 그룹화
내장 함수는 관련 카테고리로 정리되어 있습니다. 평가 기간에 그룹화 내에서 단일 함수를 사용하면 해당 전체 그룹화의 모든 함수를 사용할 수 있습니다.
| 함수 그룹화 | 함수 |
|---|---|
| 고급 윈도우 함수 |
|
| 통계 집계 함수 |
|
| 반복 필드를 반환하는 집계 함수 |
|
| 비트 연산이 포함된 집계 함수 |
|
| 연결을 사용한 집계 함수 |
|
| 정렬이 있는 집계 함수 |
|
| 기본 윈도우 함수 |
|
| 비트 함수 |
|
| 조건식 |
|
| 변환 함수 |
|
| 현재 시간 함수 |
|
| 현재 사용자 함수 |
|
| 날짜 및 시간 함수 |
|
| 함수 RAND |
|
| 반복 필드를 반환하는 함수 |
|
| 해싱 함수 |
|
| IP 함수 |
|
| JSON 함수 |
|
| 수학 함수 |
|
| 수학 쌍곡선 함수 |
|
| TIMESTAMP 함수의 일부 |
|
| 정규 표현식 함수 |
|
| 문자열 함수 |
|
| URL 함수 |
|
| UNIX 타임스탬프 함수 |
|
기능 사용 가능 여부의 예
다음 예시에서는 기능 사용 가능 여부가 작동하는 방식을 보여줍니다.
예: 기본 언어 기능 액세스
평가 기간 동안 프로젝트에서 기존 SQL 쿼리를 실행합니다. T 테이블에 INTEGER 유형의 X 열이 있다고 가정합니다.
#legacySQL
SELECT X FROM T
이렇게 사용하면 조직 내 모든 프로젝트에서 기본 언어 기능 세트의 기능을 사용하는 쿼리를 실행할 수 있습니다. 예를 들어 다음 쿼리는 계속 작동합니다.
#legacySQL
SELECT X FROM T WHERE X > 10
예: 함수 그룹화 사용
프로젝트에서 특정 함수 그룹의 함수 하나를 사용합니다. T 테이블에 FLOAT 유형의 X 열이 있다고 가정합니다.
#legacySQL
SELECT SIN(X) FROM T
SIN() 함수를 사용하면 전체 수학 함수 그룹을 사용할 수 있습니다. 따라서 조직 내의 모든 프로젝트는 COS()와 같은 그룹의 다른 함수를 사용할 수 있습니다.
#legacySQL
SELECT COS(X) FROM T
반대로 조직의 어떤 프로젝트도 통계 그룹화용 집계 함수의 함수를 사용하지 않는 경우 평가 기간이 지난 후 다음 쿼리가 실패합니다.
#legacySQL
SELECT STDDEV(X) FROM T
예: 여러 테이블에 걸친 기능 보존
테이블 X에 열 A (INTEGER)이 있고 테이블 Y에 열 B(FLOAT)이 있다고 가정해 보겠습니다. 프로젝트에서 평가 기간 동안 다음 쿼리를 실행합니다.
#legacySQL
SELECT SIN(A) FROM X
조직은 평가 기간이 끝난 후 다음 쿼리를 실행할 수 있습니다.
첫 번째 쿼리에서 수학 함수 기능이 유지되었기 때문에 쿼리가 작동합니다. INTEGER와 FLOAT 모두 기본 언어 기능의 일부이므로 보존은 사용된 특정 테이블, 열 이름 또는 데이터 유형과 무관합니다.
#legacySQL
SELECT COS(B) FROM Y
예: 복잡한 쿼리
T 테이블에 STRING 유형의 X 열이 있다고 가정합니다. 평가 기간 동안 프로젝트에서 다음 쿼리를 실행합니다.
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
이 쿼리는 기본 언어 기능과 세 가지 함수 그룹(기본 윈도우 함수, 문자열 함수, 반복 값을 반환하는 함수)의 기능을 사용합니다. 조직 내의 모든 프로젝트는 이러한 기능을 유지합니다. 따라서 동일하게 유지된 기능 집합에서 다른 함수 조합을 사용하는 새 쿼리는 성공합니다.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
자주 묻는 질문(FAQ)
신규 조직에서 legacy SQL을 사용할 수 있나요?
평가 기간이 지나면 신규 조직이나 프로젝트에서는 기존 SQL을 사용할 수 없습니다. 특별한 경우 예외를 요청할 수 있습니다. Google Forms에 액세스할 수 없는 경우 대신 bq-legacysql-support@google.com으로 조직 ID, 현재 사용 수준, 최근 사용 날짜, 이전 문제, GoogleSQL로 전환하는 예상 일정과 함께 이메일을 보내세요.
기존 legacy SQL 쿼리가 작동하지 않나요?
기존 쿼리는 평가 기간 동안 조직의 하나 이상의 프로젝트에서 사용한 모든 기존 SQL 기능을 사용하는 한 계속 작동합니다. 이 기간에 사용되지 않은 기능을 사용하는 경우 쿼리가 실패할 수 있으므로 모든 중요한 쿼리가 실행되는지 확인하는 것이 좋습니다.
이전 SQL을 사용하는 기존 조직에서 이전 SQL을 사용하는 새 프로젝트를 만들 수 있나요?
예. 평가 기간 동안 조직의 프로젝트가 액세스한 모든 기능은 조직의 모든 프로젝트(신규 및 기존)에서 계속 사용할 수 있습니다.
조직에서 사용하는 기존 SQL 기능을 확인할 수 있는 도구가 있나요?
특정 기능 사용을 감사하는 도구는 없습니다. 프로젝트별 기존 SQL 쿼리 작업 수에 설명된 대로 INFORMATION_SCHEMA.JOBS 뷰를 쿼리하여 기존 SQL 사용량을 추적할 수 있습니다.
Cloud Logging에서 쿼리 로그를 검토하여 특정 구문 사용을 확인할 수도 있습니다.
꼭 GoogleSQL로 마이그레이션해야 하나요?
이전은 필수는 아니지만 권장됩니다. GoogleSQL은 최신식의 모든 기능을 갖춘 권장 언어입니다.
평가 기간 동안 거의 사용되지 않는 기존 SQL 쿼리가 실행되지 않으면 어떻게 되나요?
쿼리가 계속 작동하도록 하려면 평가 기간에 한 번 실행하세요. 그때 실행할 수 없는 경우 예외를 요청할 수 있습니다. Google Forms에 액세스할 수 없는 경우 대신 bq-legacysql-support@google.com으로 조직 ID, 현재 사용 수준, 최근 사용 날짜, 이전 문제, GoogleSQL로 전환하는 예상 일정과 함께 이메일을 보내세요.
다음 단계
- 쿼리를 기존 SQL에서 GoogleSQL로 마이그레이션하려면 마이그레이션 가이드를 참고하세요.