How-To Guides

Docker Compose ile Apache Superset Dağıtımı: Kapsamlı Kılavuz

Moder veri dünyasında, kendi kendine barındırılan İş Zekası (BI) çözümleri güvenlik, özelleştirme ve maliyet üzerinde eşsiz bir kontrol sağlar. Apache Superset, veri keşfi ve görselleştirme için güçlü bir platform sunan önde gelen açık kaynaklı bir araç haline gelmiştir. Bulut tabanlı sürümler mevcut olsa da, Superset'i kendi altyapınızda dağıtmak mevcut veri ambarlarıyla daha derin entegrasyon ve sıkı uyumluluk gereksinimleri sağlar.

Bu kılavuz, Apache Superset'i Docker Compose kullanarak dağıtmanızı adım adım anlatır. Bu yöntem, tam bir Kubernetes kümesinin karmaşıklığı olmadan tekrarlanabilir, izole ve kolayca yönetilebilir bir ortam isteyen orta seviye geliştiriciler için idealdir. Gerekli yapılandırmayı, veritabanı başlatmasını ve başlatma prosedürlerini ele alacağız.

Ön Koşullar ve Ortam Kurulumu

Dağıtıma başlamadan önce, yerel makinenizin veya sunucunuzun aşağıdaki gereksinimleri karşıladığından emin olun:

  • Docker ve Docker Compose: Yüklenmiş ve çalışır durumda olmalıdır. Bunu docker --version komutunu çalıştırarak doğrulayabilirsiniz.
  • Python Bilgisi: Python ortamlarıyla aşinalık faydalıdır, ancak Docker ağır işlerin çoğunu soyutlar.
  • Veri Ambarı Erişimi: Hedef veri kaynağınız (örneğin PostgreSQL, Redshift, BigQuery veya Snowflake) için kimlik bilgilerini hazır bulundurun.

Superset projeniz için yeni bir dizin oluşturun ve içine gidin. Bu dizin yapılandırmanızı ve Docker Compose dosyasını barındıracaktır.

Yığın Yapılandırması

Superset bağımlılıklarını yönetmenin en verimli yolu bir docker-compose.yml dosyası kullanmaktır. Bu dosya hizmetleri (Superset, Veritabanı, Redis) ve aralarındaki bağlantıları tanımlar.

Aşağıda sağlam bir yapılandırma şablonu bulunmaktadır. Meta veriler için kalıcı bir PostgreSQL veritabanı ve önbellekleme ile görev kuyruğu yönetimi için Redis içerir.

version: '3.9'
services:
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 3s
      retries: 50

  postgres:
    image: postgres:15-alpine
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: superset
      POSTGRES_PASSWORD: superset
      POSTGRES_DB: superset
    volumes:
      - superset-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "superset"]
      interval: 10s
      timeout: 5s
      retries: 5

  superset:
    image: apache/superset:latest
    restart: unless-stopped
    ports:
      - "8088:8088"
    command: superset init
    environment:
      SUPERSET_SECRET_KEY: 'your-very-secure-secret-key-here'
      DATABASE_HOST: postgres
      DATABASE_PORT: 5432
      DATABASE_USER: superset
      DATABASE_PASSWORD: superset
      DATABASE_DB: superset
    volumes:
      - superset-home:/app/superset_home
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy

volumes:
  superset-home:
  superset-db:

Önemli Güvenlik Notu: Yukarıdaki yapılandırmada, your-very-secure-secret-key-here metnini güçlü ve rastgele bir dizeyle değiştirin. Bu anahtar oturum çerezlerini imzalamak için kullanılır ve oturum hırsızlığına karşı uygulamanızı güvence altına almak için kritik öneme sahiptir.

Başlatma ve İlk Çalıştırma

docker-compose.yml dosyası kaydedildikten sonra, veritabanı şemasını başlatmak ve hizmetleri başlatmaya hazırsınız. Superset Docker görüntüsü, superset init komutu geçirildiğinde veritabanı geçişlerini otomatik olarak işleyen bir komut giriş noktası içerir.

Terminalde, compose dosyanızı içeren dizinden aşağıdaki komutu çalıştırın:

docker compose up -d

Bu komut kapsayıcıları arka plan modunda başlatır. Bu komutu ilk kez çalıştırdığınızda, Superset veritabanı geçişlerini gerçekleştirecektir ve bu işlem bir veya iki dakika sürebilir. İşlemin başarıyla tamamlandığından emin olmak için günlükleri izleyebilirsiniz:

docker compose logs -f superset

Günlüklerde "Superset çalışıyor" mesajını gördüğünüzde, örneğiniz yayında demektir. Tarayıcınızda http://localhost:8088 adresine gidin. Varsayılan kimlik bilgileri admin / admin'dir. İlk giriş yaptığınızda, şifrenizi hemen değiştirmeniz istenecektir.

Üretim Düşünceleri

Yukarıdaki kurulum geliştirme ve aşama (staging) için mükemmel olsa da, üretim dağıtımları ek güvenlik önlemleri gerektirir:

  1. Ters Proxy: SSL/TLS sonlandırmasını işlemek için Superset'in önüne Nginx veya Apache yerleştirin.
  2. Kalıcı Depolama: Veritabanı hacimlerinin düzenli olarak yedeklendiğinden emin olun.
  3. Gizli Bilgi Yönetimi: Hassas veriler için ortam değişkenleri yerine Docker Secrets veya Harici bir gizli bilgi yöneticisi (HashiCorp Vault gibi) kullanın.
  4. İşçi Ölçeklendirme: Büyük ölçekli panolar için asenkron görevleri işlemek üzere Docker Compose yığınağına Celery işçileri eklemeyi düşünün.

Sonuç

Docker Compose aracılığıyla Apache Superset dağıtmak, güçlü bir BI aracını hızlı bir şekilde çalıştırmaya yönelik akıcı bir yol sağlar. Veritabanını, önbelleği ve uygulama katmanını izole ederek, veri ekibiniz için yönetilebilir ve ölçeklenebilir bir temel oluşturursunuz.

Buradan itibaren, veri kaynaklarınızı bağlamaya, panolar oluşturmaya ve içgörülerinizi kuruluşunuzda paylaşmaya başlayabilirsiniz. İhtiyaçlarınız büyüdükçe, bu Docker tabanlı temel, Kubernetes veya Terraform ile daha karmaşık orkestrasyonlar için bir şablon olarak hizmet verebilir. İyi analizler!

Share: