Anasayfa » Docker ile Trino Cluster, MinIO ve PostgreSQL Kurulumu

Docker ile Trino Cluster, MinIO ve PostgreSQL Kurulumu

Bu yazımda Docker ile Trino Cluster MinIO ve PostgreSQL Kurulumu ve basit birlikte kullanım örneğini sunmak istiyorum. Buradaki amacımız, bu üçlünün temel kullanımını öğrenip mevcut veya gerçekleştirmeyi düşündüğünüz projelerde nasıl kullanabileceğinizi göstermek olacak.

NOT: Yazının başında “üçlü” demiş olsam da, docker-compose.yml dosyamızda üçten fazla servis olduğunu fark edeceksiniz. Bu servisler:

  • Trino Coordinator
    – Adı gibi Coordinator sorguları alır ve işlemek için çalışan workerlar arasında iş yükünü dağıtır.
  • Trino Worker1
    – Coordinator tarafından dağıtılan sorgu görevlerini yürütürler. Birden fazla çalışan worker varsa sorgu işleme performansını artırır. Yatayda istediğin gibi büyüüü.
  • Trino Worker2
    – Coordinator tarafından dağıtılan sorgu görevlerini yürütürler. Birden fazla çalışan worker varsa sorgu işleme performansını artırır. Yatayda istediğin gibi büyüüü.
  • MariaDB
    – Hive Metastore (veri depolama katmanı) için meta verileri saklar. Meta veriler, veri tablolarının ve yapıların tanımlarını tutar. Hive için gerekli
  • Hive-Metastore
    – Büyük veri işleme sistemleri (örneğin Trino 🙂 ) için meta verileri yönetir ve sağlar. Bu meta veriler, veri kümelerinin şemalarını ve konumlarını içerir.
  • Minio
    – S3 uyumlu nesne depolama sağlar. Büyük veri dosyalarını saklamak ve yönetmek için kullanılır. Mini S3
  • Postgresql
    – Şanlı şerefli PostgreSQL Veritabanı hizmeti sağlar ve genellikle uygulamaların veri depolama ihtiyaçlarını karşılar.

Docker Ortamında Üçlünün Ayağa Kaldırılması

İlk aşama olarak Docker ortamında üçlünün ayağa kaldırılması adımlarını atlıyorum çünkü bu adımları kendi GitHub reposumda açıklayıcı bir şekilde anlattım. Aşağıdaki GitHub linki ile dökümana gidip Docker ortamında üçlüyü ayağa kaldırmanız gerekiyor.

git clone https://github.com/atfatmc/Trino-Cluster.git
Uygulama Arayüzlerinin Kontrolü
DBeaver ile Trino Bağlantısı

Şimdi Dbeaverdan trinoya bir bağlantı alalım. Auth yapmadık o yüzden username password boş geçiyoruz. İleride bir projede kullanırsak o zaman auth ve bir takım konfigürasyonları ekstradan yaparız şimdi amacımız güvenlik ve performans değil amaç öğrenmek

Minio’da Bucket Oluşturma

Şimdi önce Minio object store a bir bucket oluşturalım.

Bucket Name küçük harflerle yazılmalı

Bucket oluştu ve Object Browser sekmesinden bucket’ı gördük. İçeriye girdiniz. Şimdi bize mock data lazım, aşağıdaki siteden iki tane CSV dosyası çekelim:

https://cobbl.io/

İki adet mock data CSV indirdiniz: data1.csv, data2.csv. Bu CSV dosyalarını arayüzden “Upload” bölümünden yükleyebilir veya Minio’nun bucket verilerini tuttuğu “data” klasörünün içindeki ilgili bucket altına kopyalayabilirsiniz. Ancak bunları yapmadan önce, veriyi gruplayarak saklamak adına bucket içinde bir dizin (örneğin csvfile) oluşturabilirsiniz.

Trino’da Minio için Yeni Şema ve Veri Kaynağı Tanımlama

Minio da Bucket hazır, Bucket içine 2 csv dosyası attın hazır, dbeaver da trino bağlantın hazır şimdi dbeaver a gidip trino bağlantımızla temiz bir sayfa açalım kendimize trinoda minio’daki bucket’ımız için yeni şema ve yeni veri kaynağı tanımlıcaz.

CREATE SCHEMA minio.trino WITH (location = 's3a://trinopgbucket/');
create table minio.trino.csv_table (
first_name varchar,
last_name varchar,
email varchar
)
WITH 
(format = 'CSV', external_location = 's3a://trinopgbucket/csvfile/');
select * from minio.trino.csv_table;

Select sorgusuyla da tablondaki verileri gördük aslında 2 adet csv nin içindeki verileri gördük

Şimdi biz docker-compose.yml dosyamızda birde PostgreSQL container ayağa kaldırmıştık

create table postgresql.public.deneme as select * from minio.trino.csv_table;

NOT: Trino bağlantısı yaptığımızda görülen system dışındaki minio ve postgresql bağlantılarını biz tanımladık. Nerede tanımladık? GitHub reposundan çektiğimiz klasör içinde etc/coordinator/catalog içerisinde. Aynılarını etc/worker/catalog içine de yapmalıyız. Bu sayede Trino bağlantısı sağladığımızda Minio ve PostgreSQL doğrudan göründü. PostgreSQL dosyasını kendinize göre özelleştirerek kendi veri tabanınıza bağlanabilirsiniz.

Catalog dosyaları, buraya MySql, Mssql, Oracle vs gibi çeşitli veri tabanlarını (NoSql de dahil) tanımlayabilirsin. Catalog connector listesine aşağıdaki linkten erişebilirsin

https://trino.io/docs/current/connector.html

Sonuç

Docker ile Trino Cluster MinIO ve PostgreSQL Kurulumu ve Trino, Minio, PostgreSQL’i birlikte nasıl kullanabileceğimizi öğrendik. Yeni catalog nasıl tanımlanır, performans tuning nasıl yapılır, Trino cluster’ı yatayda nasıl genişletebiliriz gibi detaylara bu yazıda değinmedik, ancak bu konuları detaylıca ele alacağımız bir yazımız daha olacak.

Trino resmi sayfası için Tıklayın.
Diğer tüm Docker konulu yazılar için Tıklayın.

More Reading

Post navigation

Leave a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir