Pengantar tabel eksternal
Dokumen ini menjelaskan cara menggunakan data yang disimpan di luar BigQuery dalam tabel eksternal. Untuk menggunakan sumber data eksternal, Anda juga dapat menggunakan Set data eksternal.
Tabel eksternal non-BigLake memungkinkan Anda membuat kueri data terstruktur di penyimpanan data eksternal. Untuk membuat kueri tabel eksternal non-BigLake, Anda harus memiliki izin ke tabel eksternal dan sumber data eksternal. Misalnya, untuk membuat kueri tabel eksternal non-BigLake yang menggunakan sumber data di Cloud Storage, Anda harus memiliki izin berikut:
bigquery.tables.getData
bigquery.jobs.create
storage.buckets.get
storage.objects.get
Penyimpanan data yang didukung
Anda dapat menggunakan tabel eksternal non-BigLake dengan penyimpanan data berikut:
Dukungan tabel sementara
Anda dapat membuat kueri sumber data eksternal di BigQuery menggunakan tabel permanen atau tabel sementara. Tabel permanen adalah tabel yang dibuat dalam set data dan ditautkan ke sumber data eksternal Anda. Karena tabel ini bersifat permanen, Anda dapat menggunakan kontrol akses untuk membagikan tabel dengan orang lain yang juga memiliki akses ke sumber data eksternal pokok, dan Anda dapat membuat kueri tabel ini kapan saja.
Saat membuat kueri sumber data eksternal menggunakan tabel sementara, Anda mengirimkan perintah yang menyertakan kueri dan membuat tabel non-permanen yang ditautkan ke sumber data eksternal. Saat Anda menggunakan tabel sementara, Anda tidak membuat tabel di salah satu set data BigQuery. Karena tidak disimpan secara permanen dalam sebuah set data, tabel itu tidak dapat dibagikan kepada orang lain. Membuat kueri sumber data eksternal menggunakan tabel sementara berguna untuk kueri ad-hoc satu kali atas data eksternal, atau untuk proses ekstrak, transformasi, dan pemuatan (ETL).
Beberapa file sumber
Jika membuat tabel eksternal non-BigLake berdasarkan Cloud Storage, Anda dapat menggunakan beberapa sumber data eksternal, asalkan sumber data tersebut memiliki skema yang sama. Opsi ini tidak didukung untuk tabel eksternal non-BigLake yang didasarkan pada Bigtable atau Google Drive.
Batasan
Batasan berikut berlaku untuk tabel eksternal:
- BigQuery tidak menjamin konsistensi data untuk tabel data eksternal. Perubahan pada data pokok saat kueri sedang berjalan dapat menghasilkan perilaku yang tidak terduga.
- Performa kueri untuk tabel eksternal mungkin lambat dibandingkan dengan mengkueri data dalam tabel BigQuery standar. Jika kecepatan kueri menjadi prioritas, muat data ke BigQuery, bukan menyiapkan sumber data eksternal. Performa kueri yang menyertakan tabel eksternal bergantung pada jenis penyimpanan eksternal. Misalnya, mengkueri data yang tersimpan di Cloud Storage lebih cepat daripada membuat kueri data yang tersimpan di Google Drive. Secara umum, performa kueri untuk tabel eksternal harus setara dengan membaca data langsung dari sumber data.
- Anda tidak dapat memodifikasi tabel data eksternal menggunakan DML atau metode lainnya. Tabel eksternal bersifat hanya baca untuk BigQuery.
- Anda tidak dapat menggunakan metode JSON API
TableDataList
untuk mengambil data dari tabel eksternal. Untuk informasi selengkapnya, lihattabledata.list
. Untuk mengatasi keterbatasan ini, Anda dapat menyimpan hasil kueri di tabel tujuan. Anda kemudian dapat menggunakan metodeTableDataList
di tabel hasil. - Anda tidak dapat menjalankan tugas BigQuery yang mengekspor data dari tabel eksternal. Untuk mengatasi keterbatasan ini, Anda dapat menyimpan hasil kueri di tabel tujuan. Kemudian, jalankan tugas ekspor terhadap tabel hasil.
- Anda tidak dapat mereferensikan tabel eksternal dalam kueri tabel karakter pengganti.
- Tabel eksternal tidak mendukung pengelompokan. Mereka mendukung partisi dalam cara terbatas. Untuk mengetahui detailnya, lihat Membuat kueri data yang dipartisi secara eksternal.
- Saat Anda membuat kueri sumber data eksternal selain Cloud Storage, hasilnya tidak akan disimpan di cache. (Kueri GoogleSQL di Cloud Storage didukung.) Anda akan dikenai biaya untuk setiap kueri pada tabel eksternal meskipun Anda mengeluarkan kueri yang sama beberapa kali. Jika Anda perlu berulang kali mengeluarkan kueri terhadap tabel eksternal yang tidak sering berubah, pertimbangkan untuk menulis hasil kueri ke tabel permanen dan jalankan kueri terhadap tabel permanen tabel sementara.
- Anda dibatasi pada 16 kueri serentak terhadap sumber data eksternal Bigtable.
- Uji coba kueri gabungan yang menggunakan tabel eksternal mungkin melaporkan batas bawah 0 byte data, meskipun baris ditampilkan. Hal ini karena jumlah data yang diproses dari tabel eksternal tidak dapat ditentukan hingga kueri yang sebenarnya selesai. Menjalankan kueri gabungan akan menimbulkan biaya untuk pemrosesan data ini.
- Anda tidak dapat menggunakan
_object_metadata
sebagai nama kolom di tabel eksternal. File ini dicadangkan untuk penggunaan internal. - BigQuery tidak mendukung tampilan statistik penyimpanan tabel untuk tabel eksternal.
- Tabel eksternal tidak mendukung nama kolom fleksibel.
Pertimbangan lokasi
Saat memilih lokasi untuk tabel eksternal, Anda perlu mempertimbangkan lokasi set data BigQuery dan sumber data eksternal.
Cloud Storage
Saat Anda membuat kueri data di Cloud Storage menggunakan BigLake atau tabel eksternal non-BigLake, bucket harus ditempatkan bersama dengan set data BigQuery Anda yang berisi definisi tabel eksternal. Contoh:
-
Jika bucket Cloud Storage Anda berada di region
us-central1
(Iowa), set data BigQuery Anda harus berada di regionus-central1
(Iowa) atau multi-regionUS
.Jika bucket Cloud Storage Anda berada di region
europe-west4
(Belanda), set data BigQuery Anda harus berada di multi-regioneurope-west4
(Belanda) atauEU
.Jika bucket Cloud Storage Anda berada di region
europe-west1
(Belgia), set data BigQuery yang sesuai juga harus berada di regioneurope-west1
(Belgia). -
Jika bucket Cloud Storage Anda berada di dual-region
NAM4
yang telah ditentukan sebelumnya atau dual-region yang dapat dikonfigurasi yang mencakup regionus-central1
(Iowa), set data BigQuery yang sesuai harus berada di regionus-central1
(Iowa) atau multi-regionUS
.Jika bucket Cloud Storage Anda berada di dual-region
EUR4
yang telah ditentukan sebelumnya atau dual-region yang dapat dikonfigurasi yang mencakup regioneurope-west4
(Belanda), set data BigQuery yang sesuai harus berada di regioneurope-west4
(Belanda) atau multi-regionEU
.Jika bucket Cloud Storage Anda berada di dual-region
ASIA1
yang telah ditentukan sebelumnya, set data BigQuery yang sesuai harus berada di regionasia-northeast1
(Tokyo) atau regionasia-northeast2
(Osaka).Jika bucket Cloud Storage Anda menggunakan dual-region yang dapat dikonfigurasi yang mencakup region
australia-southeast1
(Sydney) danaustralia-southeast2
(Melbourne), bucket BigQuery yang sesuai harus berada di regionaustralia-southeast1
(Sydney) atau regionaustralia-southeast2
(Melbourne). -
Menggunakan lokasi set data multi-region dengan bucket Cloud Storage multi-region tidak direkomendasikan untuk tabel eksternal, karena performa kueri eksternal bergantung pada latensi minimal dan bandwidth jaringan yang optimal.
Jika set data BigQuery Anda berada di multi-region
US
, bucket Cloud Storage yang sesuai harus berada di multi-regionUS
, dalam dual-region yang mencakupus-central1
(Iowa), seperti dual-regionNAM4
, atau dalam dual-region yang dapat dikonfigurasi yang mencakupus-central1
.Jika set data BigQuery Anda berada di multi-region
EU
, bucket Cloud Storage yang sesuai harus berada di multi-regionEU
, di dual-region yang mencakupeurope-west4
(Belanda), seperti dual-regionEUR4
, atau di dual-region yang dapat dikonfigurasi yang mencakupeurope-west4
.
Untuk informasi selengkapnya tentang lokasi Cloud Storage yang didukung, lihat Lokasi bucket dalam dokumentasi Cloud Storage.
Bigtable
Saat Anda membuat kueri data di Bigtable melalui tabel eksternal BigQuery, instance Bigtable Anda harus berada di lokasi yang sama dengan set data BigQuery:
- Region tunggal: Jika set data BigQuery Anda berada di lokasi regional Belgia (
europe-west1
), instance Bigtable yang sesuai harus berada di region Belgia. - Multi-region: Karena performa kueri eksternal bergantung pada latensi minimal dan bandwidth jaringan yang optimal, penggunaan lokasi set data multi-region tidak direkomendasikan untuk tabel eksternal di Bigtable.
Untuk informasi selengkapnya tentang lokasi Bigtable yang didukung, lihat Lokasi Bigtable.
Google Drive
Pertimbangan lokasi tidak berlaku untuk sumber data eksternal Google Drive.
Pengelolaan data
Kembangkan rencana manajemen data:- Jika Anda memilih resource regional storage seperti set data BigQuery atau bucket Cloud Storage, kembangkan rencana untuk mengelola data Anda secara geografis.
Memindahkan data antar-lokasi
Untuk memindahkan set data secara manual dari satu lokasi ke lokasi lain, ikuti langkah-langkah berikut:
-
Ekspor data dari tabel BigQuery ke bucket Cloud Storage di lokasi yang sama dengan set data Anda atau di lokasi yang terdapat dalam lokasi set data Anda. Misalnya, jika set data Anda berada di lokasi multi-region
EU
, Anda dapat mengekspor data ke lokasieurope-west1
Belgia, yang merupakan bagian dari Uni Eropa.Ekspor data dari BigQuery tidak dikenai biaya, tetapi Anda akan dikenai biaya untuk menyimpan data yang diekspor di Cloud Storage. Ekspor BigQuery dikenai batas untuk tugas ekspor.
-
Salin atau pindahkan data dari bucket Cloud Storage yang diekspor ke bucket baru yang Anda buat di lokasi tujuan. Misalnya, jika Anda memindahkan data dari multi-region
US
ke regionasia-northeast1
Tokyo, Anda harus mentransfer data ke bucket yang Anda buat di Tokyo. Untuk informasi tentang cara mentransfer objek Cloud Storage, lihat Menyalin, mengganti nama, dan memindahkan objek dalam dokumentasi Cloud Storage.Mentransfer data antar-region akan menimbulkan biaya traffic keluar jaringan di Cloud Storage.
-
Buat set data BigQuery baru di lokasi baru, lalu muat data Anda dari bucket Cloud Storage ke dalam set data baru.
Anda tidak dikenai biaya untuk memuat data ke BigQuery, tetapi Anda akan dikenai biaya untuk penyimpanan data di Cloud Storage sampai Anda menghapus data atau bucket. Anda juga dikenai biaya untuk penyimpanan data di BigQuery setelah dimuat. Pemuatan data ke BigQuery tunduk pada batas tugas pemuatan.
Anda juga dapat menggunakan Cloud Composer untuk memindahkan dan menyalin set data besar secara terprogram.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Cloud Storage untuk menyimpan dan memindahkan set data besar, lihat Menggunakan Cloud Storage dengan big data.
Harga
Saat membuat kueri tabel eksternal dari BigQuery, Anda dikenai biaya untuk menjalankan kueri dan byte yang berlaku yang dibaca jika menggunakan harga BigQuery on-demand (per TiB) atau penggunaan slot jika menggunakan harga kapasitas BigQuery (per slot-jam).
Jika data Anda disimpan di ORC atau Parquet di Cloud Storage, lihat Penghitungan ukuran data.
Anda juga dikenai biaya untuk penyimpanan data dan resource apa pun yang digunakan oleh aplikasi sumber, sesuai dengan panduan harga aplikasi:
- Untuk mengetahui informasi tentang harga Cloud Storage, lihat Harga Cloud Storage.
- Untuk mengetahui informasi tentang harga Bigtable, lihat Harga.
- Untuk mengetahui informasi tentang harga BigQuery, lihat Harga.
Langkah berikutnya
- Pelajari cara membuat tabel eksternal Bigtable.
- Pelajari cara membuat tabel eksternal Cloud Storage.
- Pelajari cara membuat tabel eksternal Drive.
- Pelajari cara menjadwalkan dan menjalankan pemeriksaan kualitas data dengan Dataplex.