Menganalisis data operasional di MongoDB Atlas menggunakan Azure Synapse Analytics

Azure App Service
Azure Data Lake Storage
Azure Event Grid
Azure Synapse Analytics
Power BI

Artikel ini menyajikan solusi untuk mendapatkan wawasan dari data operasional MongoDB Atlas. Solusi ini menghubungkan MongoDB Atlas ke Azure Synapse Analytics. Koneksi memungkinkan untuk mentransfer data dalam batch dan secara real time. Pendekatan real time membuat kumpulan SQL khusus Azure Synapse Analytics tetap sinkron dengan perubahan di sumber data MongoDB Atlas.

ApacheĀ®, Apache Spark, dan logo api adalah merek dagang terdaftar atau merek dagang Dari Apache Software Foundation di Amerika Serikat dan/atau negara lain. Tidak ada dukungan oleh The Apache Software Foundation yang tersirat oleh penggunaan tanda ini.

Logo MongoDB Atlas adalah merek dagang dari MongoDB. Tidak ada dukungan yang tersirat oleh penggunaan tanda ini.

Arsitektur

Diagram berikut menunjukkan cara menyinkronkan data MongoDB Atlas ke Azure Synapse Analytics secara real time.

Architecture diagram that shows data flow from MongoDB Atlas to analysis apps. Interim stages include a change stream API and Azure Synapse Analytics.

Unduh file PowerPoint dari semua diagram dalam artikel ini.

Aliran data

Solusi ini menyajikan dua opsi untuk memicu alur yang menangkap perubahan real time di penyimpanan data operasional (ODS) MongoDB Atlas dan menyinkronkan data. Langkah-langkah berikut menguraikan kedua opsi.

  1. Perubahan terjadi pada data operasional dan transaksional yang disimpan di MongoDB Atlas. API aliran perubahan Mongo Atlas memberi tahu aplikasi berlangganan tentang perubahan secara real time.

  2. Aplikasi web Azure App Service kustom berlangganan aliran perubahan MongoDB. Ada dua versi aplikasi web, Event Grid dan penyimpanan, satu untuk setiap versi solusi. Kedua versi aplikasi mendengarkan perubahan yang disebabkan oleh operasi sisipkan, perbarui, atau hapus di Atlas. Saat aplikasi mendeteksi perubahan, aplikasi menulis dokumen yang diubah sebagai blob ke Azure Data Lake Storage, yang terintegrasi dengan Azure Synapse Analytics. Versi Event Grid aplikasi juga membuat peristiwa baru di Azure Event Grid saat mendeteksi perubahan di Atlas.

  3. Kedua versi solusi memicu alur Azure Synapse Analytics:

    1. Dalam versi Event Grid, pemicu berbasis peristiwa kustom dikonfigurasi di Azure Synapse Analytics. Pemicu tersebut berlangganan topik Event Grid yang diterbitkan aplikasi web. Peristiwa baru tentang topik tersebut mengaktifkan pemicu Azure Synapse Analytics, yang menyebabkan alur data Azure Synapse Analytics berjalan.
    2. Dalam versi penyimpanan, pemicu berbasis penyimpanan dikonfigurasi di Azure Synapse Analytics. Saat blob baru terdeteksi di folder Data Lake Storage terintegrasi, pemicu tersebut diaktifkan, yang menyebabkan alur data Azure Synapse Analytics berjalan.
  4. Dalam aktivitas salin, alur Azure Synapse Analytics menyalin dokumen lengkap yang diubah dari blob Data Lake Storage ke kumpulan SQL khusus. Operasi ini dikonfigurasi untuk melakukan upsert pada kolom yang dipilih. Jika kolom ada di kumpulan SQL khusus, upsert memperbarui kolom. Jika kolom tidak ada, upsert akan menyisipkan kolom.

  5. Kumpulan SQL khusus adalah fitur pergudangan data perusahaan yang menghosting tabel yang diperbarui alur data. Aktivitas salin data alur membuat tabel tersebut tetap sinkron dengan koleksi Atlas yang sesuai.

  6. Laporan dan visualisasi Power BI menampilkan analitik saat ini dan hampir real-time. Data juga disalurkan ke aplikasi hilir. MongoDB Atlas berfungsi sebagai sink dengan menggunakan konektor sink alur data Azure Synapse Analytics. Atlas kemudian menyediakan aplikasi kustom dengan data real-time.

Komponen

  • MongoDB Atlas adalah penawaran database sebagai layanan dari MongoDB. Platform data aplikasi multicloud ini menawarkan pemrosesan transaksional, pencarian berbasis relevansi, analitik real time, dan sinkronisasi data seluler ke cloud. MongoDB juga menawarkan solusi lokal, MongoDB Enterprise Advanced.

  • Perubahan aliran di MongoDB Atlas memberi aplikasi akses ke perubahan data real time sehingga aplikasi dapat segera bereaksi terhadap perubahan tersebut. Aliran perubahan menyediakan cara bagi aplikasi untuk menerima pemberitahuan tentang perubahan pada koleksi, database, atau seluruh kluster penyebaran tertentu.

  • App Service dan fitur Web Apps, Mobile Apps, dan API Apps-nya menyediakan kerangka kerja untuk membangun, menyebarkan, dan menskalakan aplikasi web, aplikasi seluler, dan REST API. Solusi ini menggunakan aplikasi web yang diprogram dalam ASP.NET. Kode tersedia di GitHub:

  • Azure Synapse Analytics adalah layanan inti yang digunakan solusi ini untuk penyerapan, pemrosesan, dan analitik data.

  • Data Lake Storage menyediakan kemampuan untuk menyimpan dan memproses data. Sebagai data lake yang dibangun di atas Blob Storage, Data Lake Storage menyediakan solusi yang dapat diskalakan untuk mengelola data dalam volume besar dari beberapa sumber heterogen.

  • Alur Azure Synapse Analytics digunakan untuk melakukan operasi ekstrak, transformasi, dan pemuatan (ETL) pada data. Azure Data Factory menyediakan layanan serupa, tetapi Anda dapat membuat alur Azure Synapse Analytics dalam Synapse Studio. Anda dapat menggunakan beberapa aktivitas dalam alur yang sama. Anda juga dapat membuat titik akhir dependensi untuk menyambungkan satu aktivitas dengan aktivitas lain di alur.

  • Aliran data pemetaan adalah transformasi data yang dirancang secara visual di Azure Synapse Analytics. Aliran data menyediakan cara bagi teknisi data untuk mengembangkan logika transformasi data tanpa menulis kode. Anda dapat menjalankan aliran data yang dihasilkan sebagai aktivitas dalam alur Azure Synapse Analytics yang menggunakan kluster Apache Spark yang diskalakan. Anda dapat mengoperasikan aktivitas aliran data dengan menggunakan kemampuan penjadwalan, kontrol, alur, dan pemantauan Azure Synapse Analytics yang ada.

  • Kumpulan SQL khusus menyediakan kemampuan pergudangan data untuk data setelah data diproses dan dinormalisasi. Fitur Azure Synapse Analytics ini sebelumnya dikenal sebagai SQL Data Warehouse. Kumpulan SQL khusus membuat data yang disempurnakan tersedia untuk pengguna akhir dan aplikasi Anda.

  • Pemicu Azure Synapse Analytics menyediakan cara otomatis untuk menjalankan alur. Anda dapat menjadwalkan pemicu ini. Anda juga dapat menyiapkan pemicu berbasis peristiwa, seperti pemicu peristiwa penyimpanan dan pemicu peristiwa kustom. Solusi ini menggunakan kedua jenis pemicu berbasis peristiwa.

  • Event Grid adalah broker peristiwa tanpa server yang sangat dapat diskalakan. Anda dapat menggunakan Event Grid untuk mengirimkan peristiwa ke tujuan pelanggan.

  • Power BI adalah kumpulan layanan perangkat lunak dan aplikasi yang menampilkan informasi analitik. Dalam solusi ini, Power BI menyediakan cara untuk menggunakan data yang diproses untuk melakukan analisis tingkat lanjut dan untuk mendapatkan wawasan.

Detail skenario

MongoDB Atlas berfungsi sebagai lapisan data operasional dari banyak aplikasi perusahaan. Database cloud ini menyimpan data dari aplikasi internal, layanan yang menghadap pelanggan, dan API pihak ketiga dari beberapa saluran. Dengan menggunakan alur Azure Synapse Analytics, Anda dapat menggabungkan data MongoDB Atlas dengan data relasional dari aplikasi tradisional lainnya dan data yang tidak terstruktur dari sumber seperti log.

Integrasi batch

Di Azure Synapse Analytics, Anda dapat mengintegrasikan instans lokal MongoDB dengan lancar dan MongoDB Atlas sebagai sumber daya sumber atau sink. MongoDB adalah satu-satunya database NoSQL yang memiliki konektor sumber dan sink untuk Azure Synapse Analytics dan Data Factory.

Dengan data historis, Anda dapat mengambil semua data sekaligus. Anda juga dapat mengambil data secara bertahap untuk periode tertentu dengan menggunakan filter dalam mode batch. Kemudian Anda dapat menggunakan kumpulan SQL dan kumpulan Apache Spark di Azure Synapse Analytics untuk mengubah dan menganalisis data. Jika Anda perlu menyimpan analitik atau hasil kueri di penyimpanan data analitik, Anda dapat menggunakan sumber daya sink di Azure Synapse Analytics.

Architecture diagram that shows the source and sink connectors that connect data from consumers to Azure Synapse Analytics and MongoDB data storage.

Untuk informasi selengkapnya tentang cara menyiapkan dan mengonfigurasi konektor, lihat sumber daya ini:

Konektor sumber menyediakan cara mudah untuk menjalankan Azure Synapse Analytics di atas data operasional yang disimpan di MongoDB atau Atlas. Setelah Anda menggunakan konektor sumber untuk mengambil data dari Atlas, Anda dapat memuat data ke penyimpanan blob Data Lake Storage sebagai file Parquet, Avro, JSON, teks, atau CSV. Anda kemudian dapat mengubah file-file ini atau menggabungkannya dengan file lain dari sumber data lain di lingkungan cloud multi-database, multicloud, atau hibrid.

Anda dapat menggunakan data yang Anda ambil dari MongoDB Enterprise Advanced atau MongoDB Atlas dalam skenario berikut:

  • Untuk mengambil semua data dari tanggal tertentu dari MongoDB dalam batch. Anda kemudian memuat data ke Dalam Data Lake Storage. Dari sana, Anda menggunakan kumpulan SQL tanpa server atau kumpulan Spark untuk analisis, atau Anda menyalin data ke kumpulan SQL khusus. Setelah mengambil batch ini, Anda dapat menerapkan perubahan pada data saat terjadi, seperti yang dijelaskan dalam Aliran Data. Alur sampel Storage-CopyPipeline_mdb_synapse_ded_pool_RTS tersedia sebagai bagian dari solusi ini. Anda dapat mengekspor alur dari GitHub untuk tujuan pemuatan satu kali ini.

  • Untuk menghasilkan wawasan pada frekuensi tertentu, misalnya, untuk laporan harian atau per jam. Untuk skenario ini, Anda menjadwalkan alur untuk mengambil data secara teratur sebelum Menjalankan alur analitik. Anda dapat menggunakan kueri MongoDB untuk menerapkan kriteria filter dan hanya mengambil subkumpulan data tertentu.

Sinkronisasi real time

Perusahaan membutuhkan wawasan yang didasarkan pada data real-time, bukan data kedaluarsa. Penundaan beberapa jam dalam pengiriman wawasan dapat menahan proses pengambilan keputusan dan mengakibatkan hilangnya keunggulan kompetitif. Solusi ini mendorong pengambilan keputusan penting dengan menyebarkan perubahan yang terjadi dalam database transaksional MongoDB ke kumpulan SQL khusus secara real time.

Solusi ini memiliki tiga bagian, yang dijelaskan bagian berikut.

Mengambil perubahan MongoDB Atlas

Aliran perubahan MongoDB menangkap perubahan yang terjadi dalam database. API aliran perubahan membuat informasi tentang perubahan tersedia untuk aplikasi web App Service yang berlangganan aliran perubahan. Aplikasi ini menulis perubahan pada penyimpanan blob Data Lake Storage.

Memicu alur untuk menyebarluaskan perubahan ke Azure Synapse Analytics

Solusi ini menyajikan dua opsi untuk memicu alur Azure Synapse Analytics setelah blob ditulis ke Data Lake Storage:

  • Pemicu berbasis penyimpanan. Gunakan opsi ini jika Anda memerlukan analitik real-time, karena alur akan dipicu segera setelah blob dengan perubahan ditulis. Tetapi opsi ini mungkin bukan pendekatan yang disukai ketika Anda memiliki perubahan data dalam volume tinggi. Azure Synapse Analytics membatasi jumlah alur yang dapat berjalan secara bersamaan. Saat Anda memiliki sejumlah besar perubahan data, Anda mungkin mencapai batas tersebut.

  • Pemicu kustom berbasis peristiwa. Jenis pemicu ini memiliki keuntungan di luar Azure Synapse Analytics, sehingga lebih mudah dikontrol. Versi Event Grid dari aplikasi web menulis dokumen data yang diubah ke penyimpanan blob. Pada saat yang sama, aplikasi membuat peristiwa Event Grid baru. Data dalam peristiwa berisi nama file blob. Alur yang dipicu peristiwa menerima nama file sebagai parameter lalu menggunakan file untuk memperbarui kumpulan SQL khusus.

