Hiç bir fabrikanın taşıma bandının işini bir elektronik tablonun yapmasını sağlamaya çalıştınız mı? Birkaç yaz önce, gök gürültüsünde havlayan bir chihuahua gibi inleyen bir dizüstü bilgisayarla milyonlarca günlük dosyasını yönetmeye çalışırken ben tam olarak böyleydim. İşte o zaman biri, "Databricks'i denedin mi?" dedi. Plak çizildi.
"Spark", "kümeler" ve "Delta Lake" kelimeleri sizi dağlara kaçmak istemenize neden oluyorsa, iyi haber: Databricks kullanmak bir roket gemisi kullanmak gibi hissettirmek zorunda değil. Bunu veri insanları için paylaşımlı bir mutfak olarak düşünün—şefler (siz ve ekibiniz) malzemeler (veri) getirebilir, ocakları (işlem kümeleri) kullanabilir ve yemekler (analizler, gösterge panoları, makine öğrenimi modelleri) pişirmek için tarifleri (not defterleri) takip edebilir. Bu yemekler aslında şirketin işine yarar.
Bu kılavuzda, çalışma alanınızı kuracağız, ilk kümenizi başlatacağız, bir not defterinde kod yazacağız, SQL ile sorgulama yapacağız, sonuçları Delta tablolarına kaydedeceğiz, işleri planlayacağız ve iki klasik hatadan kaçınacağız: sürpriz faturalar ve gizemli "işim neden başarısız oldu?" geceleri. Her şeyi insani, pratik ve dürüst tutacağım—tıpkı iki komşunun çit üzerinden ipuçları alışverişi yapması gibi, ancak çit parke dosyalarından yapılmış.
Databricks aslında nedir?
Databricks'i büyük veri ve yapay zeka için hepsi bir arada bir stüdyo olarak hayal edin. Apache Spark'ı kullanıcı dostu bir arayüzde sarar, işbirliğine dayalı not defterleri ekler, verileri Delta Lake (süper güçlü bir tablo formatı) ile yönetir ve veri musluğunu yanlışlıkla gece boyunca açık bırakmamanız için size yönetişim araçları verir. Python, SQL, Scala veya R yazabilir, karıştırıp eşleştirebilir ve ekip arkadaşlarınızı birbirlerini dirseklemeye gerek kalmadan aynı not defterlerinde çalışmaya davet edebilirsiniz.
Zihinsel modeliniz
- Çalışma Alanı: Proje merkeziniz—kullanıcılar, not defterleri, depolar, işler.
- İşlem: Kümeler (not defterleri ve işler için) ve SQL Ambarları (BI/SQL sorguları için).
- Depolama: Bulut verileriniz (S3/ADLS/GCS). Databricks, sorgulayabileceğiniz tablolarla birlikte kullanıcı dostu bir katalog ekler.
- Yönetişim: Erişim kontrolleri ve Unity Catalog, böylece doğru insanlar doğru verileri görür.
- Boru Hatları: Veri mühendisliği için Delta Live Tables; işleri planlamak için İşler; deneyler ve modeller için MLflow.
Adım 1: Bir çalışma alanı oluşturun veya bir çalışma alanına katılın
Şirketinizin zaten Databricks'i varsa, bir davet alacaksınız. Aksi takdirde, bir deneme sürümüne (seçtiğiniz bulut) kaydolun ve bir çalışma alanı oluşturun. Temiz, sol kenar çubuğu arayüzüne ulaşacaksınız. Seçenekler karşısında paniklemeyin—sadece üçüyle başlayacağız: Çalışma Alanı, İşlem ve Veri.
Adım 2: İlk kümenizi başlatın (kaputun altındaki "motor")
Küme, Databricks'in sizin için başlattığı bir grup bulut makinesinden başka bir şey değildir.
- İşlem → Yeni Küme'ye tıklayın.
- Bir küme modu seçin (test için Tek kullanıcı veya Paylaşımlı ile başlayın).
- Maliyetleri düşük tutmak için küçük bir örnek türü seçin.
- Otomatik sonlandırmayı açın (örneğin, 15–30 dakika). Bu, bulut için "ışıklar kapalı" zamanlayıcısıdır.
- Oluştur'a tıklayın. Bir veya iki dakika bekleyin; yeşil bir "Çalışıyor" göreceksiniz.
Pogue'dan ipucu: Kümenize açık bir ad verin ("dev-pogue-15min-autoterm"). Gelecekteki siz teşekkür edecek.
Adım 3: Bir not defteri açın ("tezgahınız")
- Çalışma Alanı → Yeni → Not Defteri.
- Bir dil seçin. Python rahat bir başlangıç noktasıdır; yine de sihirli komutlarla SQL çalıştırabilirsiniz.
- Not defterini çalışan kümenize ekleyin (üstteki açılır menü).
İlk hücrenizi deneyin:
print("Merhaba, Databricks!")
Ardından bir Spark tanıtımı deneyin:
spark.range(5).show
Tebrikler, beş'e kadar saymak için dağıtılmış bir bilgi işlem motoru başlattınız. Artık resmen bir veri sihirbazısınız.
Adım 4: Veri getirin ("malzeme rafı")
Dosyaları içe aktarabilir, nesne depolamaya bağlanabilir veya mevcut tabloları sorgulayabilirsiniz.
- Kenar çubuğundaki Veri'ye tıklayın. Katalogları ve şemaları (tablolar için klasörler) ve veri ekleme seçeneklerini göreceksiniz.
- Bir CSV'niz varsa, hızlı bir test için yükleyin. Databricks şemayı çıkarabilir.
Bulut depolamadaki bir CSV'yi okumak için Python kullanma:
df = spark.read.option("header", True).csv("/mnt/my-bucket/sales.csv")
df.printSchema
df.limit(10).display
Bu görüntüleme işlevi Databricks sihridir: kolay sıralama, filtreleme ve çizelgeleme.
Adım 5: Sonuçlarınızı Delta tabloları olarak kaydedin (neden Delta?)
Delta tabloları süper güçlere sahip elektronik tablolar gibidir: işlemsel garantileri ("ACID") korur, sürümleri izler ve güncellemeleri/eklemeleri/birleştirmeleri mantıklı hale getirir.
df.write.mode("overwrite").format("delta").saveAsTable("analytics.sales_clean")
Şimdi SQL ile sorgulayabilirsiniz:
-- Hücrenizi %%sql ile SQL'e geçirin
%%sql
SELECT product, SUM(amount) AS total
FROM analytics.sales_clean
GROUP BY product
ORDER BY total DESC
Denetime uygun, sürüm denetimli veri mi istiyorsunuz? Zaman yolculuğu yapabilirsiniz:
%%sql
SELECT * FROM analytics.sales_clean VERSION AS OF 2
Adım 6: SQL Ambarları ile arkadaş olun (BI uzmanları için)
Çoğunlukla gösterge panoları ve iş sorularıyla uğraşıyorsanız, bir SQL Ambarı başlatın (İşlem → SQL Ambarları). SQL için ayarlanmış daha hafif bir motor gibidir.
- BI aracınızı bağlayın (Power BI, Tableau veya Databricks SQL Dashboard).
- Bir gösterge panosu oluşturun: görselleştirmeler, filtreler, yenileme zamanlamaları.
Adım 7: Delta Live Tables ile Boru Hatları ("manuel"den "otomatik"e)
Tekrarlanabilir dönüşümleriniz varsa—"ham satışları temizle, ürün meta verilerini birleştir, haftaya göre topla"—Delta Live Tables (DLT) bunu kontroller ve soy ile yönetilen bir boru hattına dönüştürür.
Küçük bir SQL DLT örneği:
CREATE OR REFRESH LIVE TABLE sales_clean AS
SELECT * FROM cloud_files('/mnt/data/sales_raw', 'csv');
CREATE OR REFRESH LIVE TABLE weekly_sales AS
SELECT product, weekofyear(date) AS week,
SUM(amount) AS weekly_total
FROM LIVE.sales_clean
GROUP BY product, week;
- DLT, izleme, yeniden denemeler ve veri kalitesi kurallarını yönetir.
- Kötü verilerin çeyreğinizi sessizce sabote etmek yerine yüksek sesle başarısız olması için beklentiler ekleyin (örneğin, "miktar >= 0").
Adım 8: İşlerle planlayın (çünkü uyumayı seviyorsunuz)
- Not defterinizi seçin, bir zamanlama ayarlayın (örneğin, günlük saat 2:00), küçük bir iş kümesi seçin.
- Başarısızlıklar için e-posta veya Slack uyarıları ekleyin.
Ekstra: Aynı kodun farklı girdilerle geliştirme/test/üretim için çalışması için not defterlerini parametreleştirin.
Adım 9: Gözyaşı olmadan izinler ve yönetişim
Veri erişim kontrolü önemlidir. Doğru okuyucuları, yazarları ve sahipleri sağlamak için yerleşik katalog izinlerini kullanın. Kuruluşunuz merkezi bir meta veri deposu kullanıyorsa, Unity Catalog ile karşılaşacaksınız: catalog.schema.table gibi adları standartlaştırır ve size daha iyi denetimler ve ayrıntılı kontroller sağlar.
Pogue'dan ipucu: Basit başlayın—analiz için bir katalog, korumalı alan için bir tane—ve her şeyi açıkça adlandırın. Gelecekteki analistler size kahve ısmarlayacak.
Adım 10: Maliyet kontrolü ("sürpriz fatura almayın" bölümü)
- Keşfederken varsayılan olarak küçük örnekler kullanın.
- Geliştirme kümelerinde her zaman otomatik sonlandırmayı etkinleştirin.
- Planlanmış görevler için iş kümelerini tercih edin (başlatın, çalıştırın, kapatın).
- Akıllıca önbelleğe alın: Yeniden kullanmanız gerekmedikçe büyük DataFrameleri kalıcı hale getirmeyin.
- Kullanıcı arayüzünün maliyet ölçümlerini izleyin ve bulut sağlayıcınızda bütçeler/uyarılar ayarlayın.
Günlük yaşam: hızlı bir demo
Diyelim ki patronunuz soruyor: "Bu çeyrekte en hızlı büyüyen ürün hatları hangileri?" İşte Databricks akışı:
- Bir not defteri oluşturun, bir geliştirme kümesi ekleyin.
- Satış ve ürün meta verilerini alın (bulut depolamada CSV).
- Temizleyin: şemaları uygulayın, null değerleri bırakın, tarih biçimlerini düzeltin.
- Temiz verileri Delta'ya yazın.
- Çeyrekler arası büyümeyi hesaplamak için SQL.
- Not defterinde görselleştirin; ardından patron için bir gösterge panosu yayınlayın.
- Her sabah yenilemek için not defterini bir İş'e sarın.
Sorun giderme köşesi (çünkü olur)
- Küme başlamıyor: Kotanızı/örnek türünüzü kontrol edin; daha küçük bir VM deneyin; izinleri onaylayın.
- Veri okunmuyor: Yolu ve kimlik bilgilerini doğrulayın; küçük bir örnek deneyin; çıkarılan şemayı inceleyin.
- İş başarısız olmaya devam ediyor: Günlüğe kaydetme (yazdırma deyimleri, görüntüleme) ekleyin, paralelliği azaltın ve girdileri doğrulayın.
- Sonuçlar "kapalı" görünüyor: Saat dilimleri! Sinsi davranıyorlar. Zaman damgalarını yayın, varsayılan bir saat dilimi ayarlayın ve varsayımları belgeleyin.
İşbirliği: solo performans değil, bir grup gibi çalışın
- Not defterlerini Git ile senkronize etmek için Depoları kullanın. Erken taahhüt edin, sık sık taahhüt edin.
- Doğrudan not defteri hücrelerine yorum yapın. Üstte talimatlarla birlikte bir "Önce Beni Oku" hücresi bulundurun.
- Küçük, birleştirilebilir not defterleri (alma, dönüştürme, analiz) yapın, böylece ekip arkadaşları kazı yapmadan atlayabilir.
Python mu? SQL mi? İkisi de.
Tek bir not defterinde dilleri karıştırabilirsiniz. Örneğin, mantığınızı SQL'de prototipleyin (hızlı yineleme), ardından özel kitaplıklar (tahmin, NLP) için Python'a geçin. UDF'leri idareli kullanın—yerel Spark işlevleri daha hızlıdır ve ölçeklendirmeye daha uygundur.
Performans: üç kol
- Bölümler: Samanlığı atlayın, yalnızca iğneleri okuyun. Delta tablolarını sık filtrelenen sütunlara (tarih, bölge) göre bölümleyin.
- Dosya boyutları: Küçük dosyalar her yerde bulunan ve sinir bozucu olan parıltı gibidir. Küçük dosyaları tıknaz, verimli olanlara birleştirmek için optimize edilmiş yazma/otomatik optimize kullanın.
- Önbelleğe alma ve yayın birleştirmeleri: Yeniden kullanılan DataFrameleri önbelleğe alın; büyük birleştirmelerde küçük tabloyu karıştırmayı önlemek için yayınlayın.
İkinci günde isteyeceğiniz güvenlik temelleri
- Gizli dizileri yönetilen bir gizli dizi kapsamında saklayın; asla sabit kodlu anahtarlar kullanmayın.
- En az ayrıcalık hibeleriyle üretim tablolarını kilitleyin.
- Kim neyi ne zaman değiştirdiğini görmek için denetim günlüklerini kullanın.
Deneyden üretime: gerçekçi bir yol
- 1. Hafta: Not defterleri ve küçük bir küme ile keşfedin. İlk Delta tablolarını kaydedin. Galibiyetleri paylaşın.
- 2. Hafta: Yinelenen dönüşümleriniz için bir DLT boru hattı oluşturun. Veri kalitesi kontrolleri ekleyin.
- 3. Hafta: Not defterlerini İşlere sarın, uyarılar ekleyin ve gösterge panolarını bir SQL Ambarına bağlayın.
- 4. Hafta: Gizli dizileri bir kasaya taşıyın, izinleri düzenleyin, adlandırma kuralları ayarlayın ve her şeyi belgeleyin.
Yaygın mitler, nazikçe söndürüldü
- "Databricks yalnızca Spark guruları içindir." Artık değil. SQL Ambarları ve UI yardımcıları, analistlerin bir satır Scala yazmadan başarılı olabileceği anlamına gelir.
- "Pahalı olacak." Olabilir—stadyum ışıklarını tüm hafta sonu açık bırakırsanız. Otomatik sonlandırma ve küçük iş kümeleri ile maliyetleri makul tutabilirsiniz.
- "Sürüm oluşturma bir baş ağrısıdır." Delta'nın zaman yolculuğu ve tablo geçmişi, geri almayı ve denetimleri canlandırıcı derecede sıradan hale getirir.
Yardımcı yardımcılar hakkında kısa bir not
Kendinizi bir deftere Spark kodu yazarken, kendi not defterinizi… kendinize açıklarken veya kaba bir sonucu düzenli bir özete dönüştürürken bulursanız, akıllı bir yardımcı pilot saatler kazandırabilir. Sider.AI gibi araçlar, tarayıcınızda arkadaş canlısı bir sohbet kutusu olarak oturabilir, bir başlangıç PySpark hücresi taslağı hazırlamanıza, beceriksiz bir birleştirmeyi yeniden düzenlemenize veya not defterinizin çıktısını patronunuz için okunaklı bir özete dönüştürmenize yardımcı olabilir. İşte püf noktası: belirli, somut sorular sorun ("Bu şema için ekleme mantığıyla bir Delta tablosuna bir PySpark birleştirmesi yazın…") ve önerinin tam olarak yerinde olması için şemanızın küçük, temsili bir örneğini yapıştırın. Her şeyi tahmin etmesini sağlamaya çalışırsanız, ikiniz de omuz silkerek bitireceksiniz. İlk haftanız: mini bir oyun kitabı
1. Gün: Bir çalışma alanı oturumu açma oluşturun. Otomatik sonlandırma ile küçük bir geliştirme kümesi başlatın.
2. Gün: Küçük bir CSV içe aktarın. Görüntüleme ile keşfedin. Bir Delta tablosu kaydedin.
3. Gün: Basit bir not defteri boru hattı oluşturun: ham → temiz → toplama. Yorumlar ekleyin.
4. Gün: Sonuçları doğrulamak için SQL'e geçin. Küçük bir gösterge panosu oluşturun.
5. Gün: Günlük olarak yenilemek için bir İş oluşturun. Kümeyi kapatın, zamanında eve gidin.
Hile sayfası: aslında kullanacağınız komutlar
- CSV/Parquet okuyun: spark.read.option("header", True).csv(path) / spark.read.parquet(path)
- Delta tablosu yazın: df.write.format("delta").mode("append").saveAsTable("catalog.schema.table")
- SQL hücresi: %%sql ardından sorgunuz
- SQL'de birleştirme (upsert) deseni:
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
- Python'da otomatik yükleyici (artımlı alma):
df = (spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.load("/mnt/raw/events"))
df.writeStream.format("delta").option("checkpointLocation","/mnt/chk").start("/mnt/delta/events")
Not defterlerinden boru hatlarına ne zaman geçilir
- Aynı not defterini günlük olarak çalıştırıyorsanız, onu bir İş'e taşıyın.
- Üç veya daha fazla not defterini zincirliyorsanız, DLT'yi düşünün—bağımlılıkları basitleştirir ve veri kalitesi kuralları ekler.
- Birden fazla ekip çıktılara bağlıysa, açık SLA'larla yönetilen bir kataloğa yükseltin.
Son bir şey (Pogue'un veri yer çekimi yasası)
Verinin yer çekimi vardır. Taşımak ağırdır ve etrafta savurmak pahalıdır. Databricks, işlemeyi veriye getirdiğinizde, tablolarınızı düzenli tuttuğunuzda (Delta) ve sıkıcı kısımları otomatik hale getirdiğinizde en iyi şekilde çalışır. Küçük başlayın, her şeyi etiketleyin ve bu otomatik sonlandırma zamanlayıcılarını bulut faturanız onlara bağlıymış gibi ayarlayın—çünkü öyledir.
Temel çıkarımlar
- Küçük bir küme ve otomatik sonlandırma ile başlayın.
- Keşfetmek için not defterlerini kullanın; temiz sonuçları Delta tabloları olarak kaydedin.
- Tekrarlanabilir dönüşümler için DLT kullanın ve İşlerle planlayın.
- SQL Ambarları ve gösterge panoları aracılığıyla içgörüleri paylaşın.
- İzinleri ve gizli dizileri erken kilitleyin; giderken belgeleyin.
- Bir dürtmeye ihtiyacınız olduğunda bir yardımcı pilota yaslanın—ancak istemlerinizi belirli tutun.
spark.range(5).show ile beşe kadar sayabiliyorsanız, Databricks'te işe yarar bir şeyler inşa edebilirsiniz. Ve gece işiniz sizi saat 2'de çağırmadan çalıştıktan sonra, "davranan veri" olarak bilinen o nadir ve güzel bölgeye geçtiğinizi bileceksiniz.
SSS
S1:Yeni başlayan biri olarak Databricks'i kullanmaya başlamanın en hızlı yolu nedir?
Küçük, otomatik olarak sonlanan bir küme oluşturun, bir not defteri açın ve keşfetmek için görüntüleme ile küçük bir CSV yükleyin. Temiz sonuçlarınızı bir Delta tablosu olarak kaydedin ve basit bir SQL sorgusu deneyin—bu, gelişmiş özelliklerde kaybolmadan ilk günde gerçek kazanımlar elde etmenizi sağlar.
S2:Boru hattım için not defterleri mi yoksa Delta Live Tables mı kullanmalıyım?
İşleri çözerken not defterleriyle başlayın; keşif ve hızlı kazanımlar için mükemmeldirler. Mantığınız istikrar kazandığında ve güvenilir bir şekilde çalışması gerektiğinde, yönetilen bağımlılıklar, veri kalitesi kontrolleri ve daha kolay izleme için Delta Live Tables'a geçin.
S3:Databricks maliyetlerini nasıl kontrol altında tutarım?
Geliştirme için küçük örnekler kullanın, otomatik sonlandırmayı etkinleştirin ve planlanmış çalıştırmalar için iş kümelerini tercih edin. Gerekli olmadıkça devasa DataFrameleri kalıcı hale getirmekten kaçının ve hiçbir şeyin tüm hafta sonu çalışmaması için maliyet ölçümlerini ve bulut bütçelerini takip edin.
S4:Kod yazmayanlar Databricks'i etkili bir şekilde kullanabilir mi?
Evet—SQL Ambarları artı gösterge panoları, Databricks'i analistler için kullanıcı dostu hale getirir. PySpark'a dokunmadan düz SQL yazabilir, sonuçları görselleştirebilir ve içgörüleri paylaşabilir, ardından yalnızca daha ağır dönüşümlere ihtiyaç duyduğunuzda mühendisleri getirebilirsiniz.
S5:Verileri Delta tabloları olarak kaydetmenin avantajı nedir?
Delta tabloları size ACID işlemleri, sürüm geçmişi (zaman yolculuğu) ve daha iyi performans sağlar. Bu, daha güvenli güncellemeler, bir şeyler ters gittiğinde daha kolay geri alma ve aynı veriler için daha hızlı sorgular anlamına gelir.