Skip to content

D1'e Giriş - Cloudflare D1 Nedir?

Ders 2: D1’e Giriş - Cloudflare D1 Nedir?

Section titled “Ders 2: D1’e Giriş - Cloudflare D1 Nedir?”

Bu dersi tamamladıktan sonra:

  • Cloudflare D1’in ne olduğunu ve nasıl çalıştığını anlayabileceksiniz
  • D1’in diğer veritabanı çözümlerinden farklarını öğreneceksiniz
  • D1’in kullanım alanlarını ve avantajlarını kavrayacaksınız
  • D1 mimarisi hakkında temel bilgiye sahip olacaksınız
  1. D1 Nedir?
  2. D1 Mimarisi
  3. D1 vs Diğer Veritabanları
  4. Kullanım Alanları
  5. Avantajları ve Sınırlamaları
  6. Pratik Örnek

Cloudflare D1, Cloudflare’ın sunucusuz (serverless) computing platformu Workers için tasarlanmış, SQLite tabanlı bir ilişkisel veritabanı hizmetidir. D1, geliştiricilerin Workers ve Pages uygulamalarında kolayca veritabanı kullanmasını sağlar.

  • SQLite Tabanlı: D1, dünyanın en çok kullanılan veritabanı engine’i SQLite’ı temel alır
  • Sunucusuz: Sunucu yönetimi gerektirmez, tamamen managed bir hizmettir
  • Global Dağıtım: Cloudflare’ın küresel ağı üzerinden otomatik olarak dağıtılır
  • Scale-to-Zero: Kullanmadığınızda ödeme yapmazsınız
  • SQL Uyumlu: Standart SQL sorgularını destekler

D1, Cloudflare’ın Durable Objects teknolojisi üzerine inşa edilmiştir. Veritabanınız, Cloudflare ağında otomatik olarak yönetilen ve replike edilen bir “object” olarak çalışır.

graph LR
A[Worker/Pages App] -->|SQL Query| B[D1 Database]
B -->|Result| A
B -->|Auto Replication| C[Cloudflare Global Network]

D1, iki farklı storage subsystem kullanır:

  • Performance: Daha yüksek performans
  • Reliability: Artan güvenilirlik
  • Database Size: Daha büyük veritabanı boyutu (10 GB’a kadar)
  • Query Throughput: Artan sorgu throughput
  • Reduced Latency: Düşük gecikme süresi

2. Alpha Storage (Eski Sistem - Yeni Projeler İçin Kullanılmaz)

Section titled “2. Alpha Storage (Eski Sistem - Yeni Projeler İçin Kullanılmaz)”
  • Temmuz 2023 öncesi oluşturulan veritabanları için
  • Artık yeni veritabanları için önerilmiyor
  • 22 Ağustos 2024’te SQL sorgularını kabul etmeyi durdurdu

D1, primary database instance ve read replicas kullanarak performansı optimize eder:

  • Primary Instance: Yazma işlemleri ve okumalar için
  • Read Replicas: Sadece okuma işlemleri için, global olarak dağıtılır
  • Sessions API: Okuma tutarlılığını sağlar

Geleneksel SQL Veritabanları (PostgreSQL, MySQL)