Menyebarkan perubahan ke kumpulan SQL khusus

Alur Azure Synapse Analytics menyebarluaskan perubahan ke kumpulan SQL khusus. Solusi ini menyediakan alur CopyPipeline_mdb_synapse_ded_pool_RTS di GitHub yang menyalin perubahan blob dari Data Lake Storage ke kumpulan SQL khusus. Alur ini dipicu oleh penyimpanan atau pemicu Event Grid.

Kemungkinan kasus penggunaan

Kasus penggunaan untuk solusi ini mencakup banyak industri dan area:

  • Retail

    • Membangun kecerdasan ke dalam bundling produk dan promosi produk
    • Mengoptimalkan penyimpanan dingin yang menggunakan streaming IoT
    • Mengoptimalkan pengisian ulang inventarisasi
    • Menambahkan nilai ke distribusi omnichannel
  • Perbankan dan keuangan

    • Menyesuaikan layanan keuangan pelanggan
    • Mendeteksi transaksi yang berpotensi penipuan
  • Telekomunikasi

    • Mengoptimalkan jaringan generasi berikutnya
    • Memaksimalkan nilai jaringan tepi
  • Otomotif

    • Mengoptimalkan parameterisasi kendaraan yang terhubung
    • Mendeteksi anomali dalam komunikasi IoT di kendaraan yang terhubung
  • Manufaktur

    • Menyediakan pemeliharaan prediktif untuk mesin
    • Mengoptimalkan manajemen penyimpanan dan inventarisasi

Berikut adalah dua contoh spesifik:

  • Seperti yang dijelaskan artikel ini sebelumnya dalam integrasi Batch, Anda dapat mengambil data MongoDB dalam batch lalu memperbarui data saat perubahan terjadi. Kemampuan ini memungkinkan wawasan real-time untuk pengambilan keputusan dan kesimpulan just-in-time. Fungsionalitas ini berguna untuk analitik informasi sensitif dan penting seperti transaksi keuangan dan data deteksi penipuan.
  • Seperti yang dijelaskan oleh integrasi Batch, Anda dapat menjadwalkan alur untuk mengambil data MongoDB secara teratur. Fungsionalitas ini berguna dalam skenario ritel seperti memperbarui tingkat inventaris dengan data penjualan harian. Dalam kasus seperti itu, laporan analitik dan dasbor tidak penting, dan analisis real-time tidak sepadan dengan upaya.

Bagian berikut melihat lebih dekat dua kasus penggunaan industri ritel.

Bundling produk

Untuk mempromosikan penjualan produk, Anda dapat menjual produk sebagai bagian dari bundel bersama dengan produk terkait lainnya. Tujuannya adalah menggunakan data pola penjualan untuk mengembangkan strategi untuk menggabungkan produk ke dalam paket.

Ada dua sumber data:

  • Data katalog produk dari MongoDB
  • Data penjualan dari Azure SQL

Kedua set data dimigrasikan ke kumpulan SQL khusus Azure Synapse Analytics dengan menggunakan alur Azure Synapse Analytics. Pemicu dan perubahan pengambilan data digunakan untuk mencapai sinkronisasi data mendekati real-time di atas data yang dimigrasikan satu kali.

Bagan Power BI berikut ini memperlihatkan afinitas antara produk dan pola penjualan. Afinitas pena dan isi ulang berbasis tinta tinggi. Data penjualan menunjukkan bahwa pena memiliki volume penjualan yang tinggi di area yang ditentukan.

Diagram that shows pipeline stages and charts that show pen sales by product, year, region, and affinity. Pen sales are highest in 2022 in the South.

Analisis membuat dua saran untuk menghasilkan penjualan yang lebih baik:

  • Bundling pena dan isi ulang berbasis tinta
  • Mempromosikan bundel di area tertentu

Promosi produk

Untuk mempromosikan penjualan produk, Anda dapat merekomendasikan produk kepada pelanggan yang tertarik dengan produk terkait. Tujuannya adalah untuk menggunakan data penjualan dan data pola pembelian pelanggan untuk mengembangkan strategi untuk merekomendasikan produk kepada pelanggan.

