Pengantar tabel eksternal
Halaman ini memperkenalkan tabel eksternal dan memberikan panduan tentang pembuatan kueri data yang disimpan di luar BigQuery.
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 di 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 metode
TableDataList
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.
Pertimbangan lokasi
Saat Anda memilih lokasi untuk data Anda, pertimbangkan hal berikut:
Cloud Storage
Anda dapat berinteraksi dengan data Cloud Storage menggunakan BigQuery dengan cara berikut:
- Membuat kueri data Cloud Storage menggunakan tabel eksternal BigLake atau non-BigLake
- Memuat data Cloud Storage ke BigQuery
- Mengekspor data dari BigQuery ke Cloud Storage
Membuat kueri data Cloud Storage
Saat Anda membuat kueri data di Cloud Storage menggunakan BigLake atau tabel eksternal non-BigLake, data yang Anda kueri harus ditempatkan bersama dengan set data BigQuery Anda. Contoh:
Bucket region tunggal: Jika set data BigQuery Anda berada di region Warsawa (
europe-central2
), bucket Cloud Storage yang sesuai juga harus berada di region Warsawa, atau region ganda Cloud Storage yang mencakup Warsawa. Jika set data BigQuery Anda berada di multi-regionUS
, maka bucket Cloud Storage dapat berada di multi-regionUS
, satu region Iowa (us-central1
), atau dual-region mana pun yang mencakup Iowa. Kueri dari region tunggal lain akan gagal, meskipun bucket berada di lokasi yang terdapat dalam multi-region set data. Misalnya, jika tabel eksternal berada dalam multi-regionUS
dan bucket Cloud Storage berada di Oregon (us-west1
), maka tugas akan gagal.Jika set data BigQuery Anda berada di multi-region
EU
, maka bucket Cloud Storage dapat berada di multi-regionEU
, satu region Belgia (europe-west1
), atau dual-region mana pun yang mencakup Belgia. Kueri dari region tunggal lain akan gagal, meskipun bucket berada di lokasi yang terdapat dalam multi-region set data. Misalnya, jika tabel eksternal berada di multi-regionEU
dan bucket Cloud Storage berada di Warsawa (europe-central2
), maka tugas akan gagal.Bucket dual-region: Jika set data BigQuery Anda berada di region Tokyo (
asia-northeast1
), maka bucket Cloud Storage yang sesuai harus berada di region Tokyo, atau di dual-region yang mencakup Tokyo, seperti dual-regionASIA1
. Untuk mengetahui informasi selengkapnya, lihat Membuat bucket dual-region.Jika bucket Cloud Storage berada di dual-region
NAM4
atau dual-region mana pun yang mencakup region Iowa (us-central1
), maka set data BigQuery yang sesuai dapat berada di multi-regionUS
atau di Iowa (us-central1
).Jika bucket Cloud Storage berada di dual-region
EUR4
atau dual-region mana pun yang mencakup region Belgia (europe-west1
), maka set data BigQuery yang sesuai dapat berada di multi-regionEU
atau di Belgia (europe-west1
).Bucket multi-region: 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 mencakup Iowa (us-central1
), seperti dual-regionNAM4
, atau dalam dual-region kustom yang mencakup Iowa (us-central1
).Jika set data BigQuery Anda berada di
EU
multi-region, bucket Cloud Storage yang sesuai harus berada diEU
multi-region, di dual-region yang mencakup Belgia (europe-west1
), sepertiEUR4
dual-region, atau dalam region ganda kustom yang mencakup Belgia.
Untuk informasi selengkapnya tentang lokasi Cloud Storage yang didukung, lihat Lokasi bucket dalam dokumentasi Cloud Storage.
Memuat data dari Cloud Storage
Saat Anda memuat data dari Cloud Storage menggunakan tabel eksternal BigLake atau non-BigLake, data yang Anda muat harus ditempatkan bersama dengan set data BigQuery Anda.
Anda dapat memuat data dari bucket Cloud Storage yang berada di lokasi mana pun jika set data BigQuery Anda berada di multi-region
US
."- Bucket multi-region: Jika
bucket Cloud Storage yang ingin Anda muat terletak di bucket multi-region, maka set data
BigQuery dapat berada di bucket multi-region yang sama atau satu region yang disertakan dalam bucket multi-region yang sama.
Misalnya, jika bucket Cloud Storage berada di region
EU
, maka set data BigQuery Anda dapat berada di multi-regionEU
atau satu region mana pun diEU
. Bucket dual-region: Jika bucket Cloud Storage yang ingin Anda muat terletak di bucket dual-region, maka set data BigQuery dapat ditemukan di region yang disertakan di bucket dual-region, atau di multi-region yang mencakup dual-region. Misalnya, jika bucket Cloud Storage terletak di region
EUR4
, maka set data BigQuery Anda dapat berlokasi di Finlandia (europe-north1
) satu region, Belanda (europe-west4
) satu region, atau multi-regionEU
.Untuk mengetahui informasi selengkapnya, lihat Membuat bucket dual-region.
Bucket satu region: Jika bucket Cloud Storage yang ingin Anda muat berada di satu region, set data BigQuery bisa berada di satu region yang sama, atau di multi-region yang mencakup satu region. Misalnya, jika bucket Cloud Storage Anda berada di region Finlandia (
europe-north1
), set data BigQuery Anda dapat berada di Finlandia atau multi-regionEU
.Satu pengecualian adalah jika set data BigQuery Anda berada di region
asia-northeast1
, maka bucket Cloud Storage Anda dapat berada di multi-regionEU
.
Untuk informasi selengkapnya, lihat Pemuatan batch data.
Mengekspor data ke Cloud Storage
Tempatkan bucket Cloud Storage Anda untuk mengekspor data:- Jika set data BigQuery Anda berada di multi-region
EU
, bucket Cloud Storage yang berisi data yang Anda ekspor harus berada di multi-region yang sama atau di lokasi yang terdapat dalam multi-region tersebut. Misalnya, jika set data BigQuery Anda berada di multi-regionEU
, bucket Cloud Storage dapat berada di region Belgiaeurope-west1
, yang berada di Uni Eropa.Jika set data Anda berada di multi-region
US
, Anda dapat mengekspor data ke bucket Cloud Storage di lokasi mana pun. - Jika set data Anda berada di suatu region, bucket Cloud Storage Anda harus berada di region yang sama. Misalnya,
jika set data Anda berada di region Tokyo
asia-northeast1
, maka bucket Cloud Storage Anda tidak boleh berada di multi-regionASIA
.
Untuk informasi selengkapnya, lihat Mengekspor data tabel.
Bigtable
Saat 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 pengelolaan 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 akan dikenai biaya untuk menjalankan kueri dan byte yang berlaku dibaca jika menggunakan harga BigQuery on-demand (per TiB) atau konsumsi slot jika menggunakan harga kapasitas BigQuery (per slot per 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 informasi tentang harga Bigtable, lihat Harga.
- Untuk mengetahui informasi tentang harga BigQuery, lihat Harga.
Langkah selanjutnya
- 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.