Section titled “Geleneksel SQL Veritabanları (PostgreSQL, MySQL)”
ÖzellikD1PostgreSQL/MySQL
YönetimTamamen managedSelf-hosted veya managed
ScalingOtomatikManuel yapılandırma gerekir
Cold StartsScale-to-zeroSürekli çalışan sunucu
Global ReplicationOtomatikManuel yapılandırma
FiyatlandırmaKullanım başınaSabit veya kullanım başına
ÖzellikD1NoSQL
Veri Modeliİlişkisel (SQL)Doküman/Key-Value
SorgulamaSQLNoSQL query dili
ACIDTam destekSınırlı destek
SchemaRigidFlexible
ÖzellikD1Workers KVDurable ObjectsR2
Veri TipiİlişkiselKey-ValueStateful ObjectsObject Storage
KullanımSQL sorgularıBasit cacheStateful computeDosya depolama
LatenchDüşükÇok düşükOrtaDüşük
ACIDEvetHayırEvetN/A

  1. Web Uygulamaları

    • CMS (Content Management Systems)
    • Bloglar ve forumlar
    • E-ticaret siteleri
    • Sosyal medya platformları
  2. API Backend

    • RESTful API’ler
    • GraphQL sunucuları
    • Webhook işleme
  3. Küçük ve Orta Ölçekli Veriler

    • Kullanıcı verileri
    • Ürün katalogları
    • Konfigürasyon verileri
    • Log ve analytics verileri
  4. Multi-Region Uygulamalar

    • Global kullanıcı tabanlı uygulamalar
    • Yüksek erişilebilirlik gerektiren sistemler
  1. Büyük Ölçekli Veri İşleme

    • Big Data analitiği
    • Data warehousing
    • Çok büyük veritabanları (>10 GB)
  2. Karmaşık Transactionlar

    • Çok adımlı transactionlar
    • Dağıtık transactionlar
    • Real-time complex joins
  3. Yüksek Yazma Yükü

    • Saniyede binlerce yazma işlemi
    • Batch processing
    • ETL işlemleri

  • Sunucu Yönetimi Yok: Infrastructure ile uğraşmanıza gerek yok
  • Basit Kurulum: Birkaç komutla başlayabilirsiniz
  • Yerel Geliştirme: wrangler dev ile local development
  • Global Dağıtım: Otomatik küresel replikasyon
  • Düşük Latency: Edge’de çalışan veritabanı
  • Read Replication: Okuma işlemleri için optimize edilmiş replikalar
  • Scale-to-Zero: Kullanmadığınızda ödeme yapmazsınız
  • Kullanım Başına Fiyat: Sadece kullandığınız kadar ödersiniz
  • Ücretsiz Katman: Başlangıç için ücretsiz kullanım
  • Time Travel: 30 güne kadar point-in-time recovery
  • Automatic Backups: Otomatik yedekleme
  • Data Security: Encryption-at-rest ve encryption-in-transit
  • Maksimum Veritabanı Boyutu: 10 GB (Paid), 500 MB (Free)
  • Maksimum Tablo Sayısı: Sınırsız (storage limit’ine kadar)
  • Maksimum Sütun Sayısı: 100 sütun/ tablo
  • Maksimum Satır Boyutu: 2 MB
  • Query Duration: 30 saniye
  • Queries per Worker: 1000 (Paid), 50 (Free)
  • Bound Parameters: 100 parametre/query
  • No Native Async: Asenkron operasyonlar desteklenmez
  • Limited Extensions: SQLite extensions sınırlıdır
  • No Stored Procedures: Stored procedures yoktur

İlk D1 veritabanınızı oluşturmak için şu adımları izleyin:

Terminal window
npm install -g wrangler
Terminal window
wrangler login
Terminal window
npx wrangler d1 create my-first-db

Çıktı:

✅ Successfully created DB 'my-first-db' in region WEUR
Created your new D1 database.
[[d1_databases]]
binding = "DB" # i.e. available in your Worker on env.DB
database_name = "my-first-db"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

4. Veritabanı Bilgilerini Görüntüleyin

Section titled “4. Veritabanı Bilgilerini Görüntüleyin”
Terminal window
npx wrangler d1 info my-first-db

Çıktı:

┌───────────────────┬──────────────────────────────────────┐
│ │ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx │
├───────────────────┼──────────────────────────────────────┤
│ name │ my-first-db │
├───────────────────┼──────────────────────────────────────┤
│ version │ production │
├───────────────────┼──────────────────────────────────────┤
│ created_at │ 2024-01-29T10:30:00.000Z │
└───────────────────┴──────────────────────────────────────┘

Bu derste aşağıdaki konuları öğrendiniz:

✅ D1’in ne olduğunu ve temel özelliklerini ✅ D1 mimarisini ve storage subsystem’lerini ✅ D1’in diğer veritabanı çözümlerinden farklarını ✅ Uygun kullanım alanlarını ve sınırlamaları ✅ İlk D1 veritabanınızı nasıl oluşturacağınızı

Bir sonraki dersimizde “İlk Veritabanını Oluşturma” başlığı altında:

  • Tablo oluşturma
  • SQL ile veri ekleme
  • Wrangler ile veritabanı yönetimi konularını detaylı şekilde inceleyeceğiz.
  1. D1’in temel özellikleri nelerdir?
  2. D1 ile traditional SQL veritabanları arasındaki farklar nedir?
  3. Hangi kullanım alanları için D1 daha uygundur?
  4. Production storage ve Alpha storage arasındaki fark nedir?
  5. D1’in teknik sınırlamaları nelerdir?

Ders Süresi: 45 dakika Zorluk Seviyesi: Başlangıç Ön Koşullar: Yok