Apache Presto - Arsitektur

Arsitektur Presto hampir mirip dengan arsitektur DBMS MPP (massively parallel processing) klasik. Diagram berikut menggambarkan arsitektur Presto.

Diagram di atas terdiri dari berbagai komponen. Tabel berikut menjelaskan setiap komponen secara rinci.

S.No Deskripsi komponen
1.

Client

Klien (Presto CLI) mengirimkan pernyataan SQL ke koordinator untuk mendapatkan hasilnya.

2.

Coordinator

Koordinator adalah daemon master. Koordinator awalnya mengurai kueri SQL, lalu menganalisis dan merencanakan eksekusi kueri. Scheduler melakukan eksekusi pipeline, memberikan pekerjaan ke node terdekat dan memantau kemajuan.

3.

Connector

Plugin penyimpanan disebut sebagai konektor. Hive, HBase, MySQL, Cassandra dan banyak lagi bertindak sebagai penghubung; jika tidak, Anda juga dapat menerapkan yang khusus. Konektor menyediakan metadata dan data untuk kueri. Koordinator menggunakan konektor untuk mendapatkan metadata untuk membuat rencana kueri.

4.

Worker

Koordinator memberikan tugas ke node pekerja. Pekerja mendapatkan data aktual dari konektor. Akhirnya, simpul pekerja memberikan hasil ke klien.

Presto - Alur Kerja

Presto adalah sistem terdistribusi yang berjalan pada sekumpulan node. Mesin kueri terdistribusi Presto dioptimalkan untuk analisis interaktif dan mendukung ANSI SQL standar, termasuk kueri kompleks, agregasi, gabungan, dan fungsi jendela. Arsitektur presto sederhana dan dapat diperluas. Klien Presto (CLI) mengirimkan pernyataan SQL ke koordinator daemon master.

Penjadwal terhubung melalui pipa eksekusi. Penjadwal memberikan pekerjaan ke node yang paling dekat dengan data dan memantau kemajuan. Koordinator memberikan tugas ke beberapa node pekerja dan akhirnya node pekerja mengirimkan hasilnya kembali ke klien. Klien menarik data dari proses keluaran. Ekstensibilitas adalah desain kuncinya. Konektor yang dapat dicolokkan seperti Hive, HBase, MySQL, dll., Menyediakan metadata dan data untuk kueri. Presto dirancang dengan "abstraksi penyimpanan sederhana" yang membuatnya mudah untuk menyediakan kemampuan kueri SQL terhadap berbagai jenis sumber data ini.

Model Eksekusi

Presto mendukung mesin kueri dan eksekusi kustom dengan operator yang dirancang untuk mendukung semantik SQL. Selain penjadwalan yang ditingkatkan, semua pemrosesan ada dalam memori dan disalurkan ke seluruh jaringan di antara tahapan yang berbeda. Ini menghindari overhead latensi I / O yang tidak perlu.