Dengan menggunakan Azure Synapse Analytics, Anda dapat mengembangkan model AI dan pembelajaran mesin untuk menentukan produk mana yang akan direkomendasikan kepada pelanggan.

Diagram berikut menunjukkan penggunaan berbagai jenis data untuk membuat model untuk menentukan rekomendasi produk alternatif. Data tersebut mencakup pola pembelian pelanggan, keuntungan, afinitas produk, volume penjualan produk, dan parameter katalog produk.

Diagrams that show pipeline stages and a workflow for an AI model. Data fields include the customer ID, price, sales, and profit.

Jika model Anda mencapai akurasi tinggi, model tersebut menyediakan daftar produk yang dapat Anda rekomendasikan kepada pelanggan.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

Untuk informasi terperinci tentang persyaratan keamanan dan kontrol komponen Azure dalam solusi, lihat bagian keamanan dari dokumentasi setiap produk.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

  • Untuk memperkirakan biaya produk dan konfigurasi Azure, gunakan kalkulator harga Azure.
  • Azure membantu Anda menghindari biaya yang tidak perlu dengan mengidentifikasi jumlah sumber daya yang benar untuk kebutuhan Anda, dengan menganalisis pengeluaran dari waktu ke waktu, dan dengan menskalakan untuk memenuhi kebutuhan bisnis tanpa pengeluaran berlebihan. Misalnya, Anda dapat menjeda kumpulan SQL khusus saat Anda tidak mengharapkan beban apa pun. Anda dapat melanjutkannya nanti.
  • Anda dapat mengganti App Service dengan Azure Functions. Dengan mengatur fungsi dalam alur Azure Synapse Analytics, Anda dapat mengurangi biaya.
  • Untuk mengurangi biaya kluster Spark, pilih jenis komputasi aliran data yang tepat. Opsi umum dan memori yang dioptimalkan tersedia. Pilih juga nilai jumlah inti dan time-to-live (TTL) yang sesuai.
  • Untuk mengetahui selengkapnya tentang mengelola biaya komponen solusi utama, lihat sumber daya berikut:

Efisiensi kinerja

Efisiensi performa adalah kemampuan beban kerja Anda untuk menskalakan untuk memenuhi tuntutan yang ditempatkan di atasnya oleh pengguna dengan cara yang efisien. Untuk informasi selengkapnya, lihat Gambaran umum pilar efisiensi performa.

Ketika ada perubahan dalam volume tinggi, menjalankan ribuan alur di Azure Synapse Analytics untuk setiap perubahan dalam koleksi dapat mengakibatkan backlog alur yang diantrekan. Untuk meningkatkan performa dalam skenario ini, pertimbangkan pendekatan berikut:

  • Gunakan kode App Service berbasis penyimpanan, yang menulis dokumen JSON dengan perubahan pada Data Lake Storage. Jangan tautkan pemicu berbasis penyimpanan dengan alur. Sebagai gantinya, gunakan pemicu terjadwal pada interval singkat, seperti setiap dua atau lima menit. Saat pemicu terjadwal berjalan, dibutuhkan semua file dalam direktori Data Lake Storage yang ditentukan dan memperbarui kumpulan SQL khusus untuk masing-masing file.
  • Ubah kode Azure Event Grid App Service. Programkan untuk menambahkan batch mikro sekitar 100 perubahan pada penyimpanan blob sebelum menambahkan topik baru ke peristiwa dengan metadata yang menyertakan nama file. Dengan modifikasi ini, Anda hanya memicu satu alur untuk satu blob dengan 100 perubahan. Anda dapat menyesuaikan ukuran mikro-batch agar sesuai dengan skenario Anda. Gunakan batch mikro kecil pada frekuensi tinggi untuk memberikan pembaruan yang mendekati real time. Atau gunakan batch mikro yang lebih besar pada frekuensi yang lebih rendah untuk pembaruan yang tertunda dan overhead yang berkurang.

Untuk informasi selengkapnya tentang meningkatkan performa dan skalabilitas aktivitas penyalinan alur Azure Synapse Analytics, lihat Menyalin performa aktivitas dan panduan skalabilitas.

Menyebarkan skenario ini

Untuk informasi tentang menerapkan solusi ini, lihat Solusi Sinkronisasi Real Time untuk Integrasi MongoDB Atlas dengan Synapse.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya

Untuk informasi selengkapnya tentang solusi, hubungi partners@mongodb.com.

Untuk informasi tentang MongoDB, lihat sumber daya berikut:

Untuk informasi tentang komponen solusi Azure, lihat sumber daya ini: