Banyak perusahaan menggunakan MongoDB sebagai datastore operasional dan ingin meningkatkan nilai data tersebut dengan melakukan analisis yang kompleks. Untuk melakukannya, data MongoDB perlu 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 kolom yang digunakan oleh BigQuery. Template ini mengandalkan library Apache Beam untuk melakukan transformasi ini. Oleh karena itu, dokumen ini mengasumsikan bahwa Anda sudah memahami MongoDB, dan memiliki sedikit pemahaman tentang 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 data warehouse BigQuery.
Seperti yang ditunjukkan 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 ingin, 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 streaming perubahan MongoDB. Anda membuat aplikasi penayang yang mendorong perubahan dari aliran perubahan MongoDB ke Pub/Sub. Pipeline tersebut kemudian membaca data JSON dari Pub/Sub dan menulisnya ke BigQuery. Seperti template MongoDB ke BigQuery, Anda dapat memperluas template 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 perubahan MongoDB, ikuti petunjuk dalam Aliran perubahan dalam dokumentasi MongoDB.
Kasus penggunaan
Menggunakan BigQuery untuk menganalisis data MongoDB Atlas dapat berguna di berbagai industri, yang mencakup layanan keuangan, retail, manufaktur, dan logistik, serta aplikasi game.
Jasa keuangan
Google Cloud dan MongoDB Atlas menawarkan solusi untuk menangani kebutuhan data yang kompleks dan selalu 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 yang cerdas dengan kemampuan untuk menggabungkannya dengan data produk dan pelaksanaan engagement yang dipersonalisasi secara real-time akan menentukan e-commerce di masa mendatang. Untuk memenuhi kebutuhan pelanggan, retailer perlu membuat keputusan berbasis data dengan mengumpulkan dan menganalisis data. BigQuery dan MongoDB Atlas memungkinkan Anda menggunakan data pelanggan untuk mendorong inovasi dalam personalisasi, seperti di area berikut:
- E-commerce omnichannel. Gunakan MongoDB untuk menyimpan dan mengelola data dari berbagai sumber, termasuk toko online dan offline, aplikasi seluler, dan media sosial. Penyimpanan dan pengelolaan data ini, ditambah dengan analisis BigQuery, membuatnya ideal untuk retailer omnichannel yang perlu memberikan pengalaman yang lancar bagi pelanggan mereka di semua saluran.
- Insight real-time. Dengan menggunakan BigQuery, Anda bisa mendapatkan insight real-time tentang pelanggan, inventaris, dan performa penjualan. Insight ini membantu Anda membuat keputusan yang lebih baik tentang penetapan harga, promosi, dan penempatan produk.
- Rekomendasi yang dipersonalisasi. Mesin rekomendasi 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 untuk industri manufaktur dan logistik:
- Visibilitas real-time. Anda bisa mendapatkan visibilitas real-time ke dalam operasi Anda. Hal ini membantu Anda membuat keputusan yang lebih baik tentang 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 mendukung developer dan penerbit game untuk membuat game canggih dan memberikan pengalaman game yang tak tertandingi, termasuk hal berikut:
- Gameplay real-time. Anda dapat menggunakan analisis untuk membuat pengalaman game real-time guna membuat papan peringkat, sistem pencari pasangan, dan fitur multiplayer.
- Pengalaman pemutar yang dipersonalisasi. Anda dapat menggunakan kecerdasan buatan (AI) dan ML untuk memberikan rekomendasi yang ditargetkan dan mempersonalisasi pengalaman game bagi pemain.
- Analisis game. Anda dapat menganalisis data game untuk mengidentifikasi tren dan pola yang membantu Anda 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
Sebagai alternatif penggunaan 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:
- Konfigurasikan skema dan topik Pub/Sub untuk menyerap pesan dari aliran perubahan MongoDB Anda.
Buat langganan BigQuery di Pub/Sub yang menulis pesan ke tabel BigQuery yang ada saat pesan diterima. Jika tidak menggunakan langganan BigQuery, Anda akan memerlukan langganan pull atau push dan subscriber (seperti Dataflow) yang membaca pesan dan menulisnya ke BigQuery.
Siapkan aliran perubahan yang memproses dokumen baru yang disisipkan di MongoDB dan cocok dengan skema yang digunakan untuk Pub/Sub.
Untuk mengetahui detail tentang alternatif ini, lihat artikel Membuat Pipeline Data untuk Change Stream MongoDB Menggunakan Langganan BigQuery Pub/Sub.
Confluent Cloud
Jika tidak ingin membuat aplikasi penayang sendiri untuk memantau streaming perubahan MongoDB, Anda dapat menggunakan Confluent Cloud. Dalam pendekatan ini, Anda menggunakan Confluent untuk mengonfigurasi konektor sumber MongoDB Atlas guna membaca aliran data MongoDB. Kemudian, Anda akan mengonfigurasi konektor sink BigQuery untuk menyalurkan data dari cluster Confluent ke BigQuery.
Untuk mengetahui detail tentang alternatif ini, lihat Streaming Data 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 harus memberikan
peran yang diperlukan ke akun layanan pekerja untuk project Dataflow
agar project 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
pada tabel atau resource lain
yang akan diperbarui.
Pengoptimalan biaya
Biaya untuk 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 atau menyamarkan data sensitif atau memfilter beberapa elemen dari output. Jika perlu melakukan transformasi tersebut, Anda dapat menggunakan UDF untuk memperluas fungsi template MongoDB ke BigQuery tanpa harus mengubah kode template.
UDF adalah fungsi JavaScript. UDF akan menerima dan menampilkan string JSON. Kode berikut menunjukkan contoh transformasi:
/**
* 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 selengkapnya tentang cara membuat UDF, lihat Membuat fungsi yang ditentukan pengguna untuk template Dataflow.
Setelah membuat UDF, Anda harus melakukan langkah-langkah berikut untuk memperluas template MongoDB ke BigQuery guna menggunakan UDF ini:
- Pertama, Anda harus memuat file JavaScript yang berisi UDF ke Google Cloud Storage.
- Kemudian, saat membuat tugas Dataflow dari template, Anda perlu menetapkan parameter template berikut:
- Tetapkan parameter
javascriptDocumentTransformGcsPath
ke lokasi Cloud Storage file JavaScript. - Tetapkan parameter
javascriptDocumentTransformFunctionName
ke nama UDF.
- Tetapkan parameter
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 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
- Untuk menyesuaikan Template Google Dataflow, lihat template di GitHub.
- Pelajari lebih lanjut solusi MongoDB Atlas dan Google Cloud di Peningkatan keterampilan cloud.
- Pelajari lebih lanjut produk Google Cloud yang digunakan dalam arsitektur referensi ini:
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.
Kontributor
Penulis:
- Saurabh Kumar | ISV Partner Engineer
- Venkatesh Shanbhag | Senior Solutions Architect (MongoDB)
Kontributor lainnya:
- Jun Liu | Supportability Tech Lead
- Maridi (Raju) Makaraju | Supportability Tech Lead
- Sergei Lilichenko | Solutions Architect
- Shan Kulandaivel | Group Product Manager