Presto’yu cli arayüzünde değil daha yüksek seviyede giydirilmiş bir arayüzde kullanmak çalışma ve anlaşılırlık açısından oldukça değerli olacaktır. Bu noktada önceki yazıda da değindiğim BI araçlarından birini tercih ederek ilerlenebilir. Bu yazıda Apache Superset tercih edilerek ilerlenecektir.
Diğer ürünler gibi Presto’da temelde sorgulama sürecini kolaylaştırma ve hızlandırma hedefine sahip. Bu noktada kolay erişilebilirlik anlaşılır bir erişim arayüzü ihtiyacınıda beraberinde getirmekte. Mevcut alışkanlıklar, adaptasyon sürecini hızlandıracaktır bunun farkında olunup sorgulama sürecini daha aşina olunan araçlar ile entegre etme gereği göz önünde bulundurulmalıdır. Daha geniş bir kullanıcıya hitap eden en pratik araçlar tecrübe de edildiği üzere BI araçlarıdır.
Yazıya konu olan örnek senaryoda; database olarak Postgre DB‘yi kaynak edinen bir Presto bağlantısı kurulur (bir önceki yazı bunun detaylarını içermekte). Ardından sorgulama için cli arayüzüne alternatif olarak seçilen Apache Superset üzerinden Presto bağlantısı yapılır.
Örnek Senaryo Adımları
1. Adım : Apache Superset kurulumu yapılır.
$ git clone https://github.com/apache/superset.git
$ cd superset
$ docker-compose up -d
2. Adım : Presto ve Postgre DB kurulum ve bağlantısı yapılır.
version: "3.7"
services:
app:
image: ahanaio/prestodb-sandbox
container_name: presto
volumes:
- type: bind
source: ./postgresql.properties
target: /opt/presto-server/etc/catalog/postgresql.properties
ports:
- "8080:8080"
db:
image: postgres:12.2
container_name: postgre_presto
restart: always
environment:
POSTGRES_DB: postgres
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
PGDATA: /var/lib/postgresql/data
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "54332:5432"
volumes:
db-data:
pgadmin-data:
networks:
default:
external:
name: superset_default
3. Adım : Apache Superset üzerinde +Database kısmına gelinir. Ve connection string ifadesi SQL Alchemy URI formatında yazılır.
4. Adım : Sql Lab tabına girilip SQL Editor ekranı açılarak aşağıdaki şekilde sorgulama yapılabilir.
5. Adım : Sorguya dair detaylı inceleme için de Presto UI (http://localhost:8080/ui/) ekranı kullanılarak ilgili detaylar incelenip takip edilebilir.
6. Adım : Apache Superset’te, Presto’da properties tanımı yapılan postgresql catalog‘undan public scheması altındaki pisa tablosunun verisiyle aşağıdaki gibi basit bir dashboard örneği çıkarılabilir. Farklı veri setleriyle ve tasarımlarla daha estetik ve anlamlı raporlar hazırlanabilir.
Yeni yazılarda görüşmek üzere. 🖐
Kaynaklar:
https://prestodb.io/docs/current/connector/postgresql.html
https://superset.apache.org/docs/databases/presto
https://docs.docker.com/compose/networking/
__________________________________________________________________________
Ali Mesut Karadeniz