Ana içeriğe geç

Databricks Notebook’u Tanıma: Kapsamlı Bir Rehber

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.
· 10 dk. oku

Yapay Zeka ile Keşfedin

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.

Databricks Workspace. Görsel: Yazar.

  • Şuna tıklayın: Workspace > Create > Notebook.

Create Databricks Notebook.

Databricks Notebook oluşturma. Görsel: Yazar.

  • Bir ad verin, varsayılan bir dil seçin ve bir kümeye (cluster) ekleyin.

Select the name and default language for Databricks Notebook.

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.

Import existing notebook to Databricks Workspace.

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.

Renaming Databricks Notebook.

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.

Running a cell in Databricks Notebook.

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.

Reset variables and execution state in Databricks Notebook.

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.

Comments in Databricks Notebook.

Databricks Notebook’ta yorumlar. Görsel: Yazar.

  • Revizyonlar: Önceki sürümleri görüntüleyin ve geri yükleyin.

Version history in Databricks Notebook.

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 Databricks

Example of Python code in Databricks Notebook.

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 SQL
SELECT origin, dest, COUNT(*) AS flight_count 
FROM flights_table 
GROUP BY origin, dest 
ORDER BY flight_count DESC 
LIMIT 10;

SQL code in Databricks Notebook.

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 Scala
val data = spark.read.option("header", "true").csv("/databricks-datasets/airlines/part-00000")

// Display as a table in Databricks
display(data)

Scala code in Databricks Notebook.

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)

R code in Databricks Notebook.

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 visualizations

Example of Markdown cells in Databricks Notebook.

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.

Executing individual and running all cells in Databricks Notebook.

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))

View inputs in Databricks Notebook.

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 libraries
import 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()

Visualizing outputs in Databricks Notebook.

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)

Displaying multiple outputs from the execution of a single cell in Databricks Notebook.

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.
  • Create Job’a tıklayın ve notebook’u seçin.

Creating Job Run in Databricks Notebook.

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.

Configuring schedules and triggers in Databricks Notebook.

Databricks Notebook’ta zamanlama ve tetikleyicileri yapılandırma. Görsel: Yazar.

  • Gerekirse bir küme ekleyin ve bağımlılıkları ayarlayın.
  • Run Now’a tıklayarak hemen yürütün veya zamanında çalışmasını bekleyin.

Executing Job Runs in Databricks Notebook.

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.

dbutils.widgets.text("input_param", "default_value", "Enter Parameter")
param_value = dbutils.widgets.get("input_param")
print(f"User Input: {param_value}")

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.

dbutils.widgets.dropdown("dataset", "sales", ["sales", "marketing", "finance"])
selected_dataset = dbutils.widgets.get("dataset")
print(f"Processing {selected_dataset} dataset")

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:

  • Sürüm Geçmişini Görüntüle: Değişiklikleri izlemek için Revision History’ye tıklayın.

Viewing version history in Databricks Notebook.

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 data
CREATE LIVE TABLE sales_cleaned AS

    -- Selecting all columns where the 'order_status' is 'completed'
    SELECT * 
    FROM raw_sales
    WHERE order_status = 'completed'; 

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 tracking
import mlflow
mlflow.start_run()
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.95)

mlflow.end_run()

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 workspace export /Users/my_notebook /local/path/my_notebook.ipynb

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 %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.

%run /Users/john.doe/notebooks/data_preprocessing

%sh

%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.

%sh ls -lh /dbfs/data/

%fs

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.

%fs ls /databricks-datasets/

Ayrıca %fs cp ile dosya kopyalama, %fs rm ile dosya silme ve %fs head ile dosya önizleme yapabilirsiniz.

%pip

%pip komutu, notebook ortamında Python paketleri kurar. Aşağıdaki komut, geçerli notebook oturumunda matplotlib paketini kuracaktır.

%pip install pandas matplotlib

%pip freeze komutu, 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:

  • Yeni Sonuç Tablosu: Sıralanabilir ve filtrelenebilir tablolarla daha iyi sorgu sonuç görselleştirmesi.
  • Geliştirilmiş Markdown Editörü: Gelişmiş biçimlendirme, kod blokları ve gömülü görseller.
  • Etkileşimli Hata Ayıklayıcı: Karmaşık betiklerin sorun giderimi için adım adım hata ayıklama.
  • Satır İçi Asistan (Databricks AI Assistant): Kodu otomatik tamamlar, düzeltmeler önerir ve verimliliği artırır.

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 ls veya display(dbutils.fs.ls()) kullanarak mevcut veri kümelerini inceleyin.

display(dbutils.fs.ls("/databricks-datasets/"))

Ayrıca aşağıdaki adımları izleyerek tablo şemalarını doğrudan arayüz kenar çubuğunda keşfedebilirsiniz:

  • Çalışma alanında Data’ya tıklayın.
  • Veritabanlarına ve tablolara göz atın.
  • Bir tabloya tıklayarak veri ve şemayı önizleyin.

Veri profilleme için display() veya SQL sorgularıyla veriyi özetleyebilirsiniz.

df.describe().show()
%sql
SELECT COUNT(*), AVG(salary), MAX(age) FROM employees;

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 %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 customer
SELECT customer_id, SUM(total_amount) AS revenue  
FROM sales_data  
-- Group results by customer to get total revenue per customer
GROUP BY customer_id  
-- Order customers by revenue in descending order (highest first)
ORDER BY revenue DESC  
-- Return only the top 10 customers by revenue
LIMIT 10;

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 list kullanın.

Daha hızlı kodlama için şu klavye kısayollarını kullanın:

  • Shift + Enter → Geçerli hücreyi çalıştır.
  • Ctrl + / → Seçili satırları yorum satırı yap/geri al.
  • Esc + A/B → Üstüne/altına yeni hücre ekle.

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:

  • 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")

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 libraries
from 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")

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 segment
SELECT customer_segment, COUNT(*) AS interactions  
FROM user_activity  
-- Group by customer segment to aggregate interaction counts
GROUP BY customer_segment  
-- Order results by interaction count in descending order
ORDER BY interactions DESC;

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 %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.

Allan Ouko

Yazar

Allan Ouko

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.

Konular

İlgili