COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
56/ 65

Veri mühendisliği

CSV, staging, ETL ve veri kalitesi

Ham veriyi doğrulamadan üretime taşıma.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Staging, dış kaynağın ham kayıtlarını doğrulama ve dönüşümden önce ayırır. CSV’de encoding, ayraç, tırnak içindeki ayraç, tarih biçimi ve NULL temsili açıkça tanımlanmalıdır. BULK INSERT dosyası tarayıcıya değil SQL Server servisinin erişimine bağlıdır; bu nedenle burada yalnız güvenli VALUES ile staging gösterilir.

ETL’de type conversion hatalarını TRY_CONVERT ile yakalayıp quarantine listesine ayır. Tekrar çalıştırma duplicate üretmemeli: iş anahtarı, batch kimliği ve idempotency tasarla. Incremental yükte watermark geciken kayıtları kaçırabilir; lookback penceresi, değişiklik feed’i ve reconciliation ihtiyacını değerlendir. Başarı yalnız “komut tamamlandı” değildir: kaynak/hedef sayısı, toplamlar ve reddedilen kayıtlar ölçülmelidir.

NERESİNDE KULLANIRSIN?

Dış veriyi güvenilir kayıt haline getirmek için.

SIK YAPILAN HATA

Geçersiz değeri sessizce sıfıra dönüştürmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT TRY_CONVERT(decimal(10,2), N'120.50') AS Amount, TRY_CONVERT(decimal(10,2), N'wrong') AS Invalid;

Geçersiz değer NULL ile ayrılır.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Stage içindeki geçerli pozitif tutarları getir.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT Code, TRY_CONVERT(decimal(10,2), RawAmount) AS Amount FROM #Stage WHERE TRY_CONVERT(decimal(10,2), RawAmount) > 0;

Önce orta örneği çalıştır. A ve C alınır; B kaybolmamalı, reddedilen kayıt olarak raporlanmalıdır.