Kurs
Önce veri ambarları vardı. O dönemin interneti ve bilgisayarları yalnızca basit metin bilgisini dağıtabildiği için verileri satırlar ve sütunlarda depolarlardı. Much daha sonra, topladığınız hemen her tür veriyi saklayabilen veri gölleri geldi — sosyal medya ve YouTube çağında harikaydılar.
Ancak her ikisinin de dezavantajları vardı — veri ambarları pahalıydı ve modern veri bilimine uygun değildi, veri gölleri ise dağınıktı ve sıkça veri bataklıklarına dönüşüyordu. Bu nedenle şirketler iki ayrı teknoloji yığını kullanmaya başladı — BI ve analitik için ambarlar, makine öğrenimi için göller.
İki farklı veri mimarisini yönetmek ise o kadar zahmetliydi ki şirketler genelde zayıf sonuçlar elde ediyordu. Bu sorun, tam da Databricks’in ünlü olduğu lakehouse mimarisini doğurdu.
Databricks, kullanıcıların ambarların ve göllerin değerinden birleşik bir ortamda yararlanmasını sağlayan bulut tabanlı bir platformdur. Bu makale, platformun genel bir görünümünü sunacak; en önemli özelliklerini ve nasıl kullanılacaklarını gösterecek.
Bu Databricks Eğitiminde Neleri Ele Alacağız
Databricks o kadar kapsamlı bir platform ki belgelendirmesi bile başlı başına bir kitap olabilir. Bu nedenle makalenin amacı size bir kavramlar hiyerarşisi sunmaktır — Databricks özelliklerini başlangıç seviyesinden yetkin bir Databricks uygulayıcısına taşıyacak şekilde, doğrusal sıralı açıklamalar. Tam bir yeni başlayan iseniz, Databricks’e Giriş kursumuza da göz atmak isteyebilirsiniz.
Hadi başlayalım!
1. Databricks nedir?
Databricks kelimesini okuduğunuzda aklınıza hemen bir platform gelmeli; bir framework ya da Python kütüphanesi değil. Genellikle platformlar geniş bir özellik yelpazesi sunar ve Databricks de istisna değildir. Veri mühendislerinden modern makine öğrenimi mühendislerine (basında bugün AI programcıları deniyor) kadar her veri profesyoneli tarafından kullanılabilen nadir platformlardan biridir.
Databricks’in temel bileşenleri şunlardır:
- Çalışma Alanı (Workspace): Databricks, ekiplerin zahmetsizce iş birliği yapabileceği merkezi bir ortam sağlar. Ortama kullanıcı dostu bir web arayüzüyle erişilir.
- Not Defterleri (Notebook): Databricks, özellikle iş birliği ve esneklik için tasarlanmış bir Jupyter not defteri sürümüne sahiptir.
- Apache Spark: Databricks, Apache Spark’ı sever. Devasa veri kümelerinin tüm paralel işlenmesini sağlayan motordur; büyük veri analitiği için uygundur.
- Delta Lake: Veri göllerine ACID işlemleri ekleyen bir iyileştirme. Delta Lake, veri güvenilirliği ve tutarlılığı sağlar; veri göllerinin geleneksel zorluklarını ele alır.
- Ölçeklenebilirlik: Platform dikey değil yatay ölçeklenir; bu da sürekli artan veri talepleriyle uğraşan kuruluşlar için idealdir.
Databricks’in faydaları
Bu bileşenler bir araya geldiğinde geniş bir fayda yelpazesinin kilidini açar:
- Çapraz ekip iş birliği: mühendisler, analistler, bilim insanları ve ML mühendisleri aynı platformda sorunsuzca çalışabilir.
- Tutarlılık: not defterleriyle kullanıcılar görevler ve programlama dilleri arasında bağlam değiştirmeye gerek kalmadan geçiş yapabilir.
- Verimli iş akışları: Kullanıcılar veri temizleme, dönüştürme ve makine öğrenimi gibi görevleri uyumlu bir şekilde gerçekleştirebilir.
- Entegre veri yönetimi: kullanıcılar platforma birden fazla kaynaktan veri alabilir, tablolar oluşturabilir ve SQL çalıştırabilir.
- Gerçek zamanlı iş birliği: paylaşılan not defterleri ve ortak düzenleme özellikleri gerçek zamanlı iş birliğini mümkün kılar. Birden fazla ekip üyesi aynı not defteri üzerinde eşzamanlı çalışabilir.
Eğer Databricks’in veri dünyasındaki önemine sizi ikna ettiysem, platformu hızla kullanmaya başlamanızı sağlayalım.
2. Hesap Kurulumu
Hesabınızı kurmak için https://www.databricks.com/try-databricks adresine gidin ve Community Edition’a kaydolun.

