Ketersediaan fitur Legacy SQL
Dokumen ini menjelaskan batasan mendatang pada ketersediaan SQL lama BigQuery, yang didasarkan pada penggunaan selama periode evaluasi dan berlaku setelah 1 Juni 2026. Perubahan ini merupakan bagian dari transisi BigQuery dari SQL lama ke GoogleSQL, dialek yang direkomendasikan dan sesuai dengan ANSI untuk BigQuery.
Bermigrasi ke GoogleSQL menawarkan manfaat berikut dibandingkan dengan SQL lama:
- Hal ini dapat lebih hemat biaya, menggunakan runtime lanjutan BigQuery untuk performa yang lebih baik.
- Dengan begitu, Anda dapat menggunakan fitur yang tidak didukung oleh legacy SQL, seperti pernyataan DML dan DDL, Common Table Expressions (CTE), subkueri dan predikat gabungan yang kompleks, tampilan terwujud, indeks penelusuran, dan fungsi AI Generatif.
Cara kerja ketersediaan fitur
BigQuery memantau penggunaan fitur SQL lama selama periode evaluasi. Untuk organisasi dan project yang tidak menggunakan SQL lama antara 1 November 2025 dan 1 Juni 2026, SQL lama tidak akan tersedia setelah periode evaluasi berakhir. Untuk organisasi dan project yang menggunakan SQL lama selama periode evaluasi, Anda dapat terus menjalankan kueri menggunakan kumpulan fitur SQL lama tertentu yang Anda gunakan.
Penggunaan fitur digabungkan di tingkat organisasi. Jika ada project dalam organisasi yang menggunakan fitur, fitur tersebut akan tetap tersedia untuk semua project lain dalam organisasi. Untuk project yang tidak terkait dengan organisasi, ketersediaan fitur dikelola di level project.
Set fitur Legacy SQL
Kemampuan SQL lama disusun menjadi tiga set fitur: kemampuan bahasa dasar, kemampuan bahasa yang diperluas, dan pengelompokan fungsi. Bagian berikut menjelaskan fitur dalam setiap set.
Kemampuan bahasa dasar
Fitur ini adalah inti dari legacy SQL. Seluruh set fitur ini tersedia untuk organisasi atau project mandiri yang menjalankan setidaknya satu kueri SQL lama selama periode evaluasi.
| Kategori | Fitur |
|---|---|
| Sintaksis kueri |
|
| Logika ekspresi | Literal:
Operator logika:
Fungsi perbandingan:
Pernyataan alur kontrol:
|
| Operasi dasar | Operator aritmetika:
Fungsi agregat dasar:
|
| Elemen data | Jenis Data Dasar:
Jenis data terstruktur dan yang sebagian didukung:
Fungsi Transmisi:
Pemaksaan: Semua pemaksaan jenis data otomatis disertakan. |
Kemampuan bahasa yang ditingkatkan
Kategori ini mencakup fitur SQL lama tertentu yang melampaui set dasar. Tidak seperti kemampuan dasar atau pengelompokan fungsi, setiap fitur dalam kategori ini dilacak secara terpisah. Anda harus menggunakan setiap fitur secara eksplisit selama periode evaluasi agar fitur tersebut tetap tersedia.
Pengelompokan fungsi
Fungsi bawaan disusun ke dalam kategori terkait. Penggunaan satu fungsi dalam pengelompokan selama periode evaluasi akan membuat semua fungsi dalam seluruh pengelompokan tersebut tersedia.
| Pengelompokan Fungsi | Fungsi |
|---|---|
| Fungsi jendela lanjutan |
|
| Fungsi agregat untuk statistik |
|
| Fungsi agregat yang menampilkan kolom berulang |
|
| Fungsi agregat dengan operasi bit |
|
| Fungsi agregat dengan penggabungan |
|
| Fungsi agregat dengan pengurutan |
|
| Fungsi jendela dasar |
|
| Fungsi bitwise |
|
| Ekspresi bersyarat |
|
| Fungsi konversi |
|
| Fungsi waktu saat ini |
|
| Fungsi pengguna saat ini |
|
| Fungsi tanggal dan waktu |
|
| Fungsi RAND |
|
| Fungsi yang menampilkan kolom berulang |
|
| Fungsi hashing |
|
| Fungsi IP |
|
| Fungsi JSON |
|
| Fungsi matematika |
|
| Fungsi hiperbolik matematika |
|
| Bagian dari fungsi TIMESTAMP |
|
| Fungsi ekspresi reguler |
|
| Fungsi string |
|
| Fungsi URL |
|
| Fungsi stempel waktu UNIX |
|
Contoh ketersediaan fitur
Contoh berikut menunjukkan cara kerja ketersediaan fitur.
Contoh: Mengakses kemampuan bahasa dasar
Project menjalankan kueri SQL lama selama periode evaluasi. Asumsikan
tabel T berisi kolom X jenis INTEGER.
#legacySQL
SELECT X FROM T
Penggunaan ini memastikan bahwa semua project dalam organisasi tetap dapat menjalankan kueri yang menggunakan fitur apa pun dari set kemampuan bahasa dasar. Misalnya, kueri berikut akan terus berfungsi:
#legacySQL
SELECT X FROM T WHERE X > 10
Contoh: Menggunakan pengelompokan fungsi
Project menggunakan satu fungsi dari pengelompokan fungsi tertentu. Asumsikan tabel T
berisi kolom X dengan jenis FLOAT.
#legacySQL
SELECT SIN(X) FROM T
Penggunaan fungsi SIN() membuat seluruh pengelompokan fungsi matematika tersedia. Oleh karena itu, semua project dalam organisasi dapat menggunakan fungsi lain dari pengelompokan tersebut, seperti COS().
#legacySQL
SELECT COS(X) FROM T
Sebaliknya, kueri berikut akan gagal setelah periode evaluasi jika tidak ada project dalam organisasi yang menggunakan fungsi apa pun dari fungsi agregat untuk pengelompokan statistik.
#legacySQL
SELECT STDDEV(X) FROM T
Contoh: Retensi fitur di berbagai tabel
Anggaplah tabel X memiliki kolom A (INTEGER) dan tabel Y memiliki kolom B
(FLOAT). Project menjalankan kueri berikut selama periode evaluasi:
#legacySQL
SELECT SIN(A) FROM X
Organisasi dapat menjalankan kueri berikut setelah periode evaluasi berakhir.
Kueri berfungsi karena fitur fungsi matematika dipertahankan oleh
kueri pertama. Retensi tidak bergantung pada tabel, nama kolom, atau jenis data tertentu yang digunakan, karena INTEGER dan FLOAT adalah bagian dari kemampuan bahasa dasar.
#legacySQL
SELECT COS(B) FROM Y
Contoh: Kueri kompleks
Asumsikan tabel T berisi kolom X dengan jenis STRING. Project menjalankan kueri berikut selama periode evaluasi:
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
Kueri ini menggunakan fitur dari kemampuan bahasa dasar dan tiga pengelompokan fungsi: fungsi jendela dasar, fungsi string, dan fungsi yang menampilkan nilai berulang. Semua project dalam organisasi mempertahankan fitur ini. Oleh karena itu, kueri baru yang menggunakan kombinasi fungsi yang berbeda dari kumpulan fitur yang sama yang dipertahankan akan berhasil.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
Pertanyaan umum (FAQ)
Dapatkah organisasi baru menggunakan legacy SQL?
Setelah periode evaluasi, SQL lama tidak tersedia untuk organisasi atau project baru. Dalam kasus khusus, Anda dapat meminta pengecualian. Jika Anda tidak dapat mengakses Google Formulir, kirimkan email ke bq-legacysql-support@google.com dengan menyertakan ID organisasi, tingkat penggunaan saat ini, tanggal penggunaan terakhir, tantangan migrasi, dan perkiraan jadwal untuk beralih ke GoogleSQL.
Apakah kueri legacy SQL yang ada akan berhenti berfungsi?
Kueri yang ada akan terus berfungsi selama semua fitur SQL lama yang digunakan oleh kueri tersebut digunakan oleh setidaknya satu project di organisasi Anda selama periode evaluasi. Kueri mungkin gagal jika mengandalkan fitur yang tidak digunakan selama periode ini, jadi sebaiknya pastikan semua kueri penting dijalankan.
Dapatkah organisasi yang sudah ada dan menggunakan legacy SQL membuat project baru yang juga menggunakan legacy SQL?
Ya. Semua fitur yang diakses oleh project mana pun di organisasi Anda selama periode evaluasi akan tetap tersedia untuk semua project, lama dan baru, di organisasi Anda.
Apakah ada alat untuk memeriksa fitur SQL lama yang digunakan organisasi saya?
Tidak ada alat untuk mengaudit penggunaan fitur tertentu. Anda dapat melacak penggunaan SQL lama
dengan membuat kueri tampilan INFORMATION_SCHEMA.JOBS seperti yang dijelaskan dalam
Jumlah tugas kueri SQL lama per project.
Anda juga dapat meninjau log kueri di Cloud Logging untuk memeriksa penggunaan sintaksis tertentu.
Apakah saya harus bermigrasi ke GoogleSQL?
Migrasi tidak wajib, tetapi disarankan. GoogleSQL adalah dialek modern, berfitur lengkap, dan direkomendasikan.
Bagaimana jika kueri SQL lama yang jarang digunakan tidak berjalan selama periode evaluasi?
Untuk memastikan kueri terus berfungsi, jalankan kueri tersebut sekali selama periode evaluasi. Jika Anda tidak dapat menjalankannya saat itu, Anda dapat meminta pengecualian. Jika Anda tidak dapat mengakses Google Formulir, kirimkan email ke bq-legacysql-support@google.com yang berisi ID organisasi, tingkat penggunaan saat ini, tanggal penggunaan terakhir, tantangan migrasi, dan perkiraan jadwal transisi ke GoogleSQL.
Langkah berikutnya
- Untuk memigrasikan kueri dari legacy SQL ke GoogleSQL, lihat panduan migrasi.