0Pricing
SQL Academy · Ders

Test Verileriyle Veritabanını Doldurma

INSERT ... SELECT ve generate_series ile gerçekçi test verileri oluşturun ve basit analitik sorgularla doğrulayın.

Test Verileriyle Veritabanını Doldurma, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Neden Başlangıç Verisi?

Boş veritabanları hataları gizler. Gerçekçi verilere ihtiyacınız vardır:

  • Arayüz/uçtan uca testleri çalıştırmak için
  • Performans özelliklerini doğrulamak için (dizinler, sorgu planları)
  • Uygulamayı tanıtmak için

Elle Yazılan Başlangıç Verileri

Birkaç "test verisi" satırı için bunları SQL'de veya bir geçişte elle yazın:

INSERT INTO users (id, email, full_name) VALUES
  (1, 'alice@example.com', 'Alice Adams'),
  (2, 'bob@example.com',   'Bob Brown');

SELECT setval('users_id_seq', (SELECT MAX(id) FROM users));

Toplu Veri İçin generate_series

generate_series yardımcınızdır. 1000 gönderi oluşturun:

INSERT INTO posts (author_id, title, body, published_at)
SELECT
  ((random() * 9 + 1)::int),                              -- random user 1-10
  'Post number ' || g,
  'Lorem ipsum body ' || g,
  NOW() - (random() * INTERVAL '90 days')
FROM generate_series(1, 1000) AS g;

Rastgele Yabancı Anahtarlar

Rastgele bir üst kayıt seçin:

INSERT INTO comments (post_id, author_id, body)
SELECT
  (SELECT id FROM posts ORDER BY random() LIMIT 1),
  (SELECT id FROM users ORDER BY random() LIMIT 1),
  'Sample comment ' || g
FROM generate_series(1, 5000) AS g;
-- Slow at scale — see next slide for a faster pattern.

Daha Hızlısı: Üst Kayıtları Önceden Önbelleğe Alın

Aday kimlikleri bir kez önbelleğe alın:

WITH u AS (SELECT id FROM users),
     p AS (SELECT id FROM posts)
INSERT INTO comments (post_id, author_id, body)
SELECT
  (SELECT id FROM p OFFSET floor(random()*1000)::int LIMIT 1),
  (SELECT id FROM u OFFSET floor(random()*10)::int   LIMIT 1),
  'Sample comment ' || g
FROM generate_series(1, 5000) AS g;

faker_fdw ve Araçlar

Daha zengin sahte veriler (adlar, adresler, paragraflar) için şunları kullanın:

  • faker_fdw — Python Faker'ı sunan Postgres uzantısı
  • Node'un @faker-js/faker paketi
  • Betik biçiminde Django/Rails başlangıç verisi yükleyicileri

Büyük Toplu İçe Aktarımlar İçin COPY

Bir milyon satır yüklemek için COPY, INSERT'ten 5–10 kat daha hızlıdır:

COPY users (email, full_name)
  FROM '/tmp/seed_users.csv' WITH (FORMAT csv, HEADER true);

Dizileri Yeniden Ayarlama

Satırları açıkça belirtilen kimliklerle manuel olarak eklediyseniz, gelecekteki otomatik kimliklerin çakışmaması için diziyi ileri alın:

SELECT setval('users_id_seq', (SELECT COALESCE(MAX(id), 0) FROM users));

Tekrarlı Çalıştırmaya Güvenli Başlangıç Verileri

Başlangıç verilerinin birçok kez güvenle çalıştırılabilmesini sağlayın. UPSERT veya TRUNCATE ardından INSERT kullanın:

INSERT INTO products (sku, name, price) VALUES
  ('A-001', 'Widget', 9.99)
ON CONFLICT (sku) DO UPDATE
  SET name = EXCLUDED.name, price = EXCLUDED.price;

Gerçekçi Dağılım

Testler üretim verilerinin yapısını yansıtmalıdır. Gönderilerin %80'inin 0 yorumu ve %1'inin 1000 yorumu varsa test verileri de böyle görünmelidir; aksi hâlde dizin planlarınız sizi yanıltır.

CI'da Başlangıç Verisi Yükleme

Uçtan uca testler için geçişlerden sonra ve test grubundan önce başlangıç verisi betiğini çalıştırın. Başlangıç verilerini sürüm denetiminde tutun.

Özet

İyi başlangıç verileri = gerçekçi veriler + tekrarlı çalıştırmaya güvenli betik + hızlı yükleme (büyük veriler için COPY).

  • Toplu veri için generate_series
  • Tekrarlı çalıştırmalar için UPSERT
  • Manuel eklemelerden sonra setval
  • Üretim dağılımlarını eşleştirme

Hızlı Kontrol

10.000 test verisi satırını hızla eklemek istiyorsunuz. Satır numaralarını hangi PostgreSQL işlevi oluşturur?

Sıkça Sorulan Sorular

“Test Verileriyle Veritabanını Doldurma” dersi ücretsiz mi?

Evet — “Test Verileriyle Veritabanını Doldurma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Test Verileriyle Veritabanını Doldurma” dersinde ne öğreneceğim?

INSERT ... SELECT ve generate_series ile gerçekçi test verileri oluşturun ve basit analitik sorgularla doğrulayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Test Verileriyle Veritabanını Doldurma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Bir Blogu Modelleme: Kullanıcılar, Gönderiler, Yorumlar
  2. Anahtarları ve Türleri Seçme
  3. Yaygın Sorgular için İndeksler
  4. Test Verileriyle Veritabanını Doldurma
← SQL Academy Sayfasına Dön