D1'e Giriş - Cloudflare D1 Nedir?
Ders 2: D1’e Giriş - Cloudflare D1 Nedir?
Section titled “Ders 2: D1’e Giriş - Cloudflare D1 Nedir?”Öğrenme Hedefleri
Section titled “Öğrenme Hedefleri”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
İçerik İçindekiler
Section titled “İçerik İçindekiler”- D1 Nedir?
- D1 Mimarisi
- D1 vs Diğer Veritabanları
- Kullanım Alanları
- Avantajları ve Sınırlamaları
- Pratik Örnek
D1 Nedir?
Section titled “D1 Nedir?”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.
Temel Özellikler
Section titled “Temel Özellikler”- 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 Nasıl Çalışır?
Section titled “D1 Nasıl Çalışır?”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 Mimarisi
Section titled “D1 Mimarisi”Storage Architecture
Section titled “Storage Architecture”D1, iki farklı storage subsystem kullanır:
1. Production Storage (Yeni Sistem)
Section titled “1. Production Storage (Yeni Sistem)”- 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
Read Replication
Section titled “Read Replication”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
D1 vs Diğer Veritabanları
Section titled “D1 vs Diğer Veritabanları”Geleneksel SQL Veritabanları (PostgreSQL, MySQL)
Section titled “Geleneksel SQL Veritabanları (PostgreSQL, MySQL)”| Özellik | D1 | PostgreSQL/MySQL |
|---|---|---|
| Yönetim | Tamamen managed | Self-hosted veya managed |
| Scaling | Otomatik | Manuel yapılandırma gerekir |
| Cold Starts | Scale-to-zero | Sürekli çalışan sunucu |
| Global Replication | Otomatik | Manuel yapılandırma |
| Fiyatlandırma | Kullanım başına | Sabit veya kullanım başına |
NoSQL Veritabanları (MongoDB, DynamoDB)
Section titled “NoSQL Veritabanları (MongoDB, DynamoDB)”| Özellik | D1 | NoSQL |
|---|---|---|
| Veri Modeli | İlişkisel (SQL) | Doküman/Key-Value |
| Sorgulama | SQL | NoSQL query dili |
| ACID | Tam destek | Sınırlı destek |
| Schema | Rigid | Flexible |
Cloudflare Kendi Çözümleri
Section titled “Cloudflare Kendi Çözümleri”| Özellik | D1 | Workers KV | Durable Objects | R2 |
|---|---|---|---|---|
| Veri Tipi | İlişkisel | Key-Value | Stateful Objects | Object Storage |
| Kullanım | SQL sorguları | Basit cache | Stateful compute | Dosya depolama |
| Latench | Düşük | Çok düşük | Orta | Düşük |
| ACID | Evet | Hayır | Evet | N/A |
Kullanım Alanları
Section titled “Kullanım Alanları”Uygun Kullanım Alanları
Section titled “Uygun Kullanım Alanları”-
Web Uygulamaları
- CMS (Content Management Systems)
- Bloglar ve forumlar
- E-ticaret siteleri
- Sosyal medya platformları
-
API Backend
- RESTful API’ler
- GraphQL sunucuları
- Webhook işleme
-
Küçük ve Orta Ölçekli Veriler
- Kullanıcı verileri
- Ürün katalogları
- Konfigürasyon verileri
- Log ve analytics verileri
-
Multi-Region Uygulamalar
- Global kullanıcı tabanlı uygulamalar
- Yüksek erişilebilirlik gerektiren sistemler
Uygun Olmayan Kullanım Alanları
Section titled “Uygun Olmayan Kullanım Alanları”-
Büyük Ölçekli Veri İşleme
- Big Data analitiği
- Data warehousing
- Çok büyük veritabanları (>10 GB)
-
Karmaşık Transactionlar
- Çok adımlı transactionlar
- Dağıtık transactionlar
- Real-time complex joins
-
Yüksek Yazma Yükü
- Saniyede binlerce yazma işlemi
- Batch processing
- ETL işlemleri
Avantajları ve Sınırlamaları
Section titled “Avantajları ve Sınırlamaları”Avantajları
Section titled “Avantajları”1. Kolaylık
Section titled “1. Kolaylık”- Sunucu Yönetimi Yok: Infrastructure ile uğraşmanıza gerek yok
- Basit Kurulum: Birkaç komutla başlayabilirsiniz
- Yerel Geliştirme:
wrangler devile local development
2. Performans
Section titled “2. Performans”- 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
3. Maliyet
Section titled “3. Maliyet”- 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
4. Güvenilirlik
Section titled “4. Güvenilirlik”- Time Travel: 30 güne kadar point-in-time recovery
- Automatic Backups: Otomatik yedekleme
- Data Security: Encryption-at-rest ve encryption-in-transit
Sınırlamaları
Section titled “Sınırlamaları”1. Teknik Sınırlamalar
Section titled “1. Teknik Sınırlamalar”- 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
2. Performans Sınırlamaları
Section titled “2. Performans Sınırlamaları”- Query Duration: 30 saniye
- Queries per Worker: 1000 (Paid), 50 (Free)
- Bound Parameters: 100 parametre/query
3. Fonsiyonel Sınırlamalar
Section titled “3. Fonsiyonel Sınırlamalar”- No Native Async: Asenkron operasyonlar desteklenmez
- Limited Extensions: SQLite extensions sınırlıdır
- No Stored Procedures: Stored procedures yoktur
Pratik Örnek
Section titled “Pratik Örnek”D1 Veritabanı Oluşturma
Section titled “D1 Veritabanı Oluşturma”İlk D1 veritabanınızı oluşturmak için şu adımları izleyin:
1. Wrangler’ı Yükleyin
Section titled “1. Wrangler’ı Yükleyin”npm install -g wrangler2. Cloudflare’a Giriş Yapın
Section titled “2. Cloudflare’a Giriş Yapın”wrangler login3. İlk Veritabanınızı Oluşturun
Section titled “3. İlk Veritabanınızı Oluşturun”npx wrangler d1 create my-first-dbÇıktı:
✅ Successfully created DB 'my-first-db' in region WEURCreated your new D1 database.
[[d1_databases]]binding = "DB" # i.e. available in your Worker on env.DBdatabase_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”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ı
Sonraki Ders
Section titled “Sonraki Ders”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.
Kaynaklar
Section titled “Kaynaklar”Alıştırma Soruları
Section titled “Alıştırma Soruları”- D1’in temel özellikleri nelerdir?
- D1 ile traditional SQL veritabanları arasındaki farklar nedir?
- Hangi kullanım alanları için D1 daha uygundur?
- Production storage ve Alpha storage arasındaki fark nedir?
- D1’in teknik sınırlamaları nelerdir?
Ders Süresi: 45 dakika Zorluk Seviyesi: Başlangıç Ön Koşullar: Yok