All Products
Search
Document Center

Hologres:Mesin eksekusi

Last Updated:Mar 27, 2026

Hologres Query Engine (QE) merupakan lapisan pemrosesan kueri Hologres yang mengarahkan kueri SQL ke mesin eksekusi yang sesuai, menjalankannya secara paralel di seluruh worker terdistribusi, dan mengembalikan hasilnya ke klien.

Cara kerja

Hologres QE dibangun di atas arsitektur Storage Disaggregation, yang memisahkan komputasi dan penyimpanan. Setiap worker menerima kueri dari frontend (FE), memilih jalur eksekusi berdasarkan jenis kueri, mengambil data dari Storage Engine (SE), lalu menggabungkan hasil dari seluruh shard sebelum mengembalikannya ke klien.

Rencana eksekusi direpresentasikan sebagai graf asiklik terarah (DAG) dari operator asinkron. Struktur ini memungkinkan Query Optimizer (QO) menerapkan berbagai teknik optimisasi serta mendukung eksekusi terdistribusi dan paralel yang dirancang khusus untuk Hologres QE.

Kemampuan utama

Eksekusi terdistribusi

Hologres QE menjalankan kueri secara paralel di banyak worker. Rencana eksekusi berbasis DAG memecah kueri kompleks menjadi operator independen, mendistribusikannya ke berbagai worker, lalu menggabungkan hasilnya.

Eksekusi sepenuhnya asinkron

Seluruh operator dalam Hologres QE bersifat asinkron dari ujung ke ujung. Pada sistem dengan konkurensi tinggi, I/O sinkron memblokir thread saat menunggu pembacaan penyimpanan. Hologres QE menghilangkan bottleneck ini dengan menguraikan keterkaitan antara komputasi dan latensi penyimpanan—thread tidak pernah diblokir saat menunggu data, sehingga sumber daya sistem tetap dimanfaatkan secara optimal bahkan di bawah beban kerja konkuren yang berat. Pendekatan ini meminimalkan dampak latensi baca akibat arsitektur Storage Disaggregation.

Pemrosesan vektorisasi dan berorientasi kolom

Mesin kueri tradisional memproses data baris demi baris, sehingga menimbulkan overhead CPU per baris. Hologres QE memproses data dalam batch (vektor) di setiap operator, mengurangi overhead per baris dan memaksimalkan pemanfaatan CPU. Karena QE terintegrasi erat dengan SE, QE dapat memanfaatkan indeks untuk melewati pembacaan atau komputasi data yang tidak diperlukan serta menunda vektorisasi dan materialisasi hingga sedekat mungkin dengan titik penggunaan agar tidak memuat data yang tidak digunakan oleh kueri.

Pemrosesan inkremental adaptif

Untuk beban kerja yang menggabungkan ingestion real-time dengan analitik, Hologres QE menggunakan pemrosesan inkremental adaptif. Kueri terhadap data yang diperbarui secara berkala ditangani secara inkremental guna menjaga latensi tetap rendah saat data tiba.

Optimisasi untuk pola kueri tertentu

Selain optimisasi umum, Hologres QE mencakup optimisasi khusus untuk pola kueri tertentu. Sebagai contoh, point queries melewati QO sepenuhnya untuk meminimalkan latensi eksekusi (lihat Proses eksekusi kueri).

Proses eksekusi kueri

Hologres QE terdiri dari beberapa worker. Gambar berikut menunjukkan cara sebuah worker mengeksekusi kueri yang dikirim oleh klien.

Query execution process

Setelah klien mengirimkan kueri SQL, eksekusi berlangsung sebagai berikut:

  1. FE melakukan autentikasi dan mengurai kueri SQL, lalu mendistribusikannya ke berbagai modul Hologres QE.

  2. QE memilih jalur eksekusi:

    • Point queries — FE mengarahkan kueri langsung ke Fixed QE tanpa melalui QO. Rencana tetap ini melewati overhead optimisasi dan mengembalikan hasil dengan latensi minimal. Point query, yang mirip dengan pencarian key-value di HBase, serta point write, keduanya menggunakan jalur ini.

    • Kueri Online Analytical Processing (OLAP) — FE mengarahkan kueri ke QO. QO menganalisis kueri, memperkirakan biaya operator, mengumpulkan statistik, mempersempit rentang kueri, lalu menghasilkan rencana eksekusi. Berdasarkan rencana tersebut, QO menetapkan setiap operator ke mesin eksekusi tertentu: Hologres Query Engine (HQE), PostgreSQL Query Engine (PQE), Seahawks Query Engine (SQE), atau Hive Query Engine (Hive QE).

  3. QE menggunakan SE untuk mengambil data, menggabungkan hasil dari semua shard, lalu mengembalikan hasil kueri ke klien.

Mesin eksekusi

Hologres QE mendukung beberapa mesin eksekusi, masing-masing dioptimalkan untuk beban kerja yang berbeda.

Hologres Query Engine (HQE)

HQE adalah modul utama Hologres QE yang dikembangkan oleh Alibaba Cloud. HQE menggunakan arsitektur massively parallel processing (MPP) yang dapat diskalakan untuk menjalankan operator secara paralel penuh di seluruh worker. Operator vektorisasi memaksimalkan pemanfaatan CPU guna mempercepat kueri analitik. HQE terus diperluas pada setiap rilis, dengan tujuan jangka panjang mengintegrasikan seluruh fitur PQE.

PostgreSQL Query Engine (PQE)

PQE menyediakan kompatibilitas dengan ekosistem PostgreSQL. Fungsi dan operator yang belum didukung oleh HQE ditangani oleh PQE. PQE mendukung ekstensi PostgreSQL seperti PostGIS dan user-defined function (UDF) yang ditulis dalam PL/Java, PL/SQL, atau PL/Python.

Seahawks Query Engine (SQE)

SQE menghubungkan Hologres langsung ke MaxCompute tanpa memerlukan migrasi atau impor data. SQE menyediakan akses berkinerja tinggi ke file MaxCompute, termasuk tipe tabel kompleks seperti hash table dan range-clustered table. SQE memungkinkan analisis interaktif terhadap data batch berskala petabyte yang disimpan di MaxCompute.