Mengoptimalkan penyimpanan di BigQuery
Halaman ini memberikan praktik-praktik terbaik untuk mengoptimalkan penyimpanan BigQuery. BigQuery menyimpan data dalam format berbasis kolom. Database berorientasi kolom dioptimalkan untuk workload analitis yang menggabungkan data pada kumpulan data yang sangat banyak. Karena kolom biasanya memiliki lebih banyak redundansi daripada baris, karakteristik ini memungkinkan kompresi data yang lebih besar menggunakan teknik seperti encoding run-length. Untuk mengetahui informasi lebih lanjut mengenai cara BigQuery menyimpan data, baca Ringkasan penyimpanan BigQuery. Mengoptimalkan penyimpanan BigQuery akan meningkatkan performa kueri dan mengontrol biaya.
BigQuery memberikan detail tentang konsumsi penyimpanan resource Anda.
Untuk melihat metadata penyimpanan tabel, buat kueri tabel virtual INFORMATION_SCHEMA
berikut:
INFORMATION_SCHEMA.TABLE_STORAGE
INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE_BY_ORGANIZATION
Data tabel cluster
Praktik terbaik: Buat tabel yang dikelompokkan.
Guna mengoptimalkan penyimpanan untuk kueri, mulailah dengan mengelompokkan data tabel. Dengan mengelompokkan kolom yang sering digunakan, Anda dapat mengurangi volume total dari data yang dipindai oleh kueri. Untuk informasi tentang cara membuat cluster, lihat Membuat dan menggunakan tabel yang dikelompokkan.
Data tabel partisi
Praktik terbaik: Bagi tabel besar dengan partisi.
Dengan partisi, Anda dapat mengelompokkan dan mengurutkan data berdasarkan kumpulan karakteristik kolom yang ditentukan, seperti kolom bilangan bulat, kolom unit waktu, atau waktu penyerapan. Partisi meningkatkan performa kueri dan mengontrol biaya dengan mengurangi jumlah byte yang dibaca oleh kueri.
Untuk informasi selengkapnya tentang partisi, lihat Pengantar tabel berpartisi.
Menggunakan setelan masa berlaku tabel dan partisi
Praktik terbaik: Untuk mengoptimalkan penyimpanan, konfigurasikan setelan habis masa berlaku default untuk set data, tabel, dan tabel berpartisi.
Anda dapat mengontrol biaya penyimpanan dan mengoptimalkan penggunaan penyimpanan dengan menetapkan tanggal habis masa berlaku tabel default untuk tabel yang baru dibuat dalam set data. Ketika masa berlaku berakhir, tabel akan dihapus beserta semua data yang ada di tabel itu. Jika Anda menetapkan properti saat set data dibuat, tabel apa pun yang dibuat dalam set data akan dihapus setelah akhir periode masa berlaku. Jika Anda menetapkan properti setelah set data dibuat, hanya tabel baru yang akan dihapus setelah akhir periode masa berlaku.
Misalnya, jika Anda menetapkan masa berlaku tabel default ke tujuh hari, data yang lebih lama akan otomatis dihapus setelah satu minggu.
Opsi ini berguna jika Anda hanya memerlukan akses ke data terbaru. Opsi ini juga berguna jika Anda bereksperimen dengan data dan tidak perlu menyimpannya.
Jika tabel Anda dipartisi berdasarkan tanggal, masa berlaku tabel default set data akan berlaku untuk masing-masing partisi. Anda juga dapat mengontrol akhir masa berlaku partisi menggunakan flag time_partitioning_expiration
di alat command line bq atau setelan konfigurasi expirationMs
di API. Saat masa berlaku partisi berakhir, data dalam partisi akan dihapus, tetapi tabel berpartisi tidak akan dihapus meskipun tabel kosong.
Misalnya, perintah berikut akan membuat partisi habis masa berlakunya setelah tiga hari:
bq mk \ --time_partitioning_type=DAY \ --time_partitioning_expiration=259200 \ project_id:dataset.table
Menggunakan penyimpanan jangka panjang BigQuery
Praktik terbaik: Gunakan penyimpanan jangka panjang BigQuery untuk mengurangi biaya data lama.
Saat Anda memuat data ke penyimpanan BigQuery, data akan tunduk pada harga penyimpanan BigQuery. Daripada mengekspor data lama ke opsi penyimpanan lain (seperti Cloud Storage), Anda dapat memanfaatkan harga penyimpanan jangka panjang BigQuery.
Jika Anda memiliki tabel yang tidak diubah selama 90 hari berturut-turut, harga penyimpanan untuk tabel tersebut akan otomatis turun 50 persen. Jika Anda memiliki tabel berpartisi, setiap partisi akan dipertimbangkan secara terpisah agar memenuhi syarat untuk harga jangka panjang yang tunduk pada aturan yang sama seperti tabel yang tidak berpartisi.
Mengonfigurasi model penagihan penyimpanan
Praktik terbaik: Optimalkan model penagihan penyimpanan berdasarkan pola penggunaan Anda.
BigQuery mendukung penagihan penyimpanan menggunakan byte logis (tidak dikompresi) atau fisik (dikompresi), atau kombinasi keduanya. Model penagihan penyimpanan yang dikonfigurasi untuk setiap set data menentukan harga penyimpanan Anda, tetapi tidak memengaruhi performa kueri.
Anda dapat menggunakan tampilan INFORMATION_SCHEMA
untuk menentukan model penagihan penyimpanan yang paling sesuai berdasarkan pola penggunaan Anda.
Mengidentifikasi data jangka panjang atau jangka pendek
Praktik terbaik: Identifikasi apakah data tingkat baris perlu disimpan dalam jangka panjang, dan hanya simpan data gabungan dalam jangka panjang.
Dalam banyak kasus, detail yang terdapat dalam data tingkat baris atau transaksional berguna dalam jangka pendek, tetapi lebih sedikit dirujuk dalam jangka panjang. Dalam situasi ini, Anda dapat membangun kueri agregasi untuk menghitung dan menyimpan metrik yang terkait dengan data ini, lalu menggunakan akhir masa berlaku tabel atau partisi untuk menghapus data tingkat baris secara sistematis. Hal ini mengurangi biaya penyimpanan sekaligus membuat metrik tetap tersedia untuk konsumsi jangka panjang.
Mengurangi periode perjalanan waktu
Praktik terbaik: Berdasarkan persyaratan, Anda dapat menurunkan periode perjalanan waktu.
Mengurangi periode perjalanan waktu dari nilai default 7 hari akan mengurangi periode retensi untuk data yang dihapus dari atau diubah dalam tabel. Anda hanya akan ditagih untuk penyimpanan perjalanan waktu jika menggunakan model penagihan penyimpanan fisik (terkompresi).
Periode perjalanan waktu ditetapkan di tingkat set data.
Mengarsipkan data ke Cloud Storage
Praktik terbaik: Pertimbangkan untuk mengarsipkan data di Cloud Storage.
Anda dapat memindahkan data dari BigQuery ke Cloud Storage berdasarkan kebutuhan bisnis terkait pengarsipan. Sebagai praktik terbaik, pertimbangkan harga jangka panjang BigQuery sebelum mengekspor data keluar dari BigQuery.
Langkah berikutnya
- Pelajari cara mengoptimalkan biaya.
- Pelajari cara mengoptimalkan kueri.
- Pelajari cara mengoptimalkan fungsi.