Presto – 2 (w/ Postgre & Apache Superset)

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.

 Apache Superset
$ 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.

 presto_compose.yaml
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

Yorum bırakın