Perbandingan dengan pandas-gbq
Library pandas-gbq
menyediakan antarmuka sederhana untuk menjalankan kueri dan mengupload dataframe pandas ke BigQuery. Library ini adalah wrapper tipis di sekitar library klien BigQuery, google-cloud-bigquery
. Kedua
library ini berfokus untuk membantu Anda melakukan analisis data menggunakan SQL. Topik ini memberikan contoh kode yang membandingkan google-cloud-bigquery
dan pandas-gbq
.
Perbedaan utama dalam tingkat fungsi dan dukungan antara kedua library tersebut meliputi:
panda-gbq | google-cloud-bigquery | |
---|---|---|
Support | Library open source yang dikelola oleh PyData dan kontributor sukarelawan | Library open source yang dikelola oleh Google |
Fungsi BigQuery API yang tercakup | Menjalankan kueri dan menyimpan data dari pandas DataFrames ke tabel | Fungsi penuh BigQuery API, dengan dukungan tambahan untuk membaca/menulis DataFrames pandas dan Jupyter magic untuk menjalankan kueri |
docs / sumber | docs / sumber |
Menginstal library
Untuk menggunakan contoh kode dalam panduan ini, instal paket pandas-gbq
dan library klien Python BigQuery.
PIP
Instal paket pandas-gbq
dan google-cloud-bigquery
.
pip install --upgrade pandas-gbq 'google-cloud-bigquery[bqstorage,pandas]'
Conda
Instal paket Conda pandas-gbq
dan google-cloud-bigquery
dari saluran conda-forge
yang dikelola komunitas.
conda install -c conda-forge pandas-gbq google-cloud-bigquery
Menjalankan Kueri
Kedua library mendukung pembuatan kueri data yang tersimpan di BigQuery. Perbedaan utama antar-library meliputi:
panda-gbq | google-cloud-bigquery | |
---|---|---|
Sintaksis SQL default | GoogleSQL (dapat dikonfigurasi dengan pandas_gbq.context.dialect ) |
GoogleSQL |
Konfigurasi kueri | Dikirim sebagai kamus dalam format yang ditentukan dalam referensi REST BigQuery. | Gunakan class QueryJobConfig , yang berisi properti untuk berbagai opsi konfigurasi API. |
Membuat kueri data dengan sintaks GoogleSQL
Contoh berikut menunjukkan cara menjalankan kueri GoogleSQL dengan dan tanpa menentukan project secara eksplisit. Untuk kedua library, jika project tidak ditentukan, project akan ditentukan dari kredensial default.
pandas-gbq
:
google-cloud-bigquery
:
Membuat kueri data dengan sintaksis legacy SQL
Contoh berikut menunjukkan cara menjalankan kueri menggunakan sintaksis legacy SQL. Lihat panduan migrasi GoogleSQL untuk mendapatkan panduan tentang cara memperbarui kueri ke GoogleSQL.
pandas-gbq
:
google-cloud-bigquery
:
Menggunakan BigQuery Storage API untuk mendownload hasil dalam jumlah besar
Gunakan BigQuery Storage API untuk mempercepat download hasil besar sebanyak 15 hingga 31 kali.
pandas-gbq
:
google-cloud-bigquery
:
Menjalankan kueri dengan konfigurasi
Pengiriman konfigurasi dengan permintaan BigQuery API diperlukan untuk melakukan operasi kompleks tertentu, seperti menjalankan kueri berparameter atau menentukan tabel tujuan untuk menyimpan hasil kueri. Di pandas-gbq
, konfigurasi harus dikirim sebagai kamus dalam format yang ditentukan dalam referensi REST BigQuery.
Di google-cloud-bigquery
, class konfigurasi tugas disediakan, seperti QueryJobConfig
, yang berisi properti yang diperlukan untuk mengonfigurasi tugas yang kompleks.
Contoh berikut menunjukkan cara menjalankan kueri dengan parameter bernama.
pandas-gbq
:
google-cloud-bigquery
:
Memuat DataFrame pandas ke tabel BigQuery
Kedua library mendukung upload data dari DataFrame pandas ke tabel baru di BigQuery. Perbedaan utamanya meliputi:
panda-gbq | google-cloud-bigquery | |
---|---|---|
Dukungan jenis | Mengonversi DataFrame menjadi format CSV sebelum mengirim ke API, yang tidak mendukung nilai susun bertingkat atau array. | Mengonversi DataFrame ke format Parquet atau CSV sebelum mengirim ke API, yang mendukung nilai bertingkat dan array. Pilih Parquet untuk nilai struct dan array serta CSV untuk fleksibilitas serialisasi tanggal dan waktu. Parquet adalah pilihan default-nya. Perhatikan bahwa pyarrow , yang merupakan mesin parquet yang digunakan untuk mengirim data DataFrame ke BigQuery API, harus diinstal untuk memuat DataFrame ke tabel. |
Memuat konfigurasi | Dikirim sebagai kamus dalam format yang ditentukan dalam referensi REST BigQuery. | Gunakan class LoadJobConfig , yang berisi properti untuk berbagai opsi konfigurasi API. |
pandas-gbq
:
google-cloud-bigquery
:
google-cloud-bigquery
memerlukan library pyarrow
untuk melakukan serialisasi pandas DataFrame ke file Parquet.
Menginstal paket pyarrow
conda install -c conda-forge pyarrow
atau
pip install pyarrow
Fitur yang tidak didukung oleh pandas-gbq
Meskipun library pandas-gbq
menyediakan antarmuka yang berguna untuk membuat kueri data dan menulis data ke tabel, library ini tidak mencakup banyak fitur BigQuery API, termasuk, tetapi tidak terbatas pada:
- Mengelola set data, termasuk membuat set data baru, memperbarui properti set data, dan menghapus set data
- Memuat data ke BigQuery dari format selain pandas DataFrames
- Mengelola tabel, termasuk mencantumkan tabel dalam set data, menyalin data tabel, dan menghapus tabel
- Mengekspor data BigQuery langsung ke Cloud Storage