Bagikan melalui


Menggunakan Azure Synapse Analytics untuk pemrosesan data lakehouse mendekati real time

Pencarian Azure AI
Azure Cosmos DB
Azure Data Lake
Pusat Aktivitas Azure
Azure Synapse Analytics

Perusahaan berbasis data perlu menjaga sistem back-end dan analitik mereka tetap sinkron mendekati real time dengan aplikasi yang berhadapan dengan pelanggan. Efek transaksi, pembaruan, dan perubahan harus mencerminkan secara akurat melalui proses end-to-end, aplikasi terkait, dan sistem pemrosesan transaksi online (OLTP). Latensi yang dapat ditoleransi untuk perubahan dalam aplikasi OLTP untuk tercermin dalam sistem hilir yang menggunakan data mungkin hanya beberapa menit.

Artikel ini menjelaskan solusi end-to-end untuk pemrosesan data mendekati real-time agar data lakehouse tetap sinkron. Solusi ini menggunakan Azure Event Hubs, Azure Synapse Analytics, dan Azure Data Lake Storage untuk pemrosesan dan analitik data.

Nota

Anda dapat menerapkan arsitektur serupa dengan menggunakan Microsoft Fabric, yang menyediakan platform perangkat lunak terpadu sebagai layanan (SaaS) untuk penyerapan data, transformasi, penyimpanan, dan analitik. Dalam hal ini, Fabric menggantikan komponen Azure Synapse Analytics dari arsitektur dan menyediakan kemampuan terintegrasi untuk pemrosesan dan analisis data real-time. Untuk informasi selengkapnya, lihat Fabric Real-Time Intelligence.

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

Sistem

Diagram yang memperlihatkan aliran data untuk solusi pemrosesan data end-to-end.

Unduh file Visio arsitektur ini.

Aliran data

  1. Ubah penangkapan data (CDC) adalah prasyarat bagi sistem sumber untuk mendengarkan perubahan. Konektor Debezium dapat terhubung ke sistem sumber yang berbeda dan memanfaatkan perubahan saat terjadi. Konektor dapat menangkap perubahan dan menghasilkan peristiwa dari berbagai sistem manajemen database relasional (RDBMS). Menginstal konektor Debezium memerlukan sistem koneksi Kafka.

  2. Konektor mengekstrak data perubahan dan mengirim peristiwa yang diambil ke Azure Event Hubs. Azure Event Hubs dapat menerima sejumlah besar data dari beberapa sumber.

  3. Azure Event Hubs langsung mengalirkan data ke kumpulan Azure Synapse Analytics Spark atau mengirim data ke zona pendaratan Data Lake Storage dalam format mentah.

  4. Sumber data batch lainnya dapat menggunakan alur Azure Synapse Analytics untuk menyalin data ke Data Lake Storage dan membuatnya tersedia untuk diproses. Alur kerja ekstrak, transformasi, dan pemuatan (ETL) end-to-end mungkin perlu menautkan langkah yang berbeda atau menambahkan dependensi di antara langkah-langkah. Alur Azure Synapse Analytics dapat mengatur dependensi alur kerja dalam kerangka kerja pemrosesan keseluruhan.

  5. Kumpulan Azure Synapse Analytics Spark menggunakan API streaming terstruktur Apache Spark yang didukung penuh untuk memproses data dalam kerangka kerja Spark Streaming. Langkah pemrosesan data menggabungkan pemeriksaan kualitas data dan validasi aturan bisnis tingkat tinggi.

  6. Data Lake Storage menyimpan data yang divalidasi dalam format Delta Lake terbuka. Delta Lake menyediakan semantik dan transaksi atomitas, konsistensi, isolasi, dan durabilitas (ACID), penanganan metadata yang dapat diskalakan, serta pemrosesan data streaming dan batch terpadu untuk data lake yang ada.

    Menggunakan indeks untuk akselerasi kueri meningkatkan performa Delta Lake. Data dari zona tervalidasi Data Lake Storage juga dapat menjadi sumber untuk analitik dan pembelajaran mesin tingkat lanjut lebih lanjut.

  7. Data dari zona tervalidasi Data Lake Storage, diubah dan diperkaya dengan lebih banyak aturan ke status pemrosesan akhirnya, dimuat ke kumpulan SQL khusus untuk menjalankan kueri analitik skala besar.

  8. Power BI menggunakan data yang diekspos melalui kumpulan SQL khusus untuk membangun dasbor dan laporan tingkat perusahaan.

  9. Anda juga dapat menggunakan data mentah yang diambil di Data Lake Store dan data yang divalidasi dalam format Delta untuk tugas-tugas berikut:

    • Analisis yang tidak diencana dan eksploratif melalui kumpulan SQL tanpa server Azure Synapse Analytics

    • Pelatihan dan penyebaran model pembelajaran mesin melalui Azure Machine Learning

  10. Untuk beberapa antarmuka latensi rendah, data harus dinormalisasi untuk latensi server satu digit. Kasus penggunaan ini terutama untuk respons API. Skenario ini mengkueri dokumen di datastore NoSQL seperti Azure Cosmos DB untuk respons milidetik satu digit.

  11. Strategi pemartisian Azure Cosmos DB mungkin tidak secara efisien mendukung semua pola kueri. Jika demikian, Anda dapat menambah solusi dengan mengindeks data yang perlu diakses API dengan Azure AI Search. Azure Cosmos DB dan AI Search dapat memenuhi sebagian besar skenario yang memerlukan respons kueri latensi rendah. Misalnya, aplikasi ritel menyimpan data katalog produk di Azure Cosmos DB tetapi membutuhkan kemampuan pencarian teks lengkap dan pengindeksan fleksibel. Pencarian AI dapat mengindeks data dan menyediakan fitur pencarian tingkat lanjut seperti pelengkapan otomatis, sinonim, dan peringkat semantik. Fitur-fitur ini berguna ketika batasan pengindeksan Azure Cosmos DB membatasi skenario pencarian yang kompleks.

Komponen

Solusi ini menggunakan komponen Azure berikut ini:

  • Azure Event Hubs adalah layanan penyerapan terkelola dan terdistribusi yang dapat menskalakan untuk menyerap data dalam jumlah besar. Dengan menggunakan mekanisme pelanggan penerbit Azure Event Hubs, aplikasi yang berbeda dapat mengirim pesan ke topik Azure Event Hubs, dan konsumen hilir dapat terhubung ke dan memproses pesan tersebut. Fitur pengambilan Azure Event Hubs dapat menulis pesan ke Data Lake Storage dalam format Avro saat tiba. Kemampuan ini memungkinkan pemrosesan mikro-batch yang mudah dan skenario retensi jangka panjang. Azure Event Hubs juga menyediakan API yang kompatibel dengan Kafka dan mendukung registri skema. Dalam arsitektur ini, Azure Event Hubs menerima peristiwa CDC dari beberapa sumber dan mendistribusikannya ke konsumen hilir.

  • Data Lake Storage adalah solusi data lake yang dapat diskalakan dan aman. Ini membentuk subsistem penyimpanan yang menyimpan semua data dalam format mentah dan tervalidasi. Dalam arsitektur ini, Data Lake Storage menangani transaksi dalam skala besar dan mendukung format dan ukuran file yang berbeda. Namespace hierarkis membantu mengatur data ke dalam struktur folder yang familier dan mendukung izin Antarmuka Sistem Operasi Portabel untuk Unix (POSIX). Driver Azure Blob Filesystem (ABFS) menyediakan API yang kompatibel dengan Hadoop.

  • Azure Synapse Analytics adalah layanan analitik tak terbatas yang menggabungkan integrasi data, pergudangan data perusahaan, dan analitik big data. Solusi ini menggunakan fitur ekosistem Azure Synapse Analytics berikut:

    • Kumpulan Azure Synapse Analytics Spark adalah kluster yang menyediakan runtime Spark sesuai permintaan yang menambahkan peningkatan performa bawaan ke Spark sumber terbuka. Dalam arsitektur ini, pelanggan dapat mengonfigurasi pengaturan skala otomatis yang fleksibel, mengirimkan pekerjaan dari jarak jauh melalui titik akhir Apache Livy, dan menggunakan antarmuka notebook Synapse Studio untuk pengalaman interaktif.

    • Kumpulan SQL tanpa server Azure Synapse Analytics adalah fitur kueri sesuai permintaan yang menyediakan antarmuka untuk mengkueri data lakehouse menggunakan sintaks T-SQL yang familier. Tidak ada infrastruktur untuk disiapkan, dan penyebaran ruang kerja Azure Synapse Analytics secara otomatis membuat titik akhir. Dalam arsitektur ini, kumpulan SQL tanpa server Azure Synapse Analytics memungkinkan penemuan dasar dan eksplorasi data untuk analisis kueri yang tidak diencana.

    • Kumpulan SQL khusus Azure Synapse Analytics adalah sumber daya pergudangan data yang disediakan. Mereka menyimpan data dalam tabel relasional dengan menggunakan penyimpanan kolom. Dalam arsitektur ini, kumpulan SQL Khusus menggunakan arsitektur peluasan skala untuk mendistribusikan pemrosesan data di beberapa simpul. Kueri PolyBase membawa data ke dalam tabel kumpulan SQL. Tabel bisa tersambung ke Power BI untuk analisis dan pelaporan.

  • Power BI adalah layanan analitik bisnis yang menyediakan antarmuka visual untuk membuat dan mengakses laporan dan dasbor. Power BI Desktop bisa tersambung ke berbagai sumber data, menggabungkan sumber ke dalam model data, dan membuat laporan atau dasbor. Dalam arsitektur ini, Anda dapat menggunakan Power BI untuk mengubah data berdasarkan persyaratan bisnis dan berbagi visual dan laporan dengan pelanggan.

  • Azure Cosmos DB adalah layanan database NoSQL yang didistribusikan secara global. Solusi ini menggunakan Azure Cosmos DB untuk aplikasi yang memerlukan waktu respons milidetik satu digit dan ketersediaan tinggi. Azure Cosmos DB menyediakan penulisan beberapa wilayah di semua wilayah Azure.

  • AI Search adalah platform bertenaga AI sebagai layanan (PaaS) yang memungkinkan pengembang untuk membangun pengalaman pencarian yang kaya untuk aplikasi dan situs web mereka. Gunakan Pencarian AI dalam solusi ini ketika model pengindeksan Azure Cosmos DB terlalu kaku untuk skenario pencarian tingkat lanjut. Pencarian AI memungkinkan kueri fleksibel dengan fitur seperti toleransi kesalahan ketik, lengkapi otomatis, peringkat semantik, dan pencocokan sinonim. Anda dapat mengkueri data terindeks dengan menggunakan REST API atau .NET SDK. Jika Anda perlu mengambil data dari beberapa indeks, Anda dapat mengonsolidasikannya ke dalam satu indeks atau menggunakan jenis data kompleks untuk memodelkan struktur berlapis.

Detail skenario

Alur kerja end-to-end untuk memproses perubahan mendekati real-time memerlukan:

  • Teknologi CDC. Aplikasi OLTP mungkin memiliki penyimpanan data back-end yang berbeda, seperti SQL Server, MySQL, dan Oracle. Langkah pertama adalah mendengarkan perubahan saat terjadi, dan menyebarluaskannya ke depan.

  • Buffer penyerapan untuk menerbitkan peristiwa perubahan dalam skala besar. Layanan ini harus memiliki kemampuan untuk menangani data dalam jumlah besar saat pesan tiba. Pelanggan individual dapat terhubung ke sistem ini dan memproses data.

  • Penyimpanan terdistribusi dan dapat diskalakan untuk data apa adanya dalam format mentah.

  • Sistem pemrosesan aliran terdistribusi dan efisien yang memungkinkan pengguna memulai ulang dan mengelola status.

  • Sistem analitik yang berjalan dalam skala besar untuk mendukung keputusan bisnis.

  • Antarmuka analitik mandiri.

  • Untuk respons API latensi rendah, database NoSQL untuk menyimpan representasi data yang dinormalisasi.

  • Untuk beberapa kasus, sistem untuk mengindeks data, merefresh indeks secara berkala, dan membuat data terbaru tersedia untuk konsumsi hilir.

Semua teknologi sebelumnya harus menggunakan konstruksi keamanan yang relevan untuk keamanan perimeter, autentikasi, otorisasi, dan enkripsi data.

Kemungkinan kasus penggunaan

Solusi ini sesuai dengan kasus penggunaan berikut:

  • Industri yang perlu menyebarluaskan perubahan dari OLTP ke pemrosesan analitik online (OLAP).

  • Aplikasi yang memerlukan transformasi atau pengayaan data.

Skenario pemrosesan data real time sangat penting untuk industri jasa keuangan. Misalnya, jika asuransi, kartu kredit, atau pelanggan bank melakukan pembayaran dan kemudian segera menghubungi layanan pelanggan, agen dukungan pelanggan harus memiliki informasi terbaru.

Skenario serupa berlaku untuk sektor ritel, perdagangan, dan layanan kesehatan. Mengaktifkan skenario ini menyederhanakan operasi dan menyebabkan produktivitas organisasi yang lebih besar dan peningkatan kepuasan pelanggan.

Pertimbangan

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

Keandalan

Keandalan membantu memastikan bahwa aplikasi Anda dapat memenuhi komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keandalan.

  • Azure Event Hubs menyediakan retensi data 90 hari pada tingkat premium dan khusus. Untuk skenario failover, Anda dapat menyiapkan namespace sekunder di wilayah yang dipasangkan dan mengaktifkannya selama failover. Aktifkan redundansi zona untuk memastikan ketahanan terhadap kegagalan pusat data. Anda dapat menggunakan fitur pengambilan Azure Event Hubs untuk mempertahankan data ke Data Lake Storage untuk skenario pemutaran ulang dan pemulihan.

  • Pekerjaan kumpulan Azure Synapse Analytics Spark didaur ulang setiap tujuh hari karena simpul diturunkan untuk pemeliharaan. Pertimbangkan aktivitas ini saat Anda bekerja melalui perjanjian tingkat layanan (SLA) yang terkait dengan sistem. Batasan ini tidak menjadi masalah untuk banyak skenario di mana tujuan waktu pemulihan (RTO) sekitar 15 menit. Pastikan autoscaling dikonfigurasi untuk menangani lonjakan beban dan kegagalan node.

  • Gunakan kumpulan SQL khusus yang memiliki penyimpanan geo-backup dan zona-redundan (ZRS) untuk melindungi dari pemadaman regional dan zonal.

Pengoptimalan Biaya

Pengoptimalan Biaya berfokus pada cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Pengoptimalan Biaya.

  • Anda dapat memilih dari berbagai tingkatan Azure Event Hubs berdasarkan karakteristik beban kerja. Tagihan Azure Event Hubs menangkap penyimpanan secara terpisah berdasarkan jumlah data yang disimpan di Data Lake Storage.

  • Pertimbangkan manajemen siklus hidup objek melalui tingkatan di Data Lake Storage. Seiring bertambahnya usia data, Anda dapat memindahkan data dari tingkat panas, di mana Anda perlu mengakses data terbaru untuk analitik, ke tingkat penyimpanan dingin yang biayanya lebih murah. Tingkat penyimpanan dingin adalah opsi hemat biaya untuk retensi jangka panjang.

  • Anda dapat menjeda kumpulan SQL khusus saat Anda tidak menggunakannya di lingkungan pengembangan atau pengujian Anda. Anda dapat menjadwalkan skrip untuk menjeda kumpulan sesuai kebutuhan, atau Anda dapat menjeda kumpulan secara manual melalui portal.

  • Untuk kumpulan Azure Synapse Analytics Spark, gunakan penskalaan otomatis untuk mengalokasikan sumber daya secara dinamis berdasarkan permintaan beban kerja dan untuk menghindari provisi berlebih. Pilih ukuran kumpulan terkecil yang memenuhi kebutuhan performa dan gunakan pengaturan penghentian otomatis untuk segera mematikan kumpulan diam. Optimalkan pekerjaan Spark dengan meminimalkan operasi acak, penembolokan hasil perantara, dan menyetel ukuran partisi untuk mengurangi waktu proses dan konsumsi sumber daya. Pantau penggunaan dengan menggunakan alat pemantauan Azure Synapse Analytics dan sesuaikan konfigurasi berdasarkan performa pekerjaan dan tren biaya.

  • Untuk mengoptimalkan efisiensi biaya di Azure Cosmos DB, sesuaikan kebijakan pengindeksan Anda untuk menyertakan hanya jalur yang diperlukan, yang mengurangi konsumsi unit penyimpanan dan permintaan (RU). Pilih API dan tingkat konsistensi yang sesuai untuk mencocokkan kebutuhan beban kerja tanpa provisi berlebihan. Gunakan throughput skala otomatis untuk menyesuaikan RU secara dinamis berdasarkan permintaan, dan mengonsolidasikan beban kerja menjadi lebih sedikit kontainer jika memungkinkan untuk meminimalkan overhead. Pantau penggunaan secara teratur dengan menggunakan Microsoft Cost Management dan atur pemberitahuan untuk menghindari biaya tak terduga.

  • Gunakan kalkulator harga Azure untuk memperkirakan harga.

Efisiensi Performa

Efisiensi Performa mengacu pada kemampuan beban kerja Anda untuk menskalakan untuk memenuhi tuntutan pengguna secara efisien. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Efisiensi Performa.

  • Anda dapat menskalakan Azure Event Hubs melalui partisi, yang mendistribusikan peristiwa di beberapa log paralel (partisi) untuk meningkatkan throughput. Untuk mempertahankan urutan peristiwa terkait, seperti peristiwa dari pelanggan atau perangkat yang sama, gunakan kunci partisi yang konsisten saat Anda menerbitkan peristiwa. Praktik ini memastikan bahwa semua peristiwa terkait dirutekan ke partisi yang sama, di mana Azure Event Hubs mempertahankan pesanannya. Setel unit throughput (TU) berdasarkan volume peristiwa yang diharapkan. Gunakan fitur pengambilan untuk menulis langsung ke Data Lake Storage dalam format Avro atau Parquet untuk pemrosesan hilir yang efisien.

  • Anda dapat menyiapkan kumpulan Azure Synapse Analytics Spark dengan SKU komputer virtual (VM) kecil, sedang, atau besar berdasarkan beban kerja. Anda juga dapat mengonfigurasi skala otomatis di kumpulan Azure Synapse Analytics Spark untuk memperhitungkan lonjakan aktivitas dalam beban kerja. Jika Anda membutuhkan lebih banyak sumber daya komputasi, kluster secara otomatis meningkatkan skala untuk memenuhi permintaan dan menurunkan skala setelah pemrosesan selesai.

  • Delta Lake memainkan peran sentral dalam memastikan pemrosesan data berperforma tinggi, andal, dan dapat diskalakan dalam arsitektur ini:

    • Aktifkan fitur pengoptimalan otomatis dan pemadatan otomatis di Delta Lake untuk mengelola file kecil secara otomatis dan mengoptimalkan tata letak data selama operasi tulis. Fitur-fitur ini sangat ideal untuk streaming atau skenario penyerapan mikro-batch yang sering karena mengurangi kebutuhan intervensi manual.

    • Gunakan OPTIMIZE untuk memampatkan file kecil secara manual menjadi file yang lebih besar. Praktik ini sangat berguna ketika Anda ingin meningkatkan efisiensi baca dan mengurangi overhead metadata setelah penyerapan streaming membuat banyak file kecil.

    • Gunakan OPTIMIZE dengan ZORDER BY pada kolom yang sering dikueri, seperti tanda waktu atau ID pelanggan, untuk mengalokasikan data terkait. Kueri ini meningkatkan performa kueri dengan mengurangi jumlah data yang dipindai selama pembacaan.

  • Untuk mengoptimalkan performa di kumpulan SQL khusus untuk analitik mendekati real-time, lakukan tugas berikut:

    • Gunakan metode distribusi yang sesuai seperti hash, round-robin, metode yang direplikasi.
    • Partisi tabel besar menurut waktu atau wilayah untuk meningkatkan pemangkasan kueri.
    • Gunakan tampilan materialisasi dan penembolokan tataan hasil untuk data yang sering diakses.
    • Pertahankan statistik dan indeks tanggal up-tountuk menjalankan kueri secara efisien.
    • Tetapkan kelas sumber daya untuk mengelola memori dan konkurensi.
    • Pantau performa dengan menggunakan alat bawaan seperti Wawasan SQL dan Tampilan Manajemen Dinamis (DMV).

    Praktik ini membantu memastikan latensi rendah, performa throughput tinggi dalam beban kerja analitik skala besar.

  • Untuk mengoptimalkan Azure Cosmos DB untuk performa dalam skenario analitik real time, konfigurasikan kebijakan pengindeksan yang sesuai untuk mengurangi latensi kueri dan overhead penyimpanan, dan pilih tingkat konsistensi yang tepat untuk menyeimbangkan performa dengan akurasi data. Gunakan partisi secara efektif untuk mendistribusikan beban kerja secara merata dan menghindari partisi panas. Aktifkan penulisan beberapa wilayah untuk akses global latensi rendah dan pantau throughput dengan menggunakan RU untuk menskalakan secara dinamis berdasarkan permintaan. Praktik ini membantu memastikan performa responsif dan dapat diskalakan untuk beban kerja dengan konsumsi tinggi dan latensi rendah.

Kontributor

Microsoft mempertahankan artikel ini. Kontributor berikut menulis artikel ini.

Penulis utama:

Kontributor lainnya:

Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.

Langkah berikutnya