Community Edition, Enterprise sürümüne göre daha az özelliğe sahiptir; ancak bir bulut sağlayıcı kurulumu gerektirmez; bu da eğitimler gibi küçük kullanım senaryoları için idealdir.
E-posta doğrulamasından sonra bu sayfayı görüyorsanız hazırsınız demektir:

3. Databricks Çalışma Alanı
Gördüğünüz arayüz, e-posta adresiniz için Çalışma Alanıdır ( community edition çalışma alanını bulmak kolaydır). Pratikte genelde şirketinizden bir hesap yöneticisi tek bir Databricks hesabı oluşturur ve çalışma alanına erişimi yönetir.
Şimdi platformun kullanıcı arayüzünü anlayalım. Sol panelde, Databricks’in sunduğu farklı bileşenlerin menüsü yer alır. Kurumsal sürümde daha da fazla düğme olacaktır:

Menüdeki ilk seçenek, varsayılan olarak veri bilimi ve mühendislik olarak ayarlanan çalışma alanı türüdür. Bunu makine öğrenimine değiştirirseniz yeni bir Deneyler (Experiments) seçeneği belirir:

Yüzeyde çok bir şey yapmıyor gibi görünebilir; ancak hesabınızı yükseltip kurcalamaya başladığınızda platformun bazı harika özelliklerini fark edeceksiniz:
- Kaynaklar için merkezi hub: not defterleri, kümeler, tablolar, kütüphaneler ve panolar
- Birden fazla dilde not defterleri
- Küme yönetimi: çalışma alanında kod yürütmek için hesaplama kaynaklarının yönetimi
- Tablo yönetimi
- Pano oluşturma: DB kullanıcıları doğrudan çalışma alanında görselleri panolarda toplayabilir
- Not defterlerinde gerçek zamanlı ortak düzenleme
- Not defterleri için sürüm kontrolü
- İş zamanlama (güçlü bir özellik): kullanıcılar not defterlerini ve betikleri belirli aralıklarla çalıştırabilir
vb.
Şimdi bu bileşenlerden bazılarına daha yakından bakalım.
4. Databricks Kümeleri (Clusters)
Databricks’te kümeler, veri işleme görevlerini yürütmek için kullanılan hesaplama kaynaklarını ifade eder. Genellikle, hesap kurulumunda seçtiğiniz bulut sağlayıcı tarafından hizmet verilirler.
Community edition kümeleri RAM ve CPU açısından sınırlıdır ve GPU içermez. Ancak premium kullanıcılar kümelerle genellikle şu görevleri doğrudan yapabilir:
- Veri işleme: Kümeler, Spark’ın paralel işlem gücünü kullanarak büyük hacimli verileri işler ve dönüştürür.
- Makine öğrenimi: Model eğitimi ve çıkarımı için Python (veya başka diller) ve kütüphanelerini kullanabilirsiniz.
- ETL iş akışları: Kümeler, verileri kaynaktan hedefe verimli biçimde işleyip dönüştürerek ETL iş akışlarını da destekler.
Bir küme oluşturmak için “Create” düğmesini veya menüdeki “Compute” seçeneğini kullanabilirsiniz:

Kümeyi oluştururken ortamınıza uygun bir Spark sürümü seçin ve faal hale gelmesi için birkaç dakika bekleyin.
5. Databricks Not Defterleri
Çalışan bir kümeniz olduğunda not defteri oluşturmaya hazırsınız. Jupyter, Colab veya DataCamp Workspaces ile çalıştıysanız tanıdık gelecektir:

Peki gerçek Jupyter varken neden “Jupyter’a benzer” bir şeyi tercih edesiniz? Şöyle ki, Databricks not defterlerinin Jupyter not defterlerine göre şu avantajları vardır:
- İş birliği: Yerleşik iş birliği özellikleri, birden fazla kullanıcının aynı not defteri üzerinde aynı anda çalışmasına olanak tanır. Değişiklikler gerçek zamanlı izlenir.
- Yürütme ortamı: Çoğu Jupyter ortam sağlayıcısı veya yerel kurulumlar, önceden tanımlı donanıma sahip tek makineleri temel alır. Kullanıcıların harici kütüphane ve bağımlılıkları kendileri kurması gerekir. Buna karşılık Databricks not defterleri, iş yüküne göre kaynakları ve ölçeklemeyi otomatik yöneten kümelerle çalışır. Önceden yapılandırılmış ortamlarla birlikte gelirler.
- Büyük Veri teknolojileriyle entegrasyon: Jupyter, Apache Spark ile çalışabilir; ancak kullanıcıların Spark oturumlarını ve bağımlılıklarını elle yönetmesi gerekir. Databricks ise Spark’ın yaratıcıları tarafından kurulduğundan framework’ü yerel olarak destekler. Spark oturumları ve kümeler Databricks platformu tarafından otomatik yönetilir.
Databricks not defterlerinin Jupyter’a göre başka pek çok avantajı vardır; işte farkları özetleyen bir tablo:
|
Özellik |
Jupyter Not Defterleri |
Databricks Not Defterleri |
|
Platform |
Açık kaynak, yerelde veya bulut platformlarında çalışır |
Yalnızca Databricks platformuna özgü |
|
İş Birliği ve Paylaşım |
Sınırlı iş birliği özellikleri, manuel paylaşım |
Yerleşik iş birliği, gerçek zamanlı eşzamanlı düzenleme |
|
Yürütme |
Yerel veya harici sunuculara dayanır |
Databricks kümelerinde yürütme |
|
Büyük Veri ile Entegrasyon |
Spark ile entegre edilebilir, ek yapılandırmalar gerekir |
Apache Spark ile yerel entegrasyon, büyük veri için optimize |
|
Yerleşik Özellikler |
Sürüm kontrolü, iş birliği ve görselleştirme için harici araç/eklenti |
Delta Lake gibi Databricks’e özgü özelliklerle entegre, iş birliği ve analitik araçları için yerleşik destek |
|
Maliyet ve Ölçekleme |
Yerel kurulumlar genelde ücretsizdir, bulut tabanlı çözümler maliyetli olabilir |
Ücretli hizmet, maliyet kullanımınıza bağlıdır; Databricks kümeleriyle sorunsuz ölçeklenir |
|
Kullanım Kolaylığı |
Veri bilimi topluluğunda tanıdık ve yaygın |
Büyük veri analitiğine özel; Databricks’e özgü özelliklerde öğrenme eğrisi daha dik olabilir |
|
Veri Görselleştirme |
Sınırlı yerleşik görselleştirme desteği |
Not defteri içinde yerleşik veri görselleştirme desteği |
|
Küme Yönetimi |
Kullanıcılar Spark oturumlarını ve bağımlılıkları elle yönetir |
Databricks platformu küme yönetimini ve ölçeklemeyi otomatik yapar |
|
Kullanım Senaryoları |
Çeşitli veri bilimi görevleri için çok yönlü |
Databricks platformunda iş birliğine dayalı büyük veri analitiğine özel |
Sonuçta, Databricks not defterlerinin yukarıdaki avantajları belirli kullanım senaryolarında ortaya çıkar. Dizüstünüzde Pandas ile bir CSV veri kümesiyle oynamak istiyorsanız Jupyter çok daha iyidir.
Ama kurumsal düzeyde uygulamalar için platform olarak Databricks daha iyi bir seçenek olabilir.
6. Databricks’e Veri Alma (Ingestion)
Veri alma, verilerin çeşitli kaynaklardan içe aktarılması sürecini ifade eder. Databricks aşağıdakiler de dahil olmak üzere çeşitli kaynaklardan veri almayı destekler:
- AWS S3
- Azure Blob Storage
- Google Cloud Storage
- İlişkisel veritabanları (MySQL, PostgreSQL, vb.)
- Veri gölleri (Delta Lake, Parquet, Avro, vb.)
- Akış platformları (Apache Kafka)
- Google BigQuery
- Elinizdeki yerel CSV dosyası
vb.
Şimdi belirli veri türlerini Databricks’e nasıl yükleyebileceğinizi görelim. Yerel dosyalarla başlayacağız:

GIF’teki adımları izlediğinizde dosya çalışma alanında depolanır. Bunu Spark ile şöyle yükleyebilirsiniz:
# Importing necessary libraries
from pyspark.sql import SparkSession
# Creating a Spark session
spark = SparkSession.builder.appName("S3ImportExample").getOrCreate()
# Defining the CSV path to the data
path = "dbfs:/FileStore/tables/diamonds.csv"
# Reading data from S3 into a DataFrame
data_from_s3 = spark.read.csv(path, header=True, inferSchema=True)
# Displaying the imported data
data_from_s3.show()
dbfs: önekine dikkat edin. Çalışma alanındaki tüm dosyalar, Spark ile doğru şekilde yüklenmesi için bu öneki içermelidir. DBFS, Databricks File System’ın kısaltmasıdır.
Bir S3 kovasından veri almak (kurumsal hesaplar için) benzerdir:
# Importing necessary libraries
from pyspark.sql import SparkSession
# Creating a Spark session
spark = SparkSession.builder.appName("S3ImportExample").getOrCreate()
# Defining the S3 path to the data
s3_path = "s3://your-bucket/your-data.csv"
# Reading data from S3 into a DataFrame
data_from_s3 = spark.read.csv(s3_path, header=True, inferSchema=True)
# Displaying the imported data
data_from_s3.show()
Diğer veri türleri için Databricks dokümantasyonunun Data engineering ve Connect to data sources bölümlerine bakabilirsiniz.
7. Databricks’te SQL Çalıştırma
diamonds.csv dosyasını yüklediğimizde, varsayılan (default) adlı bir veritabanında bir Databricks tablosu haline geldi:

Bu default veritabanı, yapılandırılmış dosyaları veritabanını önce oluşturmadan yüklemeye çalıştığımızda oluşturulur.
Bir veritabanımız olduğuna göre onu yalnızca Spark ile değil, SQL ile de sorgulayabiliriz. Bunu yapmak için yeni bir not defteri oluşturun veya mevcut not defterinin dilini SQL olarak değiştirin. Ardından aşağıdaki kod parçasını deneyin:
SELECT * FROM default.diamonds_1_csv
LIMIT 5;
Bu, diamonds tablosunun ilk beş satırını döndürmelidir:

Not: Yukarıdaki parça için bir SQL not defteri kullanıyorum
Bu tabloyu Pandas’a da yükleyebilirsiniz. Aynı not defterinde şu parçayı yapıştırın:
%python
# Import the necessary libraries
import pandas as pd
# Assuming 'default' is the database name and 'diamonds' is the table name
# Use the spark.sql function to query the table and retrieve the data
table_df = spark.sql("SELECT * FROM default.diamonds_1_csv")
# Convert the Spark DataFrame to a Pandas DataFrame
pandas_df = table_df.toPandas()
# Display the Pandas DataFrame
pandas_df.head()
Tablonun başını yazdırmalıdır:

Artık tablo üzerinde hem SQL hem de Pandas ile tipik veri analizi görevlerini yapabilirsiniz.
Sonuç ve Sonraki Adımlar
Sade bir Databricks community edition hesabıyla çok şey öğrenip uygulamayı başardık. Platform hakkında öğrenmeye devam etmek için ilk adım, Databricks’in premium hesaplar için sunduğu iki haftalık ücretsiz denemeyi kullanmaktır.
Ardından DataCamp’in sunduğu Databricks’e Giriş dersinin öğretilerini tam anlamıyla deneyimleyebilirsiniz. Hesap kurulumunun ötesinde, DataCamp’in şu temel özelliklerini kullanmayı öğrenecek ve pratik yapacaksınız:
- Databricks çalışma alanlarını yönetme
- Harici veritabanlarına okuma ve yazma
- Veri dönüşümleri
- Veri orkestrasyonu, yani iş zamanlama
- Databricks SQL’in kapsamlı özeti
- Geniş ölçekli makine öğrenimi için Lakehouse AI kullanımı.
2 yılı aşkın deneyime sahip bir veri bilimi içerik üreticisiyim ve Medium’da en büyük takipçi kitlelerinden birine sahibim. Yapay zekâ ve makine öğrenimi üzerine, biraz da alaycı bir üslupla yazılmış, ayrıntılı makaleler kaleme almayı seviyorum; çünkü onları biraz daha az sıkıcı hale getirmek için bir şeyler yapmak gerekiyor. 130’un üzerinde makale ve bir de DataCamp kursu ürettim; bir diğeri de hazırlık aşamasında. İçeriklerim 5 milyondan fazla kişi tarafından görüldü; bunların 20 bini Medium ve LinkedIn’de takipçim oldu.

