全部产品
Search
文档中心

E-MapReduce:Doris

更新时间:Jun 24, 2025

Apache Doris adalah database analitik real-time berperforma tinggi yang dapat digunakan dalam skenario seperti analisis laporan, kueri ad hoc, dan kueri federasi di seluruh data lake. Topik ini menjelaskan Apache Doris.

Informasi Latar Belakang

Untuk informasi lebih lanjut tentang Apache Doris, lihat Pengantar Apache Doris.

Skenario

Setelah berbagai integrasi dan pemrosesan data, sumber data biasanya disimpan di gudang data real-time Doris dan data lake atau gudang data offline, seperti Apache Hive, Apache Iceberg, atau Apache Hudi. Apache Doris

Apache Doris banyak digunakan dalam skenario berikut:

  • Analisis laporan:

    • Dashboard real-time

    • Laporan untuk analis internal dan manajer

    • Analisis laporan berorientasi pengguna atau pelanggan dengan konkurensi tinggi, seperti analisis situs web dan pelaporan iklan yang biasanya memerlukan ribuan query per detik (QPS) dan waktu respons cepat dalam milidetik.

  • Kueri Ad hoc: Analitik swalayan yang berorientasi analis dengan pola kueri tidak teratur dan persyaratan throughput tinggi.

  • Pembangunan gudang data terpadu: Apache Doris memungkinkan pengguna membangun gudang data terpadu di satu platform tunggal dan menghemat kerumitan menangani tumpukan perangkat lunak yang rumit. Gudang data terpadu yang dibangun berdasarkan Apache Doris menggantikan arsitektur kompleks lama, yang terdiri dari Apache Spark, Apache Hive, Apache Kudu, Apache HBase, dan Apache Phoenix.

  • Kueri federasi di seluruh data lake: Apache Doris melakukan analitik federasi pada data di Apache Hive, Apache Iceberg, dan Apache Hudi menggunakan tabel eksternal. Ini mencapai performa kueri yang luar biasa tanpa perlu menyalin data.

Gambaran Teknis

Gambar berikut menunjukkan arsitektur keseluruhan Apache Doris. Architecture of Apache DorisArsitektur Apache Doris sederhana dan rapi dengan hanya dua jenis proses:

  • Frontend (FE): Bertanggung jawab atas pemrosesan permintaan pengguna, penguraian dan perencanaan kueri, manajemen metadata, dan manajemen node.

  • Backend (BE): Digunakan untuk menyimpan data dan mengeksekusi rencana kueri.

Kedua jenis proses tersebut dapat diskalakan secara horizontal. Kluster tunggal mendukung hingga ratusan mesin dan kapasitas penyimpanan puluhan petabyte. Selain itu, kedua jenis proses ini memberikan ketersediaan layanan tinggi dan keandalan data tinggi dengan menggunakan protokol konsensus. Desain arsitektur yang sangat terintegrasi ini sangat mengurangi biaya operasi dan pemeliharaan sistem terdistribusi.

Teknologi Apache Doris diperkenalkan dari lima aspek berikut:

  • Dalam hal antarmuka, Apache Doris mengadopsi protokol MySQL, mendukung SQL standar, dan sangat kompatibel dengan dialek MySQL. Anda dapat mengakses Apache Doris menggunakan berbagai alat klien. Apache Doris juga mendukung integrasi tanpa hambatan dengan alat business intelligence (BI).

  • Dalam hal mesin penyimpanan, Apache Doris menggunakan mesin penyimpanan kolom yang mengkodekan, menekan, dan membaca data berdasarkan kolom. Hal ini memungkinkan rasio kompresi tinggi dan sebagian besar mengurangi pemindaian data yang tidak relevan. Dengan cara ini, sumber daya I/O dan CPU digunakan secara lebih efisien.

    Apache Doris juga mendukung berbagai skema indeks untuk meminimalkan pemindaian data:

    • Indeks kunci majemuk terurut: memungkinkan Anda menentukan hingga tiga kolom untuk membentuk kunci sortir majemuk. Dengan cara ini, Anda dapat secara efektif memangkas data untuk lebih mendukung skenario pelaporan dengan konkurensi tinggi.

    • Indeks Z-order: memungkinkan Anda menjalankan kueri rentang secara efisien pada kombinasi bidang apa pun dalam skema.

    • Indeks Min atau Max: memungkinkan penyaringan dan pemangkasan efektif untuk kueri ekuivalensi dan rentang pada tipe data numerik.

    • Indeks BloomFilter: memungkinkan penyaringan ekuivalensi efektif dan pemangkasan kolom dengan kardinalitas tinggi.

    • Indeks terbalik: memungkinkan Anda mencari bidang tertentu.

  • Dalam hal model penyimpanan, Apache Doris mendukung berbagai model penyimpanan dan mengoptimalkan model-model tersebut untuk skenario berbeda:

    • Model kunci agregat: Model ini menggabungkan kolom nilai yang memiliki kunci yang sama sebelumnya. Hal ini secara signifikan meningkatkan performa.

    • Model kunci unik: Kunci bersifat unik dalam model ini. Data dengan kunci yang sama akan ditimpa untuk mencapai pembaruan data tingkat baris.

    • Model kunci duplikat: Ini adalah model data rinci yang dapat menyimpan data tabel fakta sebagai detail.

    Apache Doris juga mendukung Tampilan material yang konsisten kuat. Tampilan material dipilih dan diperbarui secara otomatis, sehingga sangat mengurangi biaya pemeliharaan bagi pengguna.

  • Dalam hal mesin kueri, Apache Doris mengadopsi model Massively Parallel Processing (MPP) dalam mesin kuerinya untuk mencapai eksekusi paralel antar dan dalam node. Mesin ini juga mendukung join shuffle terdistribusi untuk beberapa tabel besar untuk menangani kueri kompleks. Gambar berikut menunjukkan mesin kueri. Query

    Mesin kueri Apache Doris divectorisasi dengan semua struktur memori disusun dalam format kolom. Hal ini dapat sebagian besar mengurangi panggilan fungsi virtual, meningkatkan tingkat hit cache, dan memanfaatkan instruksi single instruction multiple data (SIMD) secara efisien. Performa mesin kueri Apache Doris dalam skenario agregasi tabel lebar 5 hingga 10 kali lebih tinggi daripada mesin non-vektor.

  • Dalam hal pengoptimal, Apache Doris menggunakan kombinasi Cost-Based Optimization (CBO) dan Rule-Based Optimization (RBO). RBO mendukung constant folding, penulisan ulang subquery, dan penurunan predikat. CBO mendukung Join Reorder. Doris CBO terus dioptimalkan untuk pengumpulan dan derivasi statistik yang lebih akurat serta prediksi model biaya yang lebih tepat.

Apache Doris menggunakan teknologi Adaptive Query Execution untuk menyesuaikan rencana eksekusi secara dinamis berdasarkan statistik runtime. Sebagai contoh, Apache Doris dapat menghasilkan filter runtime, mendorong filter ke sisi probe, dan kemudian secara otomatis menembus filter ke node Scan di bagian bawah. Hal ini sangat mengurangi jumlah data dalam probe dan meningkatkan performa join. Gambar berikut menunjukkan prosesnya. AQEApache Doris mendukung filter runtime berikut: In, Min, Max, dan BloomFilter.

null

Konten dan gambar dalam topik ini dirujuk dari Pengantar Apache Doris.