Pelajari cara mengakses dan membuat kueri data menggunakan Google BigQuery. Dengan contoh di Python dan R.

Halo, Habr!



Kami baru-baru ini menerbitkan buku mendetail tentang bekerja dengan gudang data Google BigQuery . Hari ini kami memutuskan untuk membahas topik ini lagi secara singkat dan memublikasikan kasus kecil tentang cara membuat kueri data BigQuery dengan Python dan R.



Beri tahu kami di komentar jika Anda tertarik dengan postingan tentang pembelajaran mesin menggunakan BigQuery







Gambaran



Dalam artikel ini, kita akan melihat cara memuat data Google BigQuery menggunakan Python dan R, lalu kita akan berbicara tentang membuat kueri data untuk menarik wawasan yang berguna. Kami akan menggunakan pustaka BigQuery Google Cloud untuk terhubung ke BigQuery Python dan pustaka bigrquery untuk melakukan hal yang sama di R.



Kami juga akan membahas dua tahap manipulasi data BigQuery menggunakan Python / R:



  • Konektivitas Google BigQuery dan akses data
  • Mengkueri data dengan Python / R


Artikel ini mengasumsikan bahwa semua data pengguna Anda disimpan di Google BigQuery.



Python



Python adalah salah satu bahasa tujuan umum paling populer untuk memanipulasi data. Ia menikmati perhatian dan permintaan karena fleksibilitas dan kemudahan penggunaannya, dan dalam ilmu data ia menawarkan berbagai pustaka dan alat untuk berinteraksi dengan sistem pihak ketiga.



Menghubungkan ke Google BigQuery dengan Python



Untuk membuat kueri data Google BigQuery menggunakan Python, Anda perlu menghubungkan klien Python ke instance BigQuery Anda. Ini menggunakan pustaka klien cloud untuk Google BigQuery API. Ada juga solusi alternatif untuk menghubungkan ke BigQuery menggunakan Python; misalnya, pustaka BigQuery-Python tylertreat sangat bagus.



Kami akan bekerja dengan pustaka BigQuery Google Cloud karena sudah stabil dan secara resmi didukung oleh Google.



Ini mengasumsikan bahwa Anda sudah menyiapkan lingkungan pengembangan Python.

Untuk menginstal pustaka, jalankan perintah berikut di baris perintah:



pip install --upgrade google-cloud-bigquery


Selanjutnya, kami menghubungkan klien ke database. Untuk melakukannya, Anda perlu mendownload file JSON yang berisi kredensial untuk layanan BigQuery. Jika Anda tidak memilikinya, berikut cara membuatnya. Selanjutnya, unduh file JSON ini ke komputer lokal Anda.



Sekarang kita sudah menyiapkan semuanya, kita melanjutkan untuk menginisialisasi koneksi. Kode Python berikut digunakan untuk ini:



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


Dalam cuplikan di atas, Anda juga perlu menentukan project_idlokasi file JSON dengan kunci, mengganti ' path/to/file.json' dengan jalur yang benar-benar benar ke file JSON yang disimpan di mesin lokal.



Di Google BigQuery, proyek adalah penampung tingkat atas dan memberikan kontrol akses default atas semua kumpulan data.



Membuat Kueri Data BigQuery dengan Python



Setelah klien BigQuery kami disiapkan dan siap digunakan, kami dapat meminta banyak data BigQuery.



Ini menggunakan metode kueri yang menempatkan tugas kueri di antrean BigQuery. Permintaan tersebut kemudian dieksekusi secara asinkron - ini berarti kami tidak menentukan penundaan apa pun, dan klien menunggu pekerjaan diselesaikan. Setelah ini terjadi, metode tersebut mengembalikan sebuah instance yang Query_Jobberisi hasil.



Anda dapat membaca lebih lanjut tentang cara kerja metode ini di dokumentasi resmi di sini .



Seperti inilah tampilan kode minat Python:



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


Harap dicatat bahwa kueri di atas secara default menggunakan sintaks SQL standar. Jika Anda ingin menggunakan SQL legacy, maka kodenya akan seperti ini:



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


R



Bahasa R adalah alternatif populer untuk Python dan secara aktif digunakan dalam ilmu data. Jika Anda tertarik dengan analisis statistik data yang mendetail dan metodis, ada beberapa bahasa yang dapat bersaing dengan R.



Saat bekerja dengan Google BigQuery, R juga menawarkan pustaka yang andal dan mudah digunakan untuk membuat kueri dan memanipulasi data. Di sini kita akan bekerja dengan pustaka bigrquery yang dibuat dan dikelola oleh Hadley Wickham, Direktur Riset di RStudio.



Ini mengasumsikan bahwa Anda telah menyiapkan lingkungan pengembangan Anda di R. Jika belum, gunakan panduan ini untuk menyiapkan RStudio.



Hubungkan ke Google BigQuery dengan R



Untuk menginstal bigrquery, jalankan perintah berikut dari konsol R:



install.packages(β€œbigrquery”)


Sesederhana itu! Kami siap berangkat.



Seperti halnya Python, otorisasi klien R kami diperlukan untuk mengakses Layanan Google Cloud. Sebagai berikut dari dokumentasi bigrquery, ikuti perintah dari konsol R untuk membuka URL login, lalu salin kode ke konsol.



Harap diperhatikan: otorisasi ini perlu dilakukan hanya sekali. Semua permintaan berikutnya akan secara otomatis memperbarui kredensial akses.



Membuat Kueri Data BigQuery dengan R



Untuk membuat kueri data BigQuery di R, ikuti langkah-langkah berikut:



  • Kami akan menunjukkan ID proyek dari konsol Google Cloud, seperti yang dilakukan dengan Python.
  • Mari kita bentuk string kueri yang akan kita gunakan untuk meminta data.
  • Mari kita menyebutnya query_execdengan ID proyek dan string kueri kita.


Inilah kode untuk melakukan semua ini:



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


Seperti halnya Python, Anda dapat menjalankan kueri yang ditulis dalam SQL lama. Anda juga dapat mengubah nilainya useLegacySqlmenjadi TRUEdalam fungsi Anda query_exec.



Kesimpulan



Jadi, kami memeriksa betapa mudah dan sederhananya bekerja dengan data yang disimpan di Google BigQuery, merujuknya pada Python dan R.



Dalam dua bahasa ini, tidak sulit untuk membuat model statistik berdasarkan data yang diproses dengan cara ini, dan menggunakan model itu sendiri dalam tujuan yang berbeda: untuk memahami bagaimana pengguna berperilaku dalam aplikasi, untuk memprediksi tingkat churn, dll.



All Articles