Presto (juga dikenal sebagai PrestoDB) adalah mesin kueri SQL terdistribusi yang dirancang untuk analitik interaktif berskala besar. Alibaba Cloud tidak menyediakan Presto sebagai produk mandiri, sehingga Anda tidak dapat membelinya secara terpisah. Presto disediakan sebagai komponen dalam platform data besar open source E-MapReduce (EMR), dan Anda dapat men-deploy serta menggunakan layanan Presto dalam kluster EMR. Topik ini mencakup fitur utama, arsitektur, model data, dan manfaat Presto pada EMR.
Catatan penting
E-MapReduce (EMR) versi 3.45.0 dan 5.11.0 atau yang lebih baru mendukung Presto dengan nomor versi umumnya 0.2XX. Pada versi EMR sebelumnya, komponen Presto dengan nomor versi 3XX menggunakan kernel PrestoSQL atau Trino. Untuk informasi selengkapnya, lihat Trino.
Fitur utama
Presto ditulis dalam Java dan dirancang untuk performa tinggi serta skalabilitas horizontal. Presto menyediakan:
Dukungan penuh ANSI SQL.
Konektivitas ke berbagai sumber data, termasuk Hive, Hudi, Iceberg, Delta Lake, MySQL, dan PostgreSQL.
-
Dukungan untuk tipe data lanjutan:
Array dan map
Data JSON
Data Geographic Information System (GIS)
Data warna
-
Ekstensibilitas melalui berbagai mekanisme:
Konektor data yang dapat dipasang (pluggable data connectors)
Tipe data kustom
Fungsi SQL kustom
Pemrosesan pipeline: mengembalikan hasil kueri ke klien secara inkremental saat data diproses, sehingga mengurangi waktu hingga hasil pertama muncul.
-
Observabilitas bawaan:
Antarmuka web (web UI) untuk memvisualisasikan eksekusi kueri secara real time.
Dukungan protokol JMX untuk pengumpulan metrik.
Arsitektur
Gambar berikut menunjukkan arsitektur sistem Presto.
Presto menggunakan arsitektur koordinator/pekerja. Satu node koordinator mengelola perencanaan kueri dan status kluster, sedangkan beberapa node pekerja menangani eksekusi kueri terdistribusi.
Koordinator bertanggung jawab untuk:
Menerima dan mengurai kueri, menghasilkan rencana eksekusi, serta mendistribusikan fragmen rencana ke node pekerja.
Memantau kesehatan node pekerja. Setiap pekerja mempertahankan koneksi heartbeat dengan koordinator untuk melaporkan statusnya.
Memelihara metadata metastore.
Node pekerja mengeksekusi tugas kueri terdistribusi. Mereka menggunakan konektor untuk membaca dan memproses data dari sistem penyimpanan eksternal, lalu mengembalikan hasilnya ke koordinator.
Presto saat ini belum mendukung arsitektur high availability (HA). Dalam kluster EMR, koordinator berjalan di node master-1-1, sedangkan pekerja berjalan di semua node Core dan Task.
Kasus penggunaan
Presto dioptimalkan untuk beban kerja analitik pada set data besar. Presto cocok digunakan untuk:
Extract, transform, and load (ETL)
Kueri ad hoc
Analisis skala besar terhadap data terstruktur atau semi-terstruktur
Agregasi data multidimensi dan pembuatan laporan
Presto adalah mesin gudang data. Dukungan transaksinya terbatas, sehingga tidak cocok untuk beban kerja online transactional processing (OLTP).
Manfaat Presto pada EMR
Dibandingkan dengan Presto open source yang dikelola sendiri, Presto pada EMR menyediakan:
Pengaturan cepat: buat kluster Presto dengan ratusan node hanya dalam hitungan menit.
Skalabilitas elastis dengan konfigurasi minimal.
Integrasi native dengan tumpukan perangkat lunak EMR, termasuk Data Lake Formation (DLF), Object Storage Service (OSS), dan OSS-HDFS.
Operasi yang sepenuhnya dikelola: EMR menangani provisioning dan operasi & pemeliharaan (O&M) kluster sehingga Anda dapat fokus pada kueri.
Konsep
Model data
Presto mengorganisasikan data dalam hierarki tiga lapis: catalog, schema, dan table.
Catalog: berisi satu atau beberapa schema dan dipetakan ke sumber data eksternal yang dapat diakses oleh konektor. Satu kueri dapat mencakup beberapa catalog.
Schema: setara dengan instansiasi basis data; berisi satu atau beberapa tabel.
Table: tabel relasional standar dalam suatu schema.
Konektor
Konektor merupakan lapisan integrasi antara Presto dan sumber data eksternal. Presto menyertakan konektor bawaan untuk sistem umum dan menyediakan SPI standar yang dapat Anda implementasikan untuk menghubungkan sumber data kustom.
Umumnya, setiap catalog dikaitkan dengan tipe konektor tertentu, yang didefinisikan dalam file properti catalog tersebut.
Informasi lebih lanjut
Untuk melihat dokumentasi open source Presto sesuai versi Anda, ganti XXX pada URL https://prestodb.io/docs/XXX/ dengan nomor versi komponen Presto Anda, lalu buka URL tersebut di browser.
Misalnya, jika versi Presto Anda adalah 0.279, dokumentasinya tersedia di https://prestodb.io/docs/0.279/.