SQL sunucuları arasında büyük veri hacimlerinin aktarımı için, bulk insert, ETL süreçleri (Extract-Transform-Load), replikasyon ve yedekleme/kurtarma mekanizmaları, db-linkler ve yerleşik veri dışa/dışa aktarma araçları gibi birkaç strateji kullanılmaktadır.
Paketli (batch) veri aktarım mekanizmaları kullanmak en iyisidir. SQL Server'de büyük dosyalar yüklemek için BULK INSERT veya karmaşık ETL senaryoları için SSIS/Integration Services gibi örnekler mevcuttur. Daha taşınabilir versiyonlarda LIMIT/OFFSET mantığı ile birlikte veri aktarım konumunu “kaydetme” ile ilgili scriptler kullanılır. Güvenliği sağlamak için sıkça şunlar uygulanır:
-- Verileri parçalar halinde aktarma (PostgreSQL) INSERT INTO target_db.public.data_table (col1, col2) SELECT col1, col2 FROM source_db.public.data_table WHERE transferred = FALSE LIMIT 10000;
Replikasyon ile dışa/dışa aktarma arasındaki fark nedir ve neden replikasyon büyük tarihi arşivlerin taşınması için her zaman uygun değildir?
Cevap: Replikasyon, güncel değişikliklerin senkronizasyonunu destekler ve "canlı" veriler için verimli çalışır. Tarihi arşivlerin veri taşınması için replikasyon, özel dönüşüm sağlanmadığı ve tek seferlik büyük veri aktarımı sorununu çözmediği için yeterince hızlı ve esnek olmayabilir - burada sıkça ETL kullanılır.
Hikaye
Bir şirket, birkaç bölgesel veritabanını tek bir depoya entegre etti. Paket olmadan toplu içe aktarma sırasında sistem "dondu", bu da kısmi taahhüt ile yarı otomatik durum kurtarmaya yol açtı. Çözüm, geçici tablolar aracılığıyla ilerleme kaydederek paketli dışa aktarmaya geçmek oldu.
Hikaye
BULK INSERT ile büyük dosyaların aktarımında kontrol toplamlarının yanlış kontrol edilmesi nedeniyle bazı bilgiler bozuldu, ancak bu durum birkaç hafta sonra keşfedildi. Çözüm, her bir paket öncesi ve sonrası kontrol toplamlarının yeniden hesaplanması ve tutarsızlık durumunda otomatik tekrar olmaktı.
Hikaye
100+ milyon satırı standart dışa/dışa aktarma ile taşımaya çalışırken bir geliştirici kilit yönetimini dikkate almadı: hedef sunucudaki tabloların kilitlenmesi birkaç saat iş operasyonlarının durmasına yol açtı. Sonuç — bu tür görevler için yalnızca gece pencerelerini ve geçici yeniden dizinlemeyle aşamalı kopyalamayı kullanmak.