Membuat set data
Dokumen ini menjelaskan cara membuat set data di BigQuery.
Anda dapat membuat set data dengan cara berikut:
- Menggunakan Konsol Google Cloud.
- Menggunakan kueri SQL.
- Menggunakan perintah
bq mk
di alat command line bq. - Memanggil metode API
datasets.insert
. - Menggunakan library klien.
- Menyalin set data yang sudah ada.
Untuk mengetahui langkah-langkah menyalin set data, termasuk di berbagai region, lihat Menyalin set data.
Untuk mempelajari cara mengkueri tabel di set data publik, lihat Membuat kueri set data publik dengan Konsol Google Cloud.
Batasan set data
Set data BigQuery memiliki batasan berikut:
- Lokasi data set hanya dapat ditetapkan pada waktu pembuatan. Setelah set data dibuat, lokasinya tidak dapat diubah.
Semua tabel yang direferensikan dalam kueri harus disimpan dalam set data di lokasi yang sama.
Saat Anda menyalin tabel, set data yang berisi tabel sumber dan tabel tujuan harus berada di lokasi yang sama.
Nama set data untuk setiap project harus unik.
Sebelum memulai
Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.
Izin yang diperlukan
Untuk membuat set data, Anda memerlukan izin IAM bigquery.datasets.create
.
Setiap peran IAM yang telah ditetapkan berikut mencakup izin yang Anda perlukan untuk membuat set data:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.user
roles/bigquery.admin
Untuk mengetahui informasi selengkapnya tentang peran IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.
Menamai set data
Saat Anda membuat set data di BigQuery, nama set data untuk setiap project harus unik. Nama set data dapat berisi hal berikut:
- Maksimal 1,024 karakter.
- Huruf (huruf besar atau huruf kecil), angka, dan garis bawah.
Nama set data peka huruf besar/kecil secara default. mydataset
dan MyDataset
dapat berdampingan dalam project yang sama, kecuali jika salah satunya menonaktifkan kepekaan huruf besar/kecil.
Nama set data tidak boleh berisi spasi atau karakter khusus seperti -
, &
, @
, atau %
.
Set data tersembunyi
Set data tersembunyi adalah set data yang namanya dimulai dengan garis bawah. Anda bisa melakukan kueri tabel dan tabel virtual di set data tersembunyi dengan cara yang sama seperti yang Anda lakukan pada set data lainnya. Set data tersembunyi memiliki batasan berikut:
- Set data tersebut disembunyikan dari panel Explorer di Konsol Google Cloud.
- Set data tersebut tidak muncul di tabel virtual
INFORMATION_SCHEMA
mana pun. - Set data tersembunyi tidak dapat digunakan dengan set data tertaut.
- Set data tersebut tidak muncul di Data Catalog.
Membuat set data
Untuk membuat set data:
Konsol
Buka halaman BigQuery di konsol Google Cloud.
Di panel Explorer, pilih project tempat Anda ingin membuat set data.
Luaskan opsi
Actions, lalu klik Create dataset.Di halaman Create dataset:
- Untuk Dataset ID, masukkan nama set data yang unik.
Untuk Location type, pilih lokasi geografis untuk set data. Setelah set data dibuat, lokasi tidak dapat diubah.
Opsional: Jika menginginkan masa berlaku tabel dalam set data ini berakhir, pilih Enable table expiration, lalu tentukan Default maximum table age dalam hari.
Opsional: Jika Anda ingin menggunakan kunci enkripsi yang dikelola pelanggan (CMEK), luaskan Advanced options, lalu pilih Customer-managed encryption key (CMEK).
Opsional: Jika Anda ingin menggunakan nama tabel yang tidak peka huruf besar/kecil, luaskan Advanced options, lalu pilih Enable case insensitive table names.
Opsional: Jika Anda ingin menggunakan kolasi default, luaskan Advanced options, pilih Enable default collation, lalu pilih Default Collation.
Opsional: Jika Anda ingin menggunakan mode pembulatan default, luaskan Advanced options, lalu pilih Default Rounding Mode.
Opsional: Jika Anda ingin mengaktifkan model penagihan penyimpanan fisik, luaskan Advanced options, lalu pilih Enable physical storage billing model
Jika Anda mengubah model penagihan set data, perlu waktu 24 jam agar perubahan diterapkan.
Setelah mengubah model penagihan penyimpanan set data, Anda harus menunggu 14 hari sebelum dapat mengubah model penagihan penyimpanan lagi.
Opsional: Jika Anda ingin menetapkan periode perjalanan waktu set data, luaskan Advanced options, lalu pilih Time travel window yang akan digunakan.
Klik Buat set data.
SQL
Gunakan pernyataan CREATE SCHEMA
.
Untuk membuat set data di project selain project default Anda, tambahkan project ID ke ID set data dalam format berikut:
PROJECT_ID.DATASET_ID
.
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( default_kms_key_name = 'KMS_KEY_NAME', default_partition_expiration_days = PARTITION_EXPIRATION, default_table_expiration_days = TABLE_EXPIRATION, description = 'DESCRIPTION', labels = [('LABEL_1','VALUE_1'),('LABEL_2','VALUE_2')], location = 'LOCATION', max_time_travel_hours = HOURS, storage_billing_model = BILLING_MODEL);
Ganti kode berikut:
PROJECT_ID
: project ID AndaDATASET_ID
: ID set data yang Anda buatKMS_KEY_NAME
: nama kunci Cloud Key Management Service default yang digunakan untuk melindungi tabel yang baru dibuat dalam set data ini, kecuali jika kunci yang berbeda diberikan pada saat pembuatannya. Anda tidak dapat membuat tabel yang dienkripsi Google dalam set data yang menetapkan parameter ini.PARTITION_EXPIRATION
: masa aktif default (dalam hari) untuk partisi dalam tabel berpartisi yang baru dibuat. Akhir masa berlaku partisi default tidak memiliki nilai minimum. Waktu habis masa berlaku mengevaluasi tanggal partisi ditambah nilai bilangan bulat. Setiap partisi yang dibuat dalam tabel berpartisi di set data akan dihapusPARTITION_EXPIRATION
hari setelah tanggal partisi. Jika Anda menyediakan opsitime_partitioning_expiration
saat membuat atau memperbarui tabel berpartisi, akhir masa berlaku partisi pada tingkat tabel lebih diutamakan daripada akhir masa berlaku partisi default pada tingkat set data.TABLE_EXPIRATION
: masa aktif default (dalam hari) untuk tabel yang baru dibuat. Nilai minimumnya adalah 0,042 hari (satu jam). Waktu habis masa berlaku mengevaluasi waktu saat ini ditambah dengan nilai bilangan bulat. Setiap tabel yang dibuat dalam set data akan dihapusTABLE_EXPIRATION
hari setelah waktu pembuatannya. Nilai ini diterapkan jika Anda tidak menetapkan akhir masa berlaku tabel saat membuat tabel.DESCRIPTION
: deskripsi set dataLABEL_1:VALUE_1
: key-value pair yang ingin Anda tetapkan sebagai label pertama di set data iniLABEL_2:VALUE_2
: key-value pair yang ingin Anda tetapkan sebagai label keduaLOCATION
: lokasi set data. Setelah set data dibuat, lokasi tidak dapat diubah.HOURS
: durasi dalam jam pada periode perjalanan waktu untuk set data baru. NilaiHOURS
harus berupa bilangan bulat yang dinyatakan dalam kelipatan 24 (48, 72, 96, 120, 144, 168) antara 48 (2 hari) dan 168 (7 hari). Jika opsi ini tidak ditentukan, nilai defaultnya adalah 168 jam.BILLING_MODEL
: menetapkan model penagihan penyimpanan untuk set data. Tetapkan nilaiBILLING_MODEL
kePHYSICAL
untuk menggunakan byte fisik saat menghitung biaya penyimpanan, atau keLOGICAL
untuk menggunakan byte logika.LOGICAL
adalah defaultnya.Jika Anda mengubah model penagihan set data, perlu waktu 24 jam agar perubahan diterapkan.
Setelah mengubah model penagihan penyimpanan set data, Anda harus menunggu 14 hari sebelum dapat mengubah model penagihan penyimpanan lagi.
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Untuk membuat set data baru, gunakan perintah bq mk
dengan flag --location
.
Untuk membuat set data dalam project selain project default Anda, tambahkan project ID ke nama set data dalam format berikut:
PROJECT_ID:DATASET_ID
.
bq --location=LOCATION mk \ --dataset \ --default_kms_key=KMS_KEY_NAME \ --default_partition_expiration=PARTITION_EXPIRATION \ --default_table_expiration=TABLE_EXPIRATION \ --description="DESCRIPTION" \ --label=LABEL_1:VALUE_1 \ --label=LABEL_2:VALUE_2 \ --max_time_travel_hours=HOURS \ --storage_billing_model=BILLING_MODEL \ PROJECT_ID:DATASET_ID
Ganti kode berikut:
LOCATION
: lokasi set data. Setelah set data dibuat, lokasi tidak dapat diubah. Anda dapat menetapkan nilai default untuk lokasi menggunakan file.bigqueryrc
.KMS_KEY_NAME
: nama kunci Cloud Key Management Service default yang digunakan untuk melindungi tabel yang baru dibuat dalam set data ini, kecuali jika kunci yang berbeda diberikan pada saat pembuatannya. Anda tidak dapat membuat tabel yang dienkripsi Google dalam set data yang menetapkan parameter ini.PARTITION_EXPIRATION
: masa aktif default (dalam detik) untuk partisi dalam tabel berpartisi yang baru dibuat. Akhir masa berlaku partisi default tidak memiliki nilai minimum. Waktu habis masa berlaku mengevaluasi tanggal partisi ditambah nilai bilangan bulat. Setiap partisi yang dibuat dalam tabel berpartisi di set data akan dihapusPARTITION_EXPIRATION
detik setelah tanggal partisi. Jika Anda menyediakan--time_partitioning_expiration
flag saat membuat atau memperbarui tabel berpartisi, akhir masa berlaku partisi pada tingkat tabel lebih diutamakan daripada akhir masa berlaku partisi default pada tingkat set data.TABLE_EXPIRATION
: masa aktif default (dalam detik) untuk tabel yang baru dibuat. Nilai minimumnya adalah 3.600 detik (satu jam). Waktu habis masa berlaku mengevaluasi waktu saat ini ditambah dengan nilai bilangan bulat. Setiap tabel yang dibuat dalam set data akan dihapusTABLE_EXPIRATION
detik setelah waktu pembuatannya. Nilai ini diterapkan jika Anda tidak menetapkan akhir masa berlaku tabel saat membuat tabel.DESCRIPTION
: deskripsi set dataLABEL_1:VALUE_1
: key-value pair yang ingin Anda tetapkan sebagai label pertama di set data ini, danLABEL_2:VALUE_2
adalah key-value pair yang ingin Anda tetapkan sebagai label kedua.HOURS
: durasi dalam jam pada periode perjalanan waktu untuk set data baru. NilaiHOURS
harus berupa bilangan bulat yang dinyatakan dalam kelipatan 24 (48, 72, 96, 120, 144, 168) antara 48 (2 hari) dan 168 (7 hari). Jika opsi ini tidak ditentukan, nilai defaultnya adalah 168 jam.BILLING_MODEL
: menetapkan model penagihan penyimpanan untuk set data. Tetapkan nilaiBILLING_MODEL
kePHYSICAL
untuk menggunakan byte fisik saat menghitung biaya penyimpanan, atau keLOGICAL
untuk menggunakan byte logika.LOGICAL
adalah defaultnya.Jika Anda mengubah model penagihan set data, perlu waktu 24 jam agar perubahan diterapkan.
Setelah mengubah model penagihan penyimpanan set data, Anda harus menunggu 14 hari sebelum dapat mengubah model penagihan penyimpanan lagi.
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang Anda buat.
Misalnya, perintah berikut membuat set data bernama mydataset
dengan lokasi data ditetapkan ke US
, akhir masa berlaku tabel defaultnya adalah 3.600 detik (1 jam), dan deskripsi This is my dataset
. Perintah ini menggunakan pintasan -d
, bukan flag --dataset
. Jika Anda menghapus -d
dan --dataset
, perintah defaultnya adalah membuat set data.
bq --location=US mk -d \ --default_table_expiration 3600 \ --description "This is my dataset." \ mydataset
Untuk mengonfirmasi bahwa set data telah dibuat, masukkan perintah bq ls
. Selain itu, Anda dapat membuat tabel saat membuat set data baru menggunakan format berikut: bq mk -t dataset.table
.
Untuk mengetahui informasi selengkapnya tentang cara membuat tabel, lihat Membuat tabel.
Terraform
Gunakan resource google_bigquery_dataset
.
Membuat set data
Contoh berikut akan membuat set data bernama mydataset
:
Saat Anda membuat set data menggunakan resourcegoogle_bigquery_dataset
, resource tersebut akan otomatis memberikan akses untuk set data ke semua akun yang merupakan anggota peran dasar pada level project.
Jika Anda menjalankan terraform show
perintah setelah membuat set data, blok access
untuk set data akan terlihat mirip dengan berikut ini:
Untuk memberikan akses ke set data, sebaiknya gunakan salah satu resource google_bigquery_iam
, seperti ditunjukkan pada contoh berikut, kecuali jika Anda berencana untuk membuat objek yang diotorisasi, seperti tabel virtual yang diotorisasi, dalam set data.
Dalam hal ini, gunakan resource google_bigquery_dataset_access
. Lihat dokumentasi tersebut untuk mengetahui contohnya.
Membuat set data dan memberikan akses ke set data tersebut
Contoh berikut membuat set data bernama mydataset
, lalu menggunakan resource google_bigquery_dataset_iam_policy
untuk memberikan akses ke set data tersebut.
Membuat set data dengan kunci enkripsi yang dikelola pelanggan
Contoh berikut membuat set data bernama mydataset
, dan juga menggunakan google_kms_crypto_key
dan resource google_kms_key_ring
untuk menentukan kunci Cloud Key Management Service bagi set data. Anda harus mengaktifkan Cloud Key Management Service API sebelum menjalankan contoh ini.
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan.
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery C# API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery PHP API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Ruby API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Keamanan set data
Untuk mengontrol akses ke set data di BigQuery, lihat Mengontrol akses ke set data. Untuk informasi tentang enkripsi data, lihat Enkripsi dalam penyimpanan.
Langkah selanjutnya
- Untuk mengetahui informasi selengkapnya tentang cara menampilkan daftar set data dalam project, lihat Menampilkan daftar set data.
- Untuk mengetahui informasi selengkapnya tentang metadata set data, lihat Mendapatkan informasi tentang set data.
- Untuk mengetahui informasi selengkapnya tentang mengubah properti set data, lihat Memperbarui set data.
- Untuk informasi selengkapnya tentang cara membuat dan mengelola label, lihat Membuat dan mengelola label.
Cobalah sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa BigQuery dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba BigQuery gratis