Databricks Notebook’ları nasıl yöneteceğinizi öğrenin. Çoklu dil desteği, zamanlama, sürüm kontrolü ve magic komutlardan yararlanarak iş akışınızı optimize edin.
Databricks; veri mühendisliği, makine öğrenimi ve iş analitiğini bir araya getiren birleşik bir analitik platformu olarak hizmet verir. Bu ekosistemin merkezinde, veri keşfi, model geliştirme ve üretim iş akışları için tasarlanmış etkileşimli çalışma alanları olan Databricks Notebook’lar yer alır.
Bu yazıda, Databricks Notebook’lara nasıl başlayacağınızı göstereceğim. Tamamen yeniyseniz, Databricks’in tüm inceliklerini ve veri mimarisini nasıl modernize ettiğini anlamak için Introduction to Databricks kursumuza kaydolarak başlamanız iyi olabilir. Kursumuz oldukça kapsamlıdır ve katalog yönetimi ile veri alımı da dahil pek çok konuyu öğretir; bir şans verin.
Databricks Notebook’lar Nedir?
Databricks Notebook’lar; kullanıcıların iş birliğine dayalı bir ortamda veri keşfi, mühendislik, makine öğrenimi ve analitik gerçekleştirmelerini sağlayan etkileşimli, bulut tabanlı çalışma alanlarıdır. Hücre tabanlı bir yürütme modeli kullanırlar; kullanıcılar kodu ayrık bloklar veya hücreler halinde yazıp çalıştırabilir.
Desteklenen diller
Databricks Notebook’larda çoklu dil desteği vardır; sadece favori dilinizi seçmekle kalmaz, aynı notebook içinde diller arasında geçiş de yapabilirsiniz. Diller arasında Python, SQL, Scala ve R bulunur; tümü için giriş seviyesinde kurslar sunuyoruz.
Şimdi, çok dilli birlikte çalışabilirliği kolaylaştırmak için Databricks, magic komutlar olarak bilinen komutları sağlar:
%python: Bir hücreyi Python kullanarak çalıştırır.
%sql: SQL sorgularını yürütür.
%scala: Scala tabanlı komutları işler.
%r: R kodunu çalıştırır.
Öne çıkan özellikler
Databricks Notebook’lar, aşağıdaki temel yetenekleri sunarak geleneksel kodlama ortamlarının ötesine geçer:
Gerçek Zamanlı Birlikte Yazım: Birden çok kullanıcı aynı anda notebook’ları düzenleyebilir, çalıştırabilir ve yorum yapabilir; kesintisiz iş birliği sağlar.
Otomatik Sürümleme: Yerleşik sürüm geçmişi değişiklikleri izlemeye, düzenlemeleri geri almaya ve kod bütünlüğünü korumaya olanak tanır.
Etkileşimli Yürütme: Kullanıcılar tek tek hücreleri veya tüm iş akışlarını çalıştırabilir; bu da hata ayıklama ve yinelemeli geliştirmeyi daha verimli kılar.
Yerleşik Görselleştirmeler: Harici kütüphanelere gerek kalmadan grafik, tablo ve panoların oluşturulmasına yönelik bütünleşik destek.
Git Entegrasyonu: Git depoları için yerel destek; sürüm kontrolü, kod paylaşımı ve CI/CD iş akışlarını etkinleştirir.
Databricks Notebook’lara Başlarken
Özellikleri okumak bir şeydir, kendi gözlerinizle görmek başka bir şey. Databricks’i takdir etmenin en iyi yolu, kendiniz denemeye başlamaktır. Bu bölümde, Databricks çalışma alanında notebook oluşturma, yönetme ve gezinmeye başlamanıza yardımcı olacağım. Sonrasında ne kadar yararlı olduğunu siz de göreceksiniz.
Notebook oluşturma ve yönetme
Databricks çalışma alanında yeni notebook’lar oluşturabilir veya mevcut notebook’ları yönetebilirsiniz. Aşağıdaki yöntemlere bakalım.
Databricks çalışma alanında yeni bir notebook nasıl oluşturulur
Databricks’te yeni bir notebook oluşturmak için:
Şuraya gidin: Databricks Workspace.
Databricks Workspace. Görsel: Yazar.
Şuna tıklayın: Workspace > Create > Notebook.
Databricks Notebook oluşturma. Görsel: Yazar.
Bir ad verin, varsayılan bir dil seçin ve bir kümeye (cluster) ekleyin.
Databricks Notebook için ad ve varsayılan dili seçin. Görsel: Yazar.
Mevcut notebook’ları içe aktarma
Databricks, GitHub ve Git depoları, harici URL’ler veya .dbc (Databricks arşivi) ya da .ipynb (Jupyter) dosyaları olarak yüklenen yerel dosyalar gibi birden çok kaynaktan notebook içe aktarımına izin verir.
Mevcut notebook’ları Databricks Workspace’e içe aktarmak için aşağıdaki adımları izleyin:
Şuna tıklayın: Workspace > Import.
Mevcut bir notebook’u Databricks Workspace’e içe aktarma. Görsel: Yazar.
Şuradan Source’u (URL, dosya veya Git) seçin.
Notebook’u yükleyin veya bağlantısını verin.
Yeniden adlandırma, düzenleme ve erişimi yönetme
Databricks Notebook’un adını değiştirmek için başlığa tıklayın ve adı düzenleyin.
Ayrıca, daha iyi yapılandırma için notebook’ları klasörlere taşıyabilirsiniz.
Databricks Notebook’ları klasöre taşıma. Görsel: Yazar.
Databricks Notebook’unuzu paylaşmadan önce, kimlerin görüntüleyebileceğini, düzenleyebileceğini veya yönetebileceğini kontrol etmek için erişim ve izinleri yönetebilirsiniz.
Temel gezinme ve arayüz genel bakış
Databricks Notebook’ların nasıl kullanılacağına ilişkin uygulamalı örneklere geçmeden önce, platformun arayüzü ve gezinmesini kısaca anlatayım.
Araç çubuğu, hücre işlemleri ve sağ kenar çubuğu genel görünümü
Databricks Notebook araç çubuğu aşağıdaki işlemlere hızlı erişim sağlar:
Çalıştır (Run): Tek tek hücreleri veya tüm notebook’u çalıştırın. Her hücrede şu seçenekler bulunur:
Hücreyi çalıştırma, düzenleme, silme veya taşıma.
Hücre türlerini kod, markdown, SQL veya Scala olarak değiştirme.
%python veya %sql gibi magic komutları ayarlama.
Databricks Notebook’ta bir hücre çalıştırma. Görsel: Yazar.
Durumu Temizle (Clear State): Değişkenleri ve yürütme durumunu sıfırlayın.
Databricks Notebook’ta değişkenleri ve yürütme durumunu sıfırlama. Görsel: Yazar.
Görünüm Modu (View Mode): Düzenleme ve sunum modları arasında geçiş yapın.
Yorumlar: Belirli hücreler üzerinde iş birliğine dayalı geri bildirim ekleyin.
Databricks Notebook’ta yorumlar. Görsel: Yazar.
Revizyonlar: Önceki sürümleri görüntüleyin ve geri yükleyin.
Databricks Notebook’ta sürüm geçmişi. Görsel: Yazar.
Yeni arayüz iyileştirmeleri
Databricks, daha sezgisel bir deneyim için çeşitli arayüz iyileştirmeleri sundu. Bu geliştirmelerle Databricks Notebook’lar, veri profesyonelleri için daha da yalın ve güçlü bir geliştirme ortamı sunuyor. Şunları içerir:
Modern Görünüm ve Hissiyat: Daha sade ve kullanıcı dostu bir arayüz.
Geliştirilmiş Markdown Düzenleme: Biçimlendirme ve görselleri gömme için gelişmiş destek.
Odak Modu (Focus Mode): Gereksiz arayüz öğelerini gizleyerek dikkat dağıtıcıları en aza indirin.
Etkileşimli Hata Ayıklama: Adım adım yürütme ve hata izleme için yeni araçlar.
Uygulamalı: Kod Yazma ve Çalıştırma
Databricks Notebook’lar, kullanıcıların kodlarını yazıp çalıştırdığı ve belgelendirdiği etkileşimli bir kodlama ortamı sağlar. Bu bölümde, kod hücreleri, Markdown ve verimli kod çalıştırma üzerine değineceğim.
Kod hücreleri ve Markdown
Databricks Notebook’lar aynı notebook içinde Python, SQL, Scala ve R dahil birden çok dili destekler.
Databricks Notebook’ta Python kodu yazma
Databricks Notebook içinde bir hücreye Python kodu yazmak için %python magic komutunu kullanın.
%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header","true").load("/databricks-datasets/airlines/part-00000")
pd_df = df.limit(5).toPandas()# Convert to Pandas DataFrame
display(pd_df)# Works in DatabricksAltyapı:
Databricks Notebook’ta Python kodu örneği. Görsel: Yazar.
Databricks Notebook’ta SQL kodu yazma
Databricks Notebook’ta SQL kodu yazmak için %sql magic komutunu kullanın. Notebook’un varsayılan dili SQL olarak ayarlandıysa, %sql komutunu eklemeden de hücreyi çalıştırabilirsiniz.
-- Querying a dataset in SQLSELECT origin, dest,COUNT(*)AS flight_count
FROM flights_table
GROUPBY origin, dest
ORDERBY flight_count DESCLIMIT10;Altyapı:
Databricks Notebook’ta SQL kodu. Görsel: Yazar.
Databricks Notebook’ta Scala kodu yazma
Databricks Notebook içinde bir hücreye Scala kodu yazmak için %scala magic komutunu kullanın.
%scala
// Reading and displaying data in Scalaval data = spark.read.option("header","true").csv("/databricks-datasets/airlines/part-00000")// Display as a table in Databricks
display(data)Altyapı:
Databricks Notebook’ta Scala kodu. Görsel: Yazar.
Databricks Notebook’ta R kodu yazma
Databricks Notebook hücresinde %r magic komutunu kullanarak R kodu da yazabilirsiniz.
%r
# Load a sample dataset in R
library(SparkR)
df <- read.df("/databricks-datasets/airlines/part-00000", source ="csv", header ="true")
head(df)Altyapı:
Databricks Notebook’ta R kodu. Görsel: Yazar.
Belgelendirme için Markdown hücreleri kullanma
Markdown hücreleri; metin, başlıklar, listeler ve diğer belgelendirmeleri eklemek için kullanılır. Aşağıdaki örnek, bir Markdown hücresinin nasıl yazıldığını ve sonuçların Databricks Notebook’ta nasıl görüntülendiğini gösterir.
%md
# Data Exploration Notebook
This notebook explores airline flight data, providing insights into flight frequency and destinations.
## **Steps:** 1. Load and display the dataset
2. Query data using SQL
3. Generate visualizationsAltyapı:
Hücreleri çalıştırma
Databricks Notebook’lar, kodu tekil hücre veya toplu hücre çalıştırmalarıyla esnek şekilde yürütmeyi sağlar.
Tek tek hücreleri çalıştırma ve tüm hücreleri çalıştırma
Tek bir hücreyi çalıştırmak için hücredeki Çalıştır düğmesine (▶) tıklayın veya klavye kısayolunu kullanın:
Shift + Enter: Geçerli hücreyi çalıştırır ve sonrakine geçer.
Ctrl + Enter: Hücreyi çalıştırır, sonraki hücreye geçmez.
Notebook’taki tüm hücreleri yürütmek için:
Araç çubuğundan Run All’a tıklayın.
Bu, notebook’u yukarıdan aşağıya sıralı olarak çalıştırır.
Databricks Notebook’ta tekil hücre ve tüm hücreleri çalıştırma. Görsel: Yazar.
Çıktıları görüntüleme
Databricks Notebook’lar; tablolar, grafikler ve günlükler dahil birden fazla çıktı biçimini destekler. Örneğin, aşağıdaki Python kodu ‘airlines’ veri kümesinin ilk 5 satırını görüntüler.
%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header","true").load("/databricks-datasets/airlines/part-00000")# Displaying the first 5 rows of a DataFrame
display(df.limit(5))Altyapı:
Databricks Notebook’ta girdileri görüntüleme. Görsel: Yazar.
Benzer şekilde, Databricks Notebook’larda hücre çıktısını görselleştirebiliriz. Örneğin, aşağıdaki Python kodu en sık görülen 10 hava yolu şirketini seçer, veriyi PySpark’tan Pandas’a dönüştürür ve Matplotlib ile bir çubuk grafik oluşturur.
%python
# Import necessary librariesimport matplotlib.pyplot as plt
import pandas as pd
# Load the dataset using PySpark
df = spark.read.option("header","true").csv("/databricks-datasets/airlines/part-00000")# Select the top 10 most frequent airlines (carrier column)
top_airlines = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)# Convert PySpark DataFrame to Pandas DataFrame
pd_df = top_airlines.toPandas()# Convert count column to integer (since it's a string in CSV)
pd_df["count"]= pd_df["count"].astype(int)# Plot a bar chart
plt.figure(figsize=(10,6))
plt.bar(pd_df["UniqueCarrier"], pd_df["count"], color="#ac4ce4")# Add titles and labels
plt.xlabel("Airline Carrier", fontsize=12)
plt.ylabel("Flight Count", fontsize=12)
plt.title("Top 10 Most Frequent Airline Carriers", fontsize=14)
plt.xticks(rotation=45)# Rotate x-axis labels for better readability# Show the plot
plt.show()Altyapı:
Databricks Notebook’ta çıktıları görselleştirme. Görsel: Yazar.
Benzer şekilde, Databricks Notebook’ta tek bir hücrenin yürütülmesinden birden fazla çıktı da gösterebilirsiniz. Örneğin, aşağıdaki kodun çıktısı; airlines veri kümesinin ilk 5 satırını ve en sık görülen 10 hava yolu şirketinin sayımını gösterecektir.
%python
# Show the top 5 rows in an interactive table
display(df.limit(5))# Show the top 10 most frequent airline carriers
top_carriers = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)
display(top_carriers)Altyapı:
Databricks Notebook’ta tek hücre yürütmesinden birden fazla çıktı gösterme. Görsel: Yazar.
Gelişmiş Databricks Notebook Özellikleri
Databricks Notebook’lar; üretkenlik, iş birliği ve operasyonel verimliliği artıran güçlü otomasyon, sürümleme ve entegrasyon yetenekleri sunar. Bu bölümde, Databricks Notebook’ların potansiyelini en üst düzeye çıkarmak için temel gelişmiş özellikleri ve en iyi uygulamaları inceleyeceğim.
Otomasyon ve zamanlama
Databricks, notebook yürütmesini işleri zamanlayarak otomatikleştirmeye ve dinamik yürütme için girdileri parametreleştirmeye olanak tanır.
Notebook’ları iş olarak zamanlama
Kullanıcılar, ETL, raporlama ve model eğitimi için otomatik iş akışları sağlamak üzere notebook’ları belirli aralıklarla çalışacak şekilde zamanlayabilir. Bir notebook işini zamanlamak için şu adımları izleyin:
Notebook’u açın ve Run as Job’a tıklayın veya Jobs sekmesine gidin.
CreateJob’a tıklayın ve notebook’u seçin.
Databricks Notebook’ta Job Run oluşturma. Görsel: Yazar.
Zamanlamayı yapılandırın ve günlük, saatlik veya özel cron tetikleyicilerini ayarlayın.
Databricks Notebook’ta zamanlama ve tetikleyicileri yapılandırma. Görsel: Yazar.
Gerekirse bir küme ekleyin ve bağımlılıkları ayarlayın.
RunNow’a tıklayarak hemen yürütün veya zamanında çalışmasını bekleyin.
Databricks Notebook’ta Job Run’ları yürütme. Görsel: Yazar.
Dinamik yürütme için parametreler ve widget’lar kullanma
Databricks widget’ları, parametreleri dinamik olarak tanımlamanıza olanak tanır; böylece aynı notebook farklı girdilerle çalıştırılabilir. Örneğin, aşağıdaki dbutils.widgets.text() widget’ı "Enter Parameter" etiketli, varsayılan değeri default_value olan etkileşimli bir metin girişi oluşturur. Ardından, kullanıcı tarafından girilen değeri widget’tan alır ve yazdırır.
Benzer şekilde, aşağıdaki kod dataset etiketli, sales, marketing ve finance seçeneklerine sahip ve varsayılanı sales olan bir açılır menü oluşturur. Kullanıcının seçtiği seçeneği alır ve seçilen veri kümesini yazdırır.
Databricks, değişiklikleri izlemeyi, önceki sürümleri geri yüklemeyi ve ekiplerle gerçek zamanlı çalışmayı kolaylaştıran yerleşik sürümleme ve iş birliği özellikleri sağlar.
Otomatik sürüm geçmişi ve Git entegrasyonu
Databricks Notebook’taki her değişiklik otomatik olarak sürümlenir. Sürüm geçmişi için şunları yapabilirsiniz:
Sürüm Geçmişini Görüntüle: Değişiklikleri izlemek için Revision History’ye tıklayın.
Databricks Notebook’ta sürüm geçmişini görüntüleme. Görsel: Yazar.
Önceki Sürümleri Geri Yükle: Gerekirse daha önceki bir duruma dönün.
Git entegrasyonunu kullanın: Sürüm kontrolü için notebook’ları GitHub, Azure DevOps veya Bitbucket ile eşitleyin.
Gerçek zamanlı iş birliği özellikleri
Databricks Notebook’lar ekiplerin aşağıdaki özelliklerle birlikte yazmasına, yorum yapmasına ve içgörüleri paylaşmasına olanak tanır:
Gerçek Zamanlı Birlikte Düzenleme: Birden çok kullanıcı aynı anda bir notebook’u düzenleyebilir.
Satır İçi Yorumlama: Tartışmalar için belirli kod satırlarına yorum ekleyin.
Paylaşım ve İzinler: Erişimi kontrol etmek için Viewer, Editor ve Owner gibi roller atayın.
Diğer araçlarla entegrasyon
Databricks Notebook’lar; Delta Live Tables, MLflow, SQL Warehouses ve CI/CD boru hatlarıyla entegre olarak işlevselliği genişletir.
Databricks’i Delta Live Tables ile kullanma
Delta Live Tables (DLT), bildirimsel ETL ile veri hattı otomasyonunu basitleştirir. Aşağıdaki sorgu, SQL’de bir Delta Live Table Pipeline oluşturur.
-- Creating a live table called 'sales_cleaned' that stores cleaned dataCREATE LIVE TABLE sales_cleaned AS-- Selecting all columns where the 'order_status' is 'completed'SELECT*FROM raw_sales
WHERE order_status ='completed';Altyapı:
Deney takibi için MLflow
Databricks ile entegre MLflow, makine öğrenimi deneyimlerinin takibini sağlar. Örneğin aşağıdaki kod, izlenen bir deneyin parçası olarak bir makine öğrenimi modelinin öğrenme oranı ve doğruluğunu MLflow’a kaydeder. Kayıttan sonra deney oturumunu sonlandırır. Bu, hiperparametreleri ve model performansını zaman içinde izlemenize ve farklı çalıştırmaları karşılaştırmanıza olanak tanır.
# Import the MLflow library for experiment trackingimport mlflow
mlflow.start_run()
mlflow.log_param("learning_rate",0.01)
mlflow.log_metric("accuracy",0.95)
mlflow.end_run()Altyapı:
Notebook’ları dışa aktarma ve CI/CD entegrasyonu
Databricks Notebook’lar aşağıdakiler dahil çeşitli formatlarda dışa aktarılabilir:
.html: Salt okunur raporları paylaşın.
.ipynb: Jupyter Notebook’lara dönüştürün.
.dbc: Taşınabilirlik için Databricks Arşivi.
Örneğin, aşağıdaki komutla CLI üzerinden bir notebook’u dışa aktarabilirsiniz.
Databricks Notebook’lar, iş akışlarını sadeleştiren, üretkenliği artıran ve iş birliğini geliştiren güçlü özellikler sunar. Bu bölümde, Databricks Notebook’lar platformunda gezinirken yararlı bulduğum magic komutlar, arayüz iyileştirmeleri, veri keşfi teknikleri ve kod yönetimi stratejilerini göstereceğim.
Magic komutlar
Databricks; betik çalıştırma, dosya yönetimi ve paket kurulumunu kolaylaştıran magic komutlar sağlar.
%run
İş akışlarını modülerleştirmek için mevcut notebook içinde başka bir notebook’u çalıştırmak üzere %run komutunu kullanabilirsiniz. Büyük projeleri yeniden kullanılabilir notebook’lara bölmek için de %run kullanabilirsiniz. Örneğin, aşağıdaki komut data_preprocessing notebook’unu çalıştırır; değişkenler, işlevler ve çıktılar mevcut notebook’ta kullanılabilir hale gelir.
%sh komutu, notebook içinde doğrudan Linux kabuk komutları çalıştırmanıza olanak tanır. Aşağıdaki örnekte komut, /dbfs/data/ DBFS içeriğini listeleyecektir.
Benzer şekilde, %fs komutu Databricks File System (DBFS) ile dosya işlemleri için etkileşim kurmanızı sağlar. Örneğin aşağıdaki komut, Databricks tarafından sağlanan herkese açık veri kümelerini içeren /databricks-datasets/ içindeki tüm dosya ve dizinleri listeler.
Databricks Notebook’larda kodunuzu yönetmek için aşağıdaki teknikleri kullanın. Öncelikle, yeniden kullanılabilir kod parçacıklarını ayrı notebook’larda saklayın ve %run ile çağırın. Ayrıca dönüşüm için Databricks Utilities (dbutils) kullanın. Bunun yanında, okunabilirlik için PEP 8 (Python) veya SQL en iyi uygulamalarını takip etmek iyi bir fikirdir. Yorumlar için her zaman markdown hücreleri kullanın.
-- Select customer_id and calculate total revenue per customerSELECT customer_id,SUM(total_amount)AS revenue
FROM sales_data
-- Group results by customer to get total revenue per customerGROUPBY customer_id
-- Order customers by revenue in descending order (highest first)ORDERBY revenue DESC-- Return only the top 10 customers by revenueLIMIT10;Altyapı:
Databricks Notebook’larla çalışırken sorunlarla karşılaşırsanız, aşağıdaki yöntemlerle sorun giderebilirsiniz:
Küme takıldı mı? Çekirdeği yeniden başlatın (Run → ClearState&Restart).
Yürüme yavaş mı? Darboğazlar için Spark UI’ı kontrol edin (Cluster → SparkUI).
Sürüm çatışmaları mı? Bağımlılıkları kontrol etmek için %pip list kullanın.
Daha hızlı kodlama için şu klavye kısayollarını kullanın:
Databricks Notebook’lar, veri mühendisliği, makine öğrenimi ve iş zekasında yaygın olarak kullanılır. Bu bölümde, ekiplerin üretim iş akışları için Databricks Notebook’lardan nasıl yararlandıklarını göstermek üzere gerçek dünya vaka çalışmaları ve kod parçacıklarını vurgulayacağım.
Vaka çalışması 1: Veri mühendisliği için ETL boru hatları
Bir perakende şirketinin ham satış verilerini içe aktardığı, temizlediği ve raporlama için bir Delta Lake’e kaydettiği bir senaryoyu düşünün. Süreç şu şekilde olacaktır:
Adım 1: Bulut depolamadan ham verileri okuyun.
Adım 2: Verileri PySpark ile temizleyin ve dönüştürün.
Adım 3: Temizlenmiş veriyi bir Delta Tablosuna kaydedin.
Adım 4: Notebook’u bir iş olarak zamanlayın.
Bu süreç, raporlama için veri güvenilirliğini ve sorgu performansını iyileştirir. Aşağıdaki kod parçacığı, yukarıdaki çözümün nasıl uygulanacağına dair bir örnektir:
# Read raw sales data from cloud storage
df = spark.read.format("csv").option("header","true").load("s3://sales-data/raw/")# Data cleaning and transformation
df_cleaned = df.filter(df["status"]=="completed").dropDuplicates()# Save to Delta Table for analysis
df_cleaned.write.format("delta").mode("overwrite").saveAsTable("sales_cleaned")Altyapı:
Vaka çalışması 2: Makine öğrenimi model geliştirme
Bir finans kuruluşunun bir makine öğrenimi modeli kullanarak kredi temerrütlerini tahmin ettiği başka bir senaryoyu düşünün. Bu iş akışını Databricks Notebook’ta uygulamak için aşağıdaki adımları izleyeceksiniz. Sonuç olarak MLflow ile otomatik model takibi ve dağıtım elde edilecektir.
Adım 1: Kredi verilerini yükleyin ve ön işlemden geçirin.
Adım 2: MLflow kullanarak lojistik regresyon modeli eğitin.
Adım 3: Modeli kaydedin ve takip edin.
# import librariesfrom sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import mlflow
# Load and prepare data
df = spark.read.table("loan_data").toPandas()
X_train, X_test, y_train, y_test = train_test_split(df.drop("default", axis=1), df["default"])# Train model
model = LogisticRegression()
model.fit(X_train, y_train)# Log model in MLflow
mlflow.sklearn.log_model(model,"loan_default_model")Altyapı:
Vaka çalışması 3: İş zekası için ad hoc veri analizi
Pazarlama ekibinin müşteri etkileşim eğilimlerini analiz ettiği bir senaryoda, çözümü aşağıdaki adımlarla uygularsınız:
Adım 1: SQL kullanarak müşteri davranışı verilerini sorgulayın.
Adım 2: Etkileşimli görselleştirmeler oluşturun.
Bu süreç, etkileşimli panolarla daha hızlı karar almayı sağlar.
%sql-- Count the number of interactions per customer segmentSELECT customer_segment,COUNT(*)AS interactions
FROM user_activity
-- Group by customer segment to aggregate interaction countsGROUPBY customer_segment
-- Order results by interaction count in descending orderORDERBY interactions DESC;Altyapı:
Databricks SQL bilginizi tazelemeniz gerekiyorsa, Databricks web arayüzünden SQL Warehouse kurulumunu öğrenmek için Databricks SQL eğitimimizi okumanızı öneririm.
Sorun Giderme ve SSS
Databricks notebook’larını eşzamanlı çalıştırırken hata ayıklama ve performansı koruma benzersiz zorluklar doğurabilir. Üretim ortamlarında notebook’unuzu hatasız tutmanıza yardımcı olacak bazı fikirler burada.
Yaygın sorun giderme konuları ve çözümler
Bazı sorunlar ve önerilen çözümler şunlardır:
Tek başına sorunsuz çalışan bir notebook, birden çok kullanıcı veya iş aynı anda yürüttüğünde başarısız oluyor: Bu sorun paylaşılan değişkenlerden kaynaklanabilir. Ayrıca tek bir küme birden fazla yürütmeyi desteklemeyebilir. Sorunu çözmek için parametreleştirme amacıyla widget’ları kullanın veya eşzamanlı yürütmeler için yeterli kaynağı sağlamak üzere küme otomatik ölçeklendirmesini kullanın.
Daha önce hızlı çalışan bir notebook artık belirgin şekilde daha uzun sürüyor: Sorun, verimsiz Spark dönüşümlerinin karıştırma (shuffle) sorunlarına yol açmasından veya çok fazla önbelleğe alınmış/sürdürülmüş veri setinin belleği tüketmesinden kaynaklanabilir. Çözmek için .persist() ve .unpersist() ile işlemleri yönetin. Ayrıca, dengesiz bölümler için Spark UI’ı izleyin ve Delta tablolarla sorguları optimize edin.
Başka bir notebook’u çalıştırmaya çalışırken %run başarısız oluyor: Notebook yolunun yanlış olması veya başvurulan notebook’un uygun bir kümeye erişememesi durumunda yaşanabilir. Çözmek için notebook içe aktarmalarında mutlak yollar kullanın veya kümelerin uygunluğunu kontrol edin; başvurulan notebook’ların uyumlu bir küme kullandığından emin olun.
Zamanlanmış bir notebook işi başarısız oluyor: Yürütmeden önce kümenin sonlandırılması veya bir veritabanı bağlantısı ya da API çağrısı gibi harici bir bağımlılığın başarısız olması durumunda gerçekleşebilir. Çözmek için hata durumunda küme yeniden başlatmayı etkinleştirin. İş ayarlarında Retry onFailure seçeneğini etkinleştirin. Ayrıca harici çağrılar için Try-Except blokları kullanın.
İş zamanlama ve otomatikleştirilmiş boru hatlarını ölçeklendirme için Databricks REST API’yi nasıl kullanacağınızı öğrenmek üzere Mastering the Databricks API eğitimimizi okuyun.
Üretimde notebook’ları korumaya yönelik en iyi uygulamalar
Databricks Notebook’lar üretimdeyken aşağıdaki teknikleri kullanın:
Kodu Yeniden Kullanılabilir Notebook’lara Modülerleştirin: Büyük notebook’ları daha küçük, yeniden kullanılabilir birimlere bölün ve çağırmak için %run kullanın. Yardımcı işlevleri ayrı yardımcı notebook’larda saklayın.
Sürüm Kontrolü (Git Entegrasyonu) Kullanın: Değişiklikleri izlemek ve sürümleri geri almak için Databricks Repos’u etkinleştirin.
İşler için Küme Seçimini Optimize Edin: Zamanlanmış çalıştırmalarda etkileşimli kümeler yerine iş kümeleri (job clusters) kullanın.
Günlükleme ve Uyarıları Uygulayın: İş durumunu kaydetmek için dbutils.notebook.exit() kullanın. Ayrıca Jobs arayüzünde ekipleri hatalardan haberdar etmek için e-posta uyarıları yapılandırabilirsiniz.
Kodu Belgeleyin ve Açıklık İçin Markdown Kullanın: İş akışı adımlarını ve mantığını açıklamak için markdown hücreleri kullanın.
Sonuç
Databricks’in temel kavramlarını keşfetmek istiyorsanız, Introduction to Databricks kursumuzu şiddetle tavsiye ederim. Bu kurs, magic komutlar, parametreleştirme ve performans optimizasyonları gibi gelişmiş özelliklerle denemeler yapmanız için gerekli doğru zemini hazırlar. Son olarak, bir Databricks Sertifikası almayı da öğrenmenizi öneririm. Yazımız, kariyer faydalarını keşfetmenize ve kariyer hedeflerinize uygun doğru sertifikayı seçmenize yardımcı olur.
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.
İlgili SSS
Databricks Assistant nedir?⌄
Databricks Assistant, notebook, sorgu, pano ve dosyaları daha verimli oluşturmanıza yardımcı olan yapay zekâ tabanlı bir eş programcı ve destek aracıdır. Kod ve sorgu üretebilir, optimize edebilir, hata ayıklayabilir, açıklayabilir ve düzeltebilir.
Databricks Notebook’larda hangi diller desteklenir?⌄
Databricks Notebook’lar Python, SQL, Scala ve R’ı destekler; %python, %sql, %r ve %scala gibi magic komutlarla aynı notebook’ta farklı dilleri çalıştırabilirsiniz.
Aynı anda birden fazla kullanıcı aynı notebook’u düzenleyebilir mi?⌄
Evet, Databricks Notebook’lar gerçek zamanlı birlikte yazımı destekler; birden çok kullanıcı aynı belgeyi eşzamanlı olarak düzenleyebilir ve yorum yapabilir.
Bir notebook’u dışa aktarabilir veya indirebilir miyim?⌄
Evet, notebook’lar .ipynb (Jupyter), .dbc (Databricks arşivi), .py (betik) ve .html (okunabilir format) dahil birden fazla formatta dışa aktarılabilir/indirilebilir.
Notebook yürütme performansını nasıl iyileştiririm?⌄
Performansı artırmak için küme otomatik ölçeklendirmesini kullanın, Delta Lake ile veri işlemesini optimize edin, veriyi etkin şekilde önbelleğe alın ve gereksiz shuffle işlemlerinden kaçının.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Databricks; veri mühendisliği, makine öğrenimi ve iş analitiğini bir araya getiren birleşik bir analitik platformu olarak hizmet verir. Bu ekosistemin merkezinde, veri keşfi, model geliştirme ve üretim iş akışları için tasarlanmış etkileşimli çalışma alanları olan Databricks Notebook’lar yer alır.
Bu yazıda, Databricks Notebook’lara nasıl başlayacağınızı göstereceğim. Tamamen yeniyseniz, Databricks’in tüm inceliklerini ve veri mimarisini nasıl modernize ettiğini anlamak için Introduction to Databricks kursumuza kaydolarak başlamanız iyi olabilir. Kursumuz oldukça kapsamlıdır ve katalog yönetimi ile veri alımı da dahil pek çok konuyu öğretir; bir şans verin.
Databricks Notebook’lar Nedir?
Databricks Notebook’lar; kullanıcıların iş birliğine dayalı bir ortamda veri keşfi, mühendislik, makine öğrenimi ve analitik gerçekleştirmelerini sağlayan etkileşimli, bulut tabanlı çalışma alanlarıdır. Hücre tabanlı bir yürütme modeli kullanırlar; kullanıcılar kodu ayrık bloklar veya hücreler halinde yazıp çalıştırabilir.
Desteklenen diller
Databricks Notebook’larda çoklu dil desteği vardır; sadece favori dilinizi seçmekle kalmaz, aynı notebook içinde diller arasında geçiş de yapabilirsiniz. Diller arasında Python, SQL, Scala ve R bulunur; tümü için giriş seviyesinde kurslar sunuyoruz.
Şimdi, çok dilli birlikte çalışabilirliği kolaylaştırmak için Databricks, magic komutlar olarak bilinen komutları sağlar:
%python: Bir hücreyi Python kullanarak çalıştırır.%sql: SQL sorgularını yürütür.%scala: Scala tabanlı komutları işler.%r: R kodunu çalıştırır.Öne çıkan özellikler
Databricks Notebook’lar, aşağıdaki temel yetenekleri sunarak geleneksel kodlama ortamlarının ötesine geçer:
Databricks Notebook’lara Başlarken
Özellikleri okumak bir şeydir, kendi gözlerinizle görmek başka bir şey. Databricks’i takdir etmenin en iyi yolu, kendiniz denemeye başlamaktır. Bu bölümde, Databricks çalışma alanında notebook oluşturma, yönetme ve gezinmeye başlamanıza yardımcı olacağım. Sonrasında ne kadar yararlı olduğunu siz de göreceksiniz.
Notebook oluşturma ve yönetme
Databricks çalışma alanında yeni notebook’lar oluşturabilir veya mevcut notebook’ları yönetebilirsiniz. Aşağıdaki yöntemlere bakalım.
Databricks çalışma alanında yeni bir notebook nasıl oluşturulur
Databricks’te yeni bir notebook oluşturmak için:
Databricks Workspace. Görsel: Yazar.
Databricks Notebook oluşturma. Görsel: Yazar.
Databricks Notebook için ad ve varsayılan dili seçin. Görsel: Yazar.
Mevcut notebook’ları içe aktarma
Databricks, GitHub ve Git depoları, harici URL’ler veya
.dbc(Databricks arşivi) ya da.ipynb(Jupyter) dosyaları olarak yüklenen yerel dosyalar gibi birden çok kaynaktan notebook içe aktarımına izin verir.Mevcut notebook’ları Databricks Workspace’e içe aktarmak için aşağıdaki adımları izleyin:
Mevcut bir notebook’u Databricks Workspace’e içe aktarma. Görsel: Yazar.
Yeniden adlandırma, düzenleme ve erişimi yönetme
Databricks Notebook’un adını değiştirmek için başlığa tıklayın ve adı düzenleyin.
Ayrıca, daha iyi yapılandırma için notebook’ları klasörlere taşıyabilirsiniz.
Databricks Notebook’ları klasöre taşıma. Görsel: Yazar.
Databricks Notebook’unuzu paylaşmadan önce, kimlerin görüntüleyebileceğini, düzenleyebileceğini veya yönetebileceğini kontrol etmek için erişim ve izinleri yönetebilirsiniz.
Temel gezinme ve arayüz genel bakış
Databricks Notebook’ların nasıl kullanılacağına ilişkin uygulamalı örneklere geçmeden önce, platformun arayüzü ve gezinmesini kısaca anlatayım.
Araç çubuğu, hücre işlemleri ve sağ kenar çubuğu genel görünümü
Databricks Notebook araç çubuğu aşağıdaki işlemlere hızlı erişim sağlar:
Hücreyi çalıştırma, düzenleme, silme veya taşıma.
Hücre türlerini kod, markdown, SQL veya Scala olarak değiştirme.
%pythonveya%sqlgibi magic komutları ayarlama.Databricks Notebook’ta bir hücre çalıştırma. Görsel: Yazar.
Databricks Notebook’ta değişkenleri ve yürütme durumunu sıfırlama. Görsel: Yazar.
Databricks Notebook’ta yorumlar. Görsel: Yazar.
Databricks Notebook’ta sürüm geçmişi. Görsel: Yazar.
Yeni arayüz iyileştirmeleri
Databricks, daha sezgisel bir deneyim için çeşitli arayüz iyileştirmeleri sundu. Bu geliştirmelerle Databricks Notebook’lar, veri profesyonelleri için daha da yalın ve güçlü bir geliştirme ortamı sunuyor. Şunları içerir:
Uygulamalı: Kod Yazma ve Çalıştırma
Databricks Notebook’lar, kullanıcıların kodlarını yazıp çalıştırdığı ve belgelendirdiği etkileşimli bir kodlama ortamı sağlar. Bu bölümde, kod hücreleri, Markdown ve verimli kod çalıştırma üzerine değineceğim.
Kod hücreleri ve Markdown
Databricks Notebook’lar aynı notebook içinde Python, SQL, Scala ve R dahil birden çok dili destekler.
Databricks Notebook’ta Python kodu yazma
Databricks Notebook içinde bir hücreye Python kodu yazmak için
%pythonmagic komutunu kullanın.Databricks Notebook’ta Python kodu örneği. Görsel: Yazar.
Databricks Notebook’ta SQL kodu yazma
Databricks Notebook’ta SQL kodu yazmak için
%sqlmagic komutunu kullanın. Notebook’un varsayılan dili SQL olarak ayarlandıysa,%sqlkomutunu eklemeden de hücreyi çalıştırabilirsiniz.Databricks Notebook’ta SQL kodu. Görsel: Yazar.
Databricks Notebook’ta Scala kodu yazma
Databricks Notebook içinde bir hücreye Scala kodu yazmak için
%scalamagic komutunu kullanın.Databricks Notebook’ta Scala kodu. Görsel: Yazar.
Databricks Notebook’ta R kodu yazma
Databricks Notebook hücresinde
%rmagic komutunu kullanarak R kodu da yazabilirsiniz.Databricks Notebook’ta R kodu. Görsel: Yazar.
Belgelendirme için Markdown hücreleri kullanma
Markdown hücreleri; metin, başlıklar, listeler ve diğer belgelendirmeleri eklemek için kullanılır. Aşağıdaki örnek, bir Markdown hücresinin nasıl yazıldığını ve sonuçların Databricks Notebook’ta nasıl görüntülendiğini gösterir.
Hücreleri çalıştırma
Databricks Notebook’lar, kodu tekil hücre veya toplu hücre çalıştırmalarıyla esnek şekilde yürütmeyi sağlar.
Tek tek hücreleri çalıştırma ve tüm hücreleri çalıştırma
Tek bir hücreyi çalıştırmak için hücredeki Çalıştır düğmesine (▶) tıklayın veya klavye kısayolunu kullanın:
Notebook’taki tüm hücreleri yürütmek için:
Databricks Notebook’ta tekil hücre ve tüm hücreleri çalıştırma. Görsel: Yazar.
Çıktıları görüntüleme
Databricks Notebook’lar; tablolar, grafikler ve günlükler dahil birden fazla çıktı biçimini destekler. Örneğin, aşağıdaki Python kodu ‘airlines’ veri kümesinin ilk 5 satırını görüntüler.
Databricks Notebook’ta girdileri görüntüleme. Görsel: Yazar.
Benzer şekilde, Databricks Notebook’larda hücre çıktısını görselleştirebiliriz. Örneğin, aşağıdaki Python kodu en sık görülen 10 hava yolu şirketini seçer, veriyi PySpark’tan Pandas’a dönüştürür ve Matplotlib ile bir çubuk grafik oluşturur.
Databricks Notebook’ta çıktıları görselleştirme. Görsel: Yazar.
Benzer şekilde, Databricks Notebook’ta tek bir hücrenin yürütülmesinden birden fazla çıktı da gösterebilirsiniz. Örneğin, aşağıdaki kodun çıktısı; airlines veri kümesinin ilk 5 satırını ve en sık görülen 10 hava yolu şirketinin sayımını gösterecektir.
Databricks Notebook’ta tek hücre yürütmesinden birden fazla çıktı gösterme. Görsel: Yazar.
Gelişmiş Databricks Notebook Özellikleri
Databricks Notebook’lar; üretkenlik, iş birliği ve operasyonel verimliliği artıran güçlü otomasyon, sürümleme ve entegrasyon yetenekleri sunar. Bu bölümde, Databricks Notebook’ların potansiyelini en üst düzeye çıkarmak için temel gelişmiş özellikleri ve en iyi uygulamaları inceleyeceğim.
Otomasyon ve zamanlama
Databricks, notebook yürütmesini işleri zamanlayarak otomatikleştirmeye ve dinamik yürütme için girdileri parametreleştirmeye olanak tanır.
Notebook’ları iş olarak zamanlama
Kullanıcılar, ETL, raporlama ve model eğitimi için otomatik iş akışları sağlamak üzere notebook’ları belirli aralıklarla çalışacak şekilde zamanlayabilir. Bir notebook işini zamanlamak için şu adımları izleyin:
Databricks Notebook’ta Job Run oluşturma. Görsel: Yazar.
Databricks Notebook’ta zamanlama ve tetikleyicileri yapılandırma. Görsel: Yazar.
Databricks Notebook’ta Job Run’ları yürütme. Görsel: Yazar.
Dinamik yürütme için parametreler ve widget’lar kullanma
Databricks widget’ları, parametreleri dinamik olarak tanımlamanıza olanak tanır; böylece aynı notebook farklı girdilerle çalıştırılabilir. Örneğin, aşağıdaki
dbutils.widgets.text()widget’ı "Enter Parameter" etiketli, varsayılan değeridefault_valueolan etkileşimli bir metin girişi oluşturur. Ardından, kullanıcı tarafından girilen değeri widget’tan alır ve yazdırır.Benzer şekilde, aşağıdaki kod
datasetetiketli,sales,marketingvefinanceseçeneklerine sahip ve varsayılanısalesolan bir açılır menü oluşturur. Kullanıcının seçtiği seçeneği alır ve seçilen veri kümesini yazdırır.Sürümleme ve iş birliği
Databricks, değişiklikleri izlemeyi, önceki sürümleri geri yüklemeyi ve ekiplerle gerçek zamanlı çalışmayı kolaylaştıran yerleşik sürümleme ve iş birliği özellikleri sağlar.
Otomatik sürüm geçmişi ve Git entegrasyonu
Databricks Notebook’taki her değişiklik otomatik olarak sürümlenir. Sürüm geçmişi için şunları yapabilirsiniz:
Databricks Notebook’ta sürüm geçmişini görüntüleme. Görsel: Yazar.
Gerçek zamanlı iş birliği özellikleri
Databricks Notebook’lar ekiplerin aşağıdaki özelliklerle birlikte yazmasına, yorum yapmasına ve içgörüleri paylaşmasına olanak tanır:
Diğer araçlarla entegrasyon
Databricks Notebook’lar; Delta Live Tables, MLflow, SQL Warehouses ve CI/CD boru hatlarıyla entegre olarak işlevselliği genişletir.
Databricks’i Delta Live Tables ile kullanma
Delta Live Tables (DLT), bildirimsel ETL ile veri hattı otomasyonunu basitleştirir. Aşağıdaki sorgu, SQL’de bir Delta Live Table Pipeline oluşturur.
Deney takibi için MLflow
Databricks ile entegre MLflow, makine öğrenimi deneyimlerinin takibini sağlar. Örneğin aşağıdaki kod, izlenen bir deneyin parçası olarak bir makine öğrenimi modelinin öğrenme oranı ve doğruluğunu MLflow’a kaydeder. Kayıttan sonra deney oturumunu sonlandırır. Bu, hiperparametreleri ve model performansını zaman içinde izlemenize ve farklı çalıştırmaları karşılaştırmanıza olanak tanır.
Notebook’ları dışa aktarma ve CI/CD entegrasyonu
Databricks Notebook’lar aşağıdakiler dahil çeşitli formatlarda dışa aktarılabilir:
.html: Salt okunur raporları paylaşın..ipynb: Jupyter Notebook’lara dönüştürün..dbc: Taşınabilirlik için Databricks Arşivi.Örneğin, aşağıdaki komutla CLI üzerinden bir notebook’u dışa aktarabilirsiniz.
Databricks Notebook’larda Ustalaşmak İçin İpuçları
Databricks Notebook’lar, iş akışlarını sadeleştiren, üretkenliği artıran ve iş birliğini geliştiren güçlü özellikler sunar. Bu bölümde, Databricks Notebook’lar platformunda gezinirken yararlı bulduğum magic komutlar, arayüz iyileştirmeleri, veri keşfi teknikleri ve kod yönetimi stratejilerini göstereceğim.
Magic komutlar
Databricks; betik çalıştırma, dosya yönetimi ve paket kurulumunu kolaylaştıran magic komutlar sağlar.
%run
İş akışlarını modülerleştirmek için mevcut notebook içinde başka bir notebook’u çalıştırmak üzere
%runkomutunu kullanabilirsiniz. Büyük projeleri yeniden kullanılabilir notebook’lara bölmek için de%runkullanabilirsiniz. Örneğin, aşağıdaki komutdata_preprocessingnotebook’unu çalıştırır; değişkenler, işlevler ve çıktılar mevcut notebook’ta kullanılabilir hale gelir.%sh
%shkomutu, notebook içinde doğrudan Linux kabuk komutları çalıştırmanıza olanak tanır. Aşağıdaki örnekte komut,/dbfs/data/DBFS içeriğini listeleyecektir.%fs
Benzer şekilde,
%fskomutu Databricks File System (DBFS) ile dosya işlemleri için etkileşim kurmanızı sağlar. Örneğin aşağıdaki komut, Databricks tarafından sağlanan herkese açık veri kümelerini içeren/databricks-datasets/içindeki tüm dosya ve dizinleri listeler.Ayrıca
%fs cpile dosya kopyalama,%fs rmile dosya silme ve%fs headile dosya önizleme yapabilirsiniz.%pip
%pipkomutu, notebook ortamında Python paketleri kurar. Aşağıdaki komut, geçerli notebook oturumundamatplotlibpaketini kuracaktır.%pip freezekomutu, kurulu paketleri listelemek ve tekrar üretilebilirliği sağlamak için kullanılır.Arayüz iyileştirmeleri
Databricks, gezinmeyi, hata ayıklamayı ve genel kullanıcı deneyimini iyileştiren aşağıdaki arayüz geliştirmelerini sundu:
Her zaman Focus Mode’u (View → Focus Mode) etkinleştirmenizi, dikkat dağıtıcıları azaltmanızı öneririm.
Veri keşfi teknikleri
Databricks, veri kümelerine göz atmak, şemayı anlamak ve veriyi doğrudan notebook’lar içinde profillemek için yerleşik araçlar sağlar.
DBFS’deki veri kümelerine göz atmak için
%fs lsveyadisplay(dbutils.fs.ls())kullanarak mevcut veri kümelerini inceleyin.Ayrıca aşağıdaki adımları izleyerek tablo şemalarını doğrudan arayüz kenar çubuğunda keşfedebilirsiniz:
Veri profilleme için
display()veya SQL sorgularıyla veriyi özetleyebilirsiniz.Kod yönetimi stratejileri
Databricks Notebook’larda kodunuzu yönetmek için aşağıdaki teknikleri kullanın. Öncelikle, yeniden kullanılabilir kod parçacıklarını ayrı notebook’larda saklayın ve
%runile çağırın. Ayrıca dönüşüm için Databricks Utilities (dbutils) kullanın. Bunun yanında, okunabilirlik için PEP 8 (Python) veya SQL en iyi uygulamalarını takip etmek iyi bir fikirdir. Yorumlar için her zaman markdown hücreleri kullanın.Databricks Notebook’larla çalışırken sorunlarla karşılaşırsanız, aşağıdaki yöntemlerle sorun giderebilirsiniz:
Küme takıldı mı? Çekirdeği yeniden başlatın (Run → Clear State & Restart).
Yürüme yavaş mı? Darboğazlar için Spark UI’ı kontrol edin (Cluster → Spark UI).
Sürüm çatışmaları mı? Bağımlılıkları kontrol etmek için
%pip listkullanın.Daha hızlı kodlama için şu klavye kısayollarını kullanın:
Gerçek Dünya Kullanım Senaryoları
Databricks Notebook’lar, veri mühendisliği, makine öğrenimi ve iş zekasında yaygın olarak kullanılır. Bu bölümde, ekiplerin üretim iş akışları için Databricks Notebook’lardan nasıl yararlandıklarını göstermek üzere gerçek dünya vaka çalışmaları ve kod parçacıklarını vurgulayacağım.
Vaka çalışması 1: Veri mühendisliği için ETL boru hatları
Bir perakende şirketinin ham satış verilerini içe aktardığı, temizlediği ve raporlama için bir Delta Lake’e kaydettiği bir senaryoyu düşünün. Süreç şu şekilde olacaktır:
Bu süreç, raporlama için veri güvenilirliğini ve sorgu performansını iyileştirir. Aşağıdaki kod parçacığı, yukarıdaki çözümün nasıl uygulanacağına dair bir örnektir:
Vaka çalışması 2: Makine öğrenimi model geliştirme
Bir finans kuruluşunun bir makine öğrenimi modeli kullanarak kredi temerrütlerini tahmin ettiği başka bir senaryoyu düşünün. Bu iş akışını Databricks Notebook’ta uygulamak için aşağıdaki adımları izleyeceksiniz. Sonuç olarak MLflow ile otomatik model takibi ve dağıtım elde edilecektir.
Vaka çalışması 3: İş zekası için ad hoc veri analizi
Pazarlama ekibinin müşteri etkileşim eğilimlerini analiz ettiği bir senaryoda, çözümü aşağıdaki adımlarla uygularsınız:
Bu süreç, etkileşimli panolarla daha hızlı karar almayı sağlar.
Databricks SQL bilginizi tazelemeniz gerekiyorsa, Databricks web arayüzünden SQL Warehouse kurulumunu öğrenmek için Databricks SQL eğitimimizi okumanızı öneririm.
Sorun Giderme ve SSS
Databricks notebook’larını eşzamanlı çalıştırırken hata ayıklama ve performansı koruma benzersiz zorluklar doğurabilir. Üretim ortamlarında notebook’unuzu hatasız tutmanıza yardımcı olacak bazı fikirler burada.
Yaygın sorun giderme konuları ve çözümler
Bazı sorunlar ve önerilen çözümler şunlardır:
Tek başına sorunsuz çalışan bir notebook, birden çok kullanıcı veya iş aynı anda yürüttüğünde başarısız oluyor: Bu sorun paylaşılan değişkenlerden kaynaklanabilir. Ayrıca tek bir küme birden fazla yürütmeyi desteklemeyebilir. Sorunu çözmek için parametreleştirme amacıyla widget’ları kullanın veya eşzamanlı yürütmeler için yeterli kaynağı sağlamak üzere küme otomatik ölçeklendirmesini kullanın.
Daha önce hızlı çalışan bir notebook artık belirgin şekilde daha uzun sürüyor: Sorun, verimsiz Spark dönüşümlerinin karıştırma (shuffle) sorunlarına yol açmasından veya çok fazla önbelleğe alınmış/sürdürülmüş veri setinin belleği tüketmesinden kaynaklanabilir. Çözmek için
.persist()ve.unpersist()ile işlemleri yönetin. Ayrıca, dengesiz bölümler için Spark UI’ı izleyin ve Delta tablolarla sorguları optimize edin.Başka bir notebook’u çalıştırmaya çalışırken %run başarısız oluyor: Notebook yolunun yanlış olması veya başvurulan notebook’un uygun bir kümeye erişememesi durumunda yaşanabilir. Çözmek için notebook içe aktarmalarında mutlak yollar kullanın veya kümelerin uygunluğunu kontrol edin; başvurulan notebook’ların uyumlu bir küme kullandığından emin olun.
Zamanlanmış bir notebook işi başarısız oluyor: Yürütmeden önce kümenin sonlandırılması veya bir veritabanı bağlantısı ya da API çağrısı gibi harici bir bağımlılığın başarısız olması durumunda gerçekleşebilir. Çözmek için hata durumunda küme yeniden başlatmayı etkinleştirin. İş ayarlarında Retry on Failure seçeneğini etkinleştirin. Ayrıca harici çağrılar için Try-Except blokları kullanın.
İş zamanlama ve otomatikleştirilmiş boru hatlarını ölçeklendirme için Databricks REST API’yi nasıl kullanacağınızı öğrenmek üzere Mastering the Databricks API eğitimimizi okuyun.
Üretimde notebook’ları korumaya yönelik en iyi uygulamalar
Databricks Notebook’lar üretimdeyken aşağıdaki teknikleri kullanın:
Kodu Yeniden Kullanılabilir Notebook’lara Modülerleştirin: Büyük notebook’ları daha küçük, yeniden kullanılabilir birimlere bölün ve çağırmak için
%runkullanın. Yardımcı işlevleri ayrı yardımcı notebook’larda saklayın.Sürüm Kontrolü (Git Entegrasyonu) Kullanın: Değişiklikleri izlemek ve sürümleri geri almak için Databricks Repos’u etkinleştirin.
İşler için Küme Seçimini Optimize Edin: Zamanlanmış çalıştırmalarda etkileşimli kümeler yerine iş kümeleri (job clusters) kullanın.
Günlükleme ve Uyarıları Uygulayın: İş durumunu kaydetmek için
dbutils.notebook.exit()kullanın. Ayrıca Jobs arayüzünde ekipleri hatalardan haberdar etmek için e-posta uyarıları yapılandırabilirsiniz.Kodu Belgeleyin ve Açıklık İçin Markdown Kullanın: İş akışı adımlarını ve mantığını açıklamak için markdown hücreleri kullanın.
Sonuç
Databricks’in temel kavramlarını keşfetmek istiyorsanız, Introduction to Databricks kursumuzu şiddetle tavsiye ederim. Bu kurs, magic komutlar, parametreleştirme ve performans optimizasyonları gibi gelişmiş özelliklerle denemeler yapmanız için gerekli doğru zemini hazırlar. Son olarak, bir Databricks Sertifikası almayı da öğrenmenizi öneririm. Yazımız, kariyer faydalarını keşfetmenize ve kariyer hedeflerinize uygun doğru sertifikayı seçmenize yardımcı olur.