MiniLake: SQL, Delta Lake ve Spark İçeren Yerel Databricks API Emülatörü
Kaynak: Hacker News
İçindekiler 3 başlık
Dizüstü Bilgisayarınızda Çalışan Databricks API'si#
MiniLake, açık kaynaklı (MIT lisanslı), Python 3.11+ ve Docker tabanlı yerel bir Databricks API emülatörüdür. Sadece sahte yanıtlar dönen bir araç değil; gerçek SQL, gerçek Delta Lake ve gerçek Spark iş yürütme yeteneklerine sahip tam teşekküllü bir motordur. Bulut hesabı açmadan, API anahtarı oluşturmadan ve bulut faturası ödemeden http://localhost:8000 üzerinden geliştirme yapmanıza olanak tanır. Yazılım geliştirme ve öğrenme süreçlerinde bulut maliyetlerini sıfırlarken, çevrimdışı (air-gapped) ortamlarda bile çalışma imkanı sunar.
Kurulumu oldukça pratiktir:
pip install minilake && minilake --port 8000komutuyla PyPI üzerinden,docker run -p 8000:8000 ghcr.io/dmux/minilake:latestkomutuyla Docker üzerinden başlatılabilir vehttp://localhost:8000/ui/adresinden yerleşik SQL çalışma alanına erişilebilir.
Doğrudan Uyumlu Olduğu Araçlar ve Temel Metrikler#
Mevcut araçlarınızı kod değişikliği yapmadan doğrudan MiniLake'e yönlendirebilirsiniz:
- databricks-sdk (Python)
- Databricks CLI
- Terraform provider
- Asset Bundles
- PySpark + Delta
- MCP ajanları
Sistemin sunduğu temel kapasite:
- 30+ emüle edilmiş Databricks API grubu (Unity Catalog'dan SCIM'e kadar)
- 67 LLM ajanları için aynı porttan sunulan MCP aracı
- 378+ sahte (mock) nesneler yerine gerçek Databricks SDK ile yürütülen test
- $0 bulut maliyeti — her şey kendi makinenizde çalışır
Neler Sunuyor? Sahte Sunucu Değil, Gerçek Bir Motor#
Sahte uç noktalar (mock endpoints) hatalı kodların testlerden geçmesine neden olur. MiniLake ise sorgularınızı DuckDB üzerinde çalıştırır, gerçek Delta dosyaları yazar ve konteynerlerde gerçek spark-submit işleri yürüterek yerel testlerin güvenilirliğini kanıtlar:
- Gerçek Unity Catalog: Kataloglar, şemalar, tablolar ve birimler (volumes) için tam CRUD desteği sunar. Her katalog kendi DuckDB veritabanı dosyasıdır; böylece
catalog.schema.tableadreslemesi regex yönlendirmesiyle değil, doğal olarak çalışır. - Gerçekten Çalışan SQL: Gerçek DuckDB üzerinde ifade yürütme;
INLINEveEXTERNAL_LINKSdizilimleri,JSON_ARRAY,ARROW_STREAMveCSVformatları ile gerçek sütun tiplerini taşıyan sonuç manifestosu sağlar. - Gerçek Delta Lake Dosyaları: Harici (EXTERNAL) Delta tabloları, gerçek Parquet dosyaları ve
_delta_log/dizininden oluşur.INSERT,UPDATEveDELETEişlemleri gerçek bir Spark işi üzerinden yönlendirilirken, okumalar DuckDB'nindelta_scan()fonksiyonuyla yapılır. - Gerçekten Yürütülen İşler (Jobs):
spark_python_task, kardeş bir konteynerdespark-submitçalıştırır ve gerçek standart çıktıyı (stdout) döndürür. Gerçek DAG zamanlamasıdepends_onverun_ifkurallarına uyar, bağımsız dalları paralel çalıştırır. - Spark İçin Unity Catalog Protokolü:
spark.table("cat.sch.tbl")ifadeleri, resmiUCSingleCatalogbağlayıcısı aracılığıyla MiniLake üzerinde çözülür; Spark gerçek bir çalışma alanıyla aynı protokolü konuşur. - Yerleşik SQL Çalışma Alanı:
/uiadresinde kataloğa duyarlı otomatik tamamlamalı Monaco editörü, sanallaştırılmış sonuç ızgarası, grafikler, CSV/JSON dışa aktarma, kayıtlı sorgular, sorgu geçmişi ve gömülü JupyterLab içeren Athena tarzı bir arayüz sunar. - Terraform ve Asset Bundles: Databricks sağlayıcısını localhost'a yönlendirdiğinizde
terraform applygerçek kataloglar oluşturur.apply,planvedestroydöngüleri iledatabricks bundle deployvebundle runuçtan uca gerçek işleri çalıştırır. - Ajanlar İçin MCP Sunucusu:
/mcpadresinde 67 araç, 8 kaynak ve 4 istem (prompt) barındırır. Beş çağrılık diziyi tek çağrıya indiren bileşik araçlar ve ajanların hatalı Spark SQL yazmasını engelleyen SQL lehçesi kaynağı içerir. Hazır MCP Sunucuları ve Ekosistem ile MCP'nin Temel İlkeleri: Tools, Resources ve Prompts konularını pratikte deneyimlemek için harika bir laboratuvardır. - CI İçin Tasarlandı: Tek bir
POST /_minilake/resetisteği, konteyneri yeniden başlatmadan her test için temiz bir çalışma alanı sağlar./health,/readyve/servicesuç noktaları kontrol düzlemini tamamlar. - Workspace, DBFS, Dosyalar ve Sırlar (Secrets): Parçalı yükleme destekli dosya tabanlı not defteri ve dosya depolaması sunar. Sırlar (Secrets), tıpkı Databricks'te olduğu gibi yalnızca bir işin çalışma ortamı içinde çözümlenebilen gerçek CRUD nesneleridir.
Kaynak ve atıf
Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dmux.github.io/minilake