Veri ve Entegrasyon Tasarımı / Uygulama ve satın alma rehberi

CSV İçe Aktarma: Önizleme, Hata Raporu ve Güvenli Tekrar Deneme

Bir CSV dosyasının sisteme yüklenmesi, verinin doğru aktarıldığı anlamına gelmez. Sütun eşleştirmesi, sayı biçimi ve eksik ilişkiler kontrol edilmeden yapılan toplu işlem yüzlerce hatayı aynı anda üretebilir. Önizleme gerçek bir güvenlik ağı olmalıdır.

Dosya biçimini tahmin ederken kullanıcıya gösterin

CSV dosyaları ayırıcı, tırnak, satır sonu ve kodlama açısından farklı olabilir. Python CSV dokümantasyonu farklı lehçelerle okuma ve yazma davranışlarını açıklar. [1] Kendi uygulamanızda otomatik algılamanın sonucunu görünür kılın. Yanlış ayrılan sütunları kullanıcı fark etmeden kaydetmeyin.

Örneğin virgüllü ondalık değerlerle virgül ayırıcı aynı dosyada bulunabilir. Tırnak içindeki metnin doğru okunması gerekir. Telefon, stok kodu veya başında sıfır bulunan kimlikleri otomatik sayı olarak yorumlamak veriyi bozabilir. Alanın iş anlamı, göründüğü karakterlerden daha önemlidir.

Eşleştirme ve önizleme kayıt öncesinde çalışsın

Kaynak sütunu, hedef alanı ve dönüşüm kuralını birlikte gösterin. Kullanıcı hangi alanların yok sayıldığını da görebilsin. Önizlemede yalnızca ilk birkaç düzgün satırı göstermek yeterli değildir; dosyanın tamamı kurallara göre kontrol edilmelidir. Özet, hata sayısı ve örnek satır numaraları sunulabilir.

Varsayımsal tedarikçi kataloğunda ölçü alanı santimetre, sistemde milimetre olsun. Dönüşüm yapılacaksa önizlemede eski ve yeni değer karşılaştırılsın. Eksik birim varsayımla doldurulmasın. Bilinmiyor ile sıfır, boş metin ile alanı silme isteği aynı kabul edilmemelidir.

Kısmi başarı politikasını açık seçin

Bir satır hatalıysa bütün dosya mı reddedilecek, yoksa geçerli satırlar mı işlenecek? İşletmenin veri ilişkilerine göre karar verin. Kısmi aktarım yapılıyorsa kabul edilen ve reddedilen satırlar ayrı raporlanmalı; kullanıcı aynı dosyayı yeniden yüklediğinde daha önceki kayıtlar çoğalmamalıdır.

İşlem kimliği, satırın kaynak kimliği ve eşleştirme sürümü tutulabilir. Sadece dosya adına göre tekrar kontrolü yapmak yetersiz olabilir; aynı adla farklı içerik gelebilir. Hatalı dosyanın düzeltilmiş sürümünün hangi önceki işe bağlı olduğu da görünür olsun.

Örnek CSV deneme seti

Örnek karar ve kabul kontrolleri
Örnek satırBeklenen kontrolYanlış sonuç
Başında sıfır olan kodMetin kimliği korunurKodun kısalması
Eksik ürün ilişkisiİlişki hatası açıklanırBağlantısız kayıt açılması
Aynı kaynak kimliğiGüncelleme veya tekrar kuralıÇift ürün oluşması
Tırnaklı çok satırlı açıklamaDoğru hücre ayrıştırmaSütunların kayması

Dosya boyutu ve satır sayısı sınırları da kullanıcıya anlaşılır biçimde belirtilsin. Çok büyük dosya işlemi arka planda yürütülüyorsa durum ve iptal davranışı tasarlansın. Bir ağ hatası, bütün işin başarısız olduğu varsayımıyla yeniden toplu kayıt başlatmamalıdır.

Hata raporunu yeni bir risk kaynağı yapmayın

OWASP, güvenilmeyen hücre içeriğinin CSV bir elektronik tablo uygulamasında açıldığında formül gibi yorumlanabileceğini açıklar. [2] Bu risk yalnızca içe aktarma değil, hatalı satırları geri verdiğiniz raporda da değerlendirilmelidir. Sadece hücreleri tırnaklamak her tüketici uygulamada yeterli güvence değildir.

Hata dosyasının çıktısını hedef uygulamalarda test edin ve güvenilmeyen içeriğin çalıştırılabilir formüle dönüşmesini önleyen uygun çıktı yöntemini seçin. Gereksiz kişisel alanları rapora eklemeyin. Kabulde yalnızca toplam satır sayısını değil, örnek değerleri ve ilişkilerin doğruluğunu da karşılaştırın; başarılı aktarım mesajı kendi kendine doğruluk kanıtı değildir.

Sık sorulan sorular

İlk on satırın doğru görünmesi yeterli mi?

Hayır. Önizleme kullanım kolaylığı sağlar; doğrulama dosyanın ilgili tüm satırlarını ve ilişkilerini kapsamalıdır. Sonraki satırlarda farklı hatalar olabilir.

Aynı dosya ikinci kez yüklenirse ne olmalı?

İş modeline göre güncelleme veya güvenli tekrar davranışı seçilmelidir. Sonuç belgelenmeli ve mükerrer kayıt oluşmadığı test edilmelidir.

Teknik kaynaklar

  1. Python: CSV biçimleri ve okuyucu davranışı
  2. OWASP: elektronik tabloda CSV formül enjeksiyonu

Kaynaklar teknik kavramları destekler. Örnek tablolar ve senaryolar önerilen çalışma araçlarıdır; gerçek müşteri sonucu, bağımsız denetim veya platform garantisi değildir. Uygulama öncesinde kullanılan ürünün güncel koşulları kontrol edilmelidir.

Bu ihtiyacı çalışan bir sisteme dönüştürelim.

Mevcut sisteminizi, sorun yaşadığınız iş akışını ve beklediğiniz sonucu paylaşın. Ganz Dijital ile projenizin kapsamını ve kabul koşullarını netleştirin.

İlgili hizmeti inceleWhatsApp üzerinden görüşelim →

Hazırlama notu: İçerik, belirtilen kaynaklar ve özgün örnek senaryolar kullanılarak yapay zekâ desteğiyle hazırlanmıştır. Sayısal örnekler aksi belirtilmedikçe varsayımsaldır. İşletmeye özel güvenlik, hukuki ve operasyonel gereksinimler ayrıca değerlendirilmelidir.