Transformasi data antara MongoDB Atlas dan Google Cloud

Last reviewed 2023-12-13 UTC

Banyak perusahaan menggunakan MongoDB sebagai datastore operasional dan ingin memperkaya nilai data tersebut dengan melakukan analisis yang kompleks pada data tersebut. Untuk melakukannya, data MongoDB harus digabungkan dan dipindahkan ke data warehouse tempat analisis dapat dilakukan. Arsitektur referensi ini menjelaskan cara mengonfigurasi pipeline integrasi ini di Google Cloud.

Dalam arsitektur ini, Anda menggunakan template Dataflow untuk mengintegrasikan data dari MongoDB Atlas ke BigQuery. Template Dataflow ini mengubah format dokumen yang digunakan oleh MongoDB menjadi format berbentuk kolom yang digunakan oleh BigQuery. Template ini mengandalkan library Apache Beam untuk melakukan transformasi ini. Oleh karena itu, dokumen ini mengasumsikan bahwa Anda sudah familier dengan MongoDB, dan telah familier dengan Dataflow dan Apache Beam.

Arsitektur

Diagram berikut menunjukkan arsitektur referensi yang Anda gunakan saat men-deploy solusi ini. Diagram ini menunjukkan cara berbagai template Dataflow memindahkan dan mengubah data dari MongoDB ke dalam data warehouse BigQuery.

Arsitektur untuk transformasi data antara MongoDB Atlas dan Google Cloud

Seperti yang ditampilkan dalam diagram, arsitektur ini didasarkan pada tiga template berikut:

  • Template MongoDB ke BigQuery. Template Dataflow ini adalah pipeline batch yang membaca dokumen dari MongoDB dan menulisnya ke BigQuery tempat data tersebut dapat dianalisis. Jika mau, Anda dapat memperluas template ini dengan menulis fungsi yang ditentukan pengguna (UDF) dalam JavaScript. Untuk contoh UDF, lihat Efisiensi operasional.
  • Template BigQuery ke MongoDB. Template Dataflow ini adalah template batch yang dapat digunakan untuk membaca data yang dianalisis dari BigQuery dan menulisnya ke MongoDB.
  • Template MongoDB ke BigQuery (CDC). Template Dataflow ini adalah pipeline streaming yang berfungsi dengan aliran perubahan MongoDB. Anda membuat aplikasi penayang yang mengirim perubahan dari aliran data perubahan MongoDB ke Pub/Sub. Pipeline kemudian membaca data JSON dari Pub/Sub dan menuliskannya ke BigQuery. Seperti {i>template<i} MongoDB ke BigQuery, Anda dapat memperluas {i>template<i} ini dengan menulis UDF.

    Dengan menggunakan template MongoDB ke BigQuery (CDC), Anda dapat memastikan bahwa setiap perubahan yang terjadi di koleksi MongoDB dipublikasikan ke Pub/Sub. Untuk menyiapkan aliran data perubahan MongoDB, ikuti petunjuk di Aliran perubahan dalam dokumentasi MongoDB.

Kasus penggunaan

Menggunakan BigQuery untuk menganalisis data MongoDB Atlas dapat berguna di berbagai industri, yang mencakup jasa keuangan, retail, manufaktur dan logistik, serta aplikasi game.

Jasa keuangan

Google Cloud dan MongoDB Atlas menawarkan solusi untuk menangani kebutuhan data yang kompleks dan terus berubah dari lembaga keuangan saat ini. Dengan menggunakan BigQuery untuk menganalisis data keuangan dari MongoDB Atlas, Anda dapat mengembangkan solusi untuk tugas berikut:

  • Deteksi penipuan secara real-time. Lembaga keuangan ingin mendeteksi dan mencegah transaksi penipuan secara real time. Dengan menggunakan machine learning (ML) dan menganalisis data perilaku pelanggan di BigQuery, Anda dapat mengidentifikasi pola yang menunjukkan penipuan.
  • Pengalaman pelanggan yang dipersonalisasi. Lembaga keuangan juga tertarik untuk memberikan pengalaman pelanggan yang dipersonalisasi. Dengan menyimpan dan menganalisis data pelanggan di BigQuery, Anda dapat membuat solusi yang menghasilkan rekomendasi yang dipersonalisasi, menawarkan produk dan layanan yang disesuaikan, serta memberikan dukungan pelanggan yang lebih baik.
  • Manajemen risiko. Lembaga keuangan selalu menginginkan proses yang membantu mengidentifikasi dan memitigasi risiko. Dengan menganalisis data dari berbagai sumber di BigQuery, Anda dapat membantu mengidentifikasi pola dan tren yang menunjukkan potensi risiko.

Retail

Penggunaan data pelanggan secara cerdas dengan kemampuan untuk menggabungkannya dengan data produk dan eksekusi engagement yang dipersonalisasi secara real-time menentukan e-commerce masa depan. Untuk memenuhi kebutuhan pelanggan, retailer perlu membuat keputusan berdasarkan data dengan mengumpulkan dan menganalisis data. Dengan BigQuery dan MongoDB Atlas, Anda dapat menggunakan data pelanggan untuk mendorong inovasi dalam personalisasi, seperti di area berikut:

  • Commerce omnichannel. Gunakan MongoDB untuk menyimpan dan mengelola data dari berbagai sumber, termasuk toko online dan offline, aplikasi seluler, serta media sosial. Penyimpanan dan pengelolaan data yang digabungkan dengan analisis BigQuery ini membuatnya cocok bagi retailer omnichannel yang perlu memberikan pengalaman lancar bagi pelanggan mereka di semua saluran.
  • Insight secara real-time. Dengan menggunakan BigQuery, Anda dapat memperoleh insight real-time tentang pelanggan, inventaris, dan performa penjualan. Insight ini membantu Anda membuat keputusan yang lebih baik terkait harga, promosi, dan penempatan produk.
  • Rekomendasi yang dipersonalisasi. Mesin pemberi saran yang dipersonalisasi membantu retailer meningkatkan penjualan dan kepuasan pelanggan. Dengan menyimpan dan menganalisis data pelanggan, Anda dapat mengidentifikasi pola dan tren yang dapat digunakan untuk merekomendasikan produk yang mungkin menarik bagi setiap pelanggan.

Manufaktur dan Logistik

Menganalisis data MongoDB di BigQuery juga menawarkan manfaat berikut bagi industri manufaktur dan logistik:

  • Visibilitas real-time. Anda bisa mendapatkan visibilitas real-time ke operasi Anda. Hal ini membantu Anda mengambil keputusan yang lebih baik terkait produksi, inventaris, dan pengiriman.
  • Pengoptimalan supply chain. Mengelola ketidakpastian supply chain dan menganalisis data dari berbagai sumber membantu Anda mengurangi biaya dan meningkatkan efisiensi.

Game

Analisis di BigQuery juga mendorong developer dan penayang game untuk membuat game modern dan memberikan pengalaman bermain game yang tak tertandingi, termasuk:

  • Gameplay real-time. Anda dapat menggunakan analisis untuk menciptakan pengalaman gameplay real-time guna membuat papan peringkat, sistem matchmaker, dan fitur multiplayer.
  • Pengalaman pemain yang dipersonalisasi. Anda dapat menggunakan kecerdasan buatan (AI) dan ML untuk memberikan rekomendasi tertarget dan mempersonalisasi pengalaman game untuk pemain.
  • Analisis game. Anda dapat menganalisis data game untuk mengidentifikasi tren dan pola yang membantu meningkatkan desain game, gameplay, dan keputusan bisnis.

Alternatif desain

Anda memiliki dua alternatif untuk menggunakan template Dataflow sebagai pipeline integrasi dari MongoDB ke BigQuery: Pub/Sub dengan langganan BigQuery, atau Confluent Cloud.

Pub/Sub dengan langganan BigQuery

Selain menggunakan template Dataflow, Anda dapat menggunakan Pub/Sub untuk menyiapkan pipeline integrasi antara cluster MongoDB dan BigQuery. Untuk menggunakan Pub/Sub, bukan Dataflow, lakukan langkah-langkah berikut:

  1. Konfigurasikan topik dan skema Pub/Sub untuk menyerap pesan dari aliran perubahan MongoDB Anda.
  2. Buat langganan BigQuery di Pub/Sub yang menulis pesan ke tabel BigQuery yang ada saat pesan diterima. Jika tidak menggunakan langganan BigQuery, Anda memerlukan langganan pull atau push dan pelanggan (seperti Dataflow) yang membaca pesan dan menulisnya ke BigQuery.

  3. Siapkan aliran data perubahan yang memproses dokumen baru yang disisipkan dalam MongoDB dan cocok dengan skema yang digunakan untuk Pub/Sub.

Untuk mengetahui detail tentang alternatif ini, lihat Membuat Pipeline Data untuk Aliran Perubahan MongoDB Menggunakan Langganan BigQuery Pub/Sub.

Awan Konfluen

Jika tidak ingin membuat aplikasi penayang sendiri untuk memantau aliran perubahan MongoDB, Anda dapat menggunakan Confluent Cloud. Dalam pendekatan ini, Anda menggunakan Confluent untuk mengonfigurasi konektor sumber MongoDB Atlas untuk membaca aliran data MongoDB. Anda kemudian mengonfigurasi konektor sink BigQuery untuk memasukkan data dari cluster Confluent ke BigQuery.

Untuk mengetahui detail tentang alternatif ini, lihat Data Streaming dari MongoDB ke BigQuery Menggunakan Konektor Confluent.

Pertimbangan desain

Saat membuat solusi MongoDB Atlas ke BigQuery, Anda harus mempertimbangkan area berikut.

Keamanan, privasi, dan kepatuhan

Saat Anda menjalankan pipeline integrasi, Dataflow menggunakan dua akun layanan berikut untuk mengelola keamanan dan izin:

  • Akun layanan Dataflow. Layanan Dataflow menggunakan akun layanan Dataflow sebagai bagian dari permintaan pembuatan tugas, seperti untuk memeriksa kuota project dan membuat instance pekerja atas nama Anda. Layanan Dataflow juga menggunakan akun ini untuk mengelola tugas selama eksekusi tugas. Akun ini juga dikenal sebagai agen layanan Dataflow.
  • Akun layanan pekerja. Instance pekerja menggunakan akun layanan pekerja untuk mengakses resource input dan output setelah Anda mengirimkan tugas. Secara default, pekerja menggunakan akun layanan default Compute Engine project Anda sebagai akun layanan pekerja. Akun layanan pekerja harus memiliki roles/dataflow.worker.

Selain itu, pipeline Dataflow Anda harus dapat mengakses resource Google Cloud. Untuk mengizinkan akses ini, Anda perlu memberikan peran yang diperlukan ke akun layanan pekerja untuk project Dataflow Anda, sehingga project tersebut dapat mengakses resource saat menjalankan tugas Dataflow. Misalnya, jika tugas Anda menulis ke BigQuery, akun layanan Anda juga harus memiliki setidaknya peran roles/bigquery.dataEditor di tabel atau resource lain yang akan diperbarui.

Pengoptimalan biaya

Biaya menjalankan template Dataflow bergantung pada node pekerja yang dijadwalkan dan jenis pipeline. Untuk memahami biaya, lihat Harga Dataflow.

Setiap template Dataflow dapat menangani pemindahan data antara satu koleksi MongoDB ke satu tabel BigQuery. Oleh karena itu, seiring dengan meningkatnya jumlah koleksi, biaya penggunaan template Dataflow juga dapat meningkat.

Efisiensi operasional

Untuk menggunakan dan menganalisis data MongoDB secara efisien, Anda mungkin perlu melakukan transformasi kustom data tersebut. Misalnya, Anda mungkin perlu memformat ulang data MongoDB agar cocok dengan skema target, menyamarkan data sensitif, atau memfilter beberapa elemen dari output. Jika perlu melakukan transformasi tersebut, Anda dapat menggunakan UDF untuk memperluas fungsi MongoDB template BigQuery tanpa harus mengubah kode template.

UDF adalah fungsi JavaScript. UDF akan menerima dan menampilkan string JSON. Kode berikut menunjukkan transformasi contoh:

/**
* A simple transform function.
* @param {string} inJson
* @return {string} outJson
*/
function transform(inJson) {
   var outJson = JSON.parse(inJson);
   outJson.key = "value";
   return JSON.stringify(outJson);
}

Untuk mengetahui informasi lebih lanjut cara membuat UDF, baca Membuat fungsi yang ditentukan pengguna untuk template Dataflow.

Setelah membuat UDF, Anda perlu melakukan langkah-langkah berikut untuk memperluas template MongoDB ke BigQuery agar dapat menggunakan UDF ini:

  • Pertama, Anda harus memuat file JavaScript yang berisi UDF ke Google Cloud Storage.
  • Kemudian, ketika Anda membuat tugas Dataflow dari template, Anda harus menetapkan parameter template berikut:
    • Tetapkan parameter javascriptDocumentTransformGcsPath ke lokasi Cloud Storage file JavaScript.
    • Tetapkan parameter javascriptDocumentTransformFunctionName ke nama UDF.

Untuk mengetahui informasi selengkapnya tentang cara memperluas template dengan UDF, lihat template MongoDB ke BigQuery.

Pengoptimalan performa

Performa transformasi MongoDB ke BigQuery bergantung pada faktor-faktor berikut:

  • Ukuran dokumen MongoDB.
  • Jumlah koleksi MongoDB.
  • Apakah transformasi bergantung pada skema tetap atau skema yang bervariasi.
  • Pengetahuan tim implementasi tentang transformasi skema yang menggunakan UDF berbasis JavaScript.

Deployment

Untuk men-deploy arsitektur referensi ini, lihat Men-deploy transformasi data antara MongoDB dan Google Cloud.

Langkah selanjutnya

Kontributor

Penulis:

Kontributor lainnya: