Bagaimana BigQuery Google mendemokratisasikan analisis data. Bagian 2

Halo, Habr! Pendaftaran untuk jalur kursus baru dibuka sekarang di OTUS Insinyur Data. Untuk mengantisipasi dimulainya kursus, kami terus membagikan materi bermanfaat kepada Anda.

Baca bagian satu

Bagaimana BigQuery Google mendemokratisasikan analisis data. Bagian 2

Manajemen data

Tata Kelola Data yang Kuat adalah prinsip inti dari Twitter Engineering. Saat kami menerapkan BigQuery ke dalam platform kami, kami fokus pada penemuan data, kontrol akses, keamanan, dan privasi.

Untuk menemukan dan mengelola data, kami telah memperluas Lapisan Akses Data menjadi DAL) untuk menyediakan alat bagi data lokal dan Google Cloud, menyediakan antarmuka dan API tunggal bagi pengguna kami. Sebagai Google Katalog Data bergerak menuju ketersediaan umum, kami akan memasukkannya ke dalam proyek kami untuk menyediakan fitur seperti pencarian kolom kepada pengguna.

BigQuery mempermudah berbagi dan mengakses data, namun kami perlu memiliki kontrol atas hal ini untuk mencegah penyelundupan data. Di antara alat lainnya, kami memilih dua fungsi:

  • Berbagi domain dibatasi: Fitur beta untuk mencegah pengguna membagikan kumpulan data BigQuery dengan pengguna di luar Twitter.
  • Kontrol layanan VPC: Kontrol yang mencegah penyelundupan data dan mengharuskan pengguna mengakses BigQuery dari rentang alamat IP yang diketahui.

Kami telah menerapkan persyaratan otentikasi, otorisasi, dan audit (AAA) untuk keamanan sebagai berikut:

  • Autentikasi: Kami menggunakan akun pengguna GCP untuk permintaan ad hoc dan akun layanan untuk permintaan produksi.
  • Otorisasi: Kami mengharuskan setiap kumpulan data memiliki akun layanan pemilik dan grup pembaca.
  • Audit: Kami mengekspor log stackdriver BigQuery, yang berisi informasi eksekusi kueri mendetail, ke dalam kumpulan data BigQuery untuk memudahkan analisis.

Untuk memastikan data pribadi pengguna Twitter ditangani dengan baik, kami harus mendaftarkan semua kumpulan data BigQuery, memberi anotasi pada data pribadi, menjaga penyimpanan yang tepat, dan menghapus (scrape) data yang telah dihapus oleh pengguna.

Kami melihat Google API Pencegahan Kehilangan Data Cloud, yang menggunakan pembelajaran mesin untuk mengklasifikasikan dan mengedit data sensitif, tetapi memilih untuk memberi anotasi secara manual pada kumpulan data karena keakuratannya. Kami berencana menggunakan API Pencegahan Kehilangan Data untuk menambah anotasi khusus.

Di Twitter, kami telah membuat empat kategori privasi untuk kumpulan data di BigQuery, yang tercantum di sini dalam urutan sensitivitas:

  • Kumpulan data yang sangat sensitif disediakan sesuai kebutuhan berdasarkan prinsip hak istimewa paling rendah. Setiap kumpulan data memiliki kelompok pembaca terpisah, dan kami akan melacak penggunaan berdasarkan akun individual.
  • Kumpulan data sensitivitas sedang (nama samaran satu arah menggunakan hashing asin) tidak berisi Informasi Identifikasi Pribadi (PII) dan dapat diakses oleh kelompok karyawan yang lebih besar. Ini adalah keseimbangan yang baik antara masalah privasi dan kegunaan data. Hal ini memungkinkan karyawan untuk melakukan tugas analisis, seperti menghitung jumlah pengguna yang menggunakan suatu fitur, tanpa mengetahui siapa pengguna sebenarnya.
  • Kumpulan data sensitivitas rendah dengan semua informasi identifikasi pengguna. Ini adalah pendekatan yang baik dari sudut pandang privasi, namun tidak dapat digunakan untuk analisis tingkat pengguna.
  • Kumpulan data publik (dirilis di luar Twitter) tersedia untuk semua karyawan Twitter.

Sedangkan untuk logging, kami menggunakan tugas terjadwal untuk menghitung kumpulan data BigQuery dan mendaftarkannya ke Lapisan Akses Data (DAL), gudang metadata Twitter. Pengguna akan membubuhi keterangan pada kumpulan data dengan informasi privasi dan juga menentukan periode penyimpanan. Mengenai pembersihan, kami mengevaluasi kinerja dan biaya dari dua opsi: 1. Membersihkan kumpulan data di GCS menggunakan alat seperti Scalding dan memuatnya ke BigQuery; 2. Menggunakan pernyataan DML BigQuery. Kami kemungkinan akan menggunakan kombinasi kedua metode untuk memenuhi kebutuhan kelompok dan data yang berbeda.

Fungsionalitas sistem

Karena BigQuery adalah layanan terkelola, tim SRE Twitter tidak perlu terlibat dalam pengelolaan sistem atau tugas desk. Memberikan lebih banyak kapasitas untuk penyimpanan dan komputasi sangatlah mudah. Kita dapat mengubah reservasi slot dengan membuat tiket dengan dukungan Google. Kami mengidentifikasi area yang dapat ditingkatkan, seperti alokasi slot layanan mandiri dan penyempurnaan dasbor untuk pemantauan, dan mengirimkan permintaan tersebut ke Google.

Biaya

Analisis awal kami menunjukkan bahwa biaya kueri untuk BigQuery dan Presto berada pada tingkat yang sama. Kami membeli slot untuk diperbaiki harga untuk memiliki biaya bulanan yang stabil alih-alih pembayaran sesuai permintaan per TB data yang diproses. Keputusan ini juga didasarkan pada masukan dari pengguna yang tidak mau memikirkan biaya sebelum mengajukan setiap permintaan.

Menyimpan data di BigQuery menimbulkan biaya selain biaya GCS. Alat seperti Scalding memerlukan kumpulan data di GCS, dan untuk mengakses BigQuery kami harus memuat kumpulan data yang sama ke dalam format BigQuery Kapasitor. Kami sedang mengerjakan koneksi Scalding ke kumpulan data BigQuery yang akan menghilangkan kebutuhan untuk menyimpan kumpulan data di GCS dan BigQuery.

Untuk kasus yang jarang terjadi dan memerlukan kueri yang jarang terjadi sebesar puluhan petabyte, kami memutuskan bahwa menyimpan kumpulan data di BigQuery tidak hemat biaya dan menggunakan Presto untuk langsung mengakses kumpulan data di GCS. Untuk melakukan ini, kami melihat Sumber Data Eksternal BigQuery.

Langkah selanjutnya

Kami telah melihat banyak minat terhadap BigQuery sejak rilis alfa. Kami menambahkan lebih banyak set data dan perintah ke BigQuery. Kami mengembangkan konektor untuk alat analisis data seperti Scalding untuk membaca dan menulis ke penyimpanan BigQuery. Kami sedang mencari alat seperti Looker dan Apache Zeppelin untuk membuat laporan dan catatan kualitas perusahaan menggunakan set data BigQuery.

Kolaborasi kami dengan Google sangat produktif dan kami senang dapat melanjutkan dan mengembangkan kemitraan ini. Kami bekerja sama dengan Google untuk menerapkan kebijakan kami sendiri Pelacak Masalah Mitrauntuk mengirim pertanyaan langsung ke Google. Beberapa di antaranya, seperti pemuat BigQuery Parket, telah diterapkan oleh Google.

Berikut beberapa permintaan fitur prioritas tinggi kami untuk Google:

  • Alat untuk penerimaan data yang nyaman dan dukungan untuk format LZO-Thrift.
  • Segmentasi setiap jam
  • Peningkatan kontrol akses seperti izin tingkat tabel, baris, dan kolom.
  • Pertanyaan Besar Sumber Data Eksternal dengan integrasi Hive Metastore dan dukungan untuk format LZO-Thrift.
  • Peningkatan integrasi katalog data di antarmuka pengguna BigQuery
  • Layanan mandiri untuk alokasi dan pemantauan slot.

Kesimpulan

Mendemokratisasikan analisis data, visualisasi, dan pembelajaran mesin dengan cara yang aman adalah prioritas utama tim Platform Data. Kami mengidentifikasi Google BigQuery dan Data Studio sebagai alat yang dapat membantu mencapai tujuan ini, dan merilis BigQuery Alpha di seluruh perusahaan tahun lalu.

Menurut kami, kueri di BigQuery sederhana dan efisien. Kami menggunakan alat Google untuk menyerap dan mengubah data untuk pipeline sederhana, namun untuk pipeline yang kompleks, kami harus membuat framework Airflow kami sendiri. Di bidang pengelolaan data, layanan BigQuery untuk autentikasi, otorisasi, dan audit memenuhi kebutuhan kami. Untuk mengelola metadata dan menjaga privasi, kami memerlukan lebih banyak fleksibilitas dan harus membangun sistem kami sendiri. BigQuery, sebagai layanan terkelola, mudah digunakan. Biaya kueri serupa dengan alat yang ada. Menyimpan data di BigQuery memerlukan biaya selain biaya GCS.

Secara keseluruhan, BigQuery berfungsi dengan baik untuk analisis SQL umum. Kami melihat banyak minat terhadap BigQuery, dan kami berupaya untuk memigrasikan lebih banyak kumpulan data, merekrut lebih banyak tim, dan membangun lebih banyak pipeline dengan BigQuery. Twitter menggunakan berbagai data yang memerlukan kombinasi alat seperti Scalding, Spark, Presto, dan Druid. Kami bermaksud untuk terus memperkuat alat analisis data kami dan memberikan panduan yang jelas kepada pengguna kami tentang cara terbaik menggunakan penawaran kami.

Kata-kata terima kasih

Saya ingin mengucapkan terima kasih kepada rekan penulis dan rekan satu tim saya, Anju Jha dan Will Pascucci, atas kolaborasi luar biasa dan kerja keras mereka dalam proyek ini. Saya juga ingin mengucapkan terima kasih kepada para teknisi dan manajer dari beberapa tim di Twitter dan Google yang membantu kami dan pengguna BigQuery di Twitter yang telah memberikan masukan yang berharga.

Jika Anda tertarik untuk mengatasi masalah ini, lihat kami Lowongan di tim Platform Data.

Kualitas Data di DWH - Konsistensi Gudang Data

Sumber: www.habr.com

Tambah komentar