SSIS’de OLE DB Destination Editor Kullanımı


OLE DB Destination, veri dönüştürme işlemlerinizde kaynaklardan alınan verilerin, OLE DB uyumlu bir veri tabanına yazılmasını sağlar. Veriyi hızlı ve güvenilir bir şekilde hedef veri tabanına aktarmak için çeşitli optimizasyonlar ve seçenekler sunar.

Aşağıdaki yapacağımız örneğimizde daha önce öğrendiğimiz OLE DB Source ile kaynaktan veriyi alıp OLE DB Destination ile hedef veri tabanındaki tabloya yazdıracağız.

SSIS’de projeyi açıp, paket içerisine girdikten sonra, öncelikle Control Flow içerisine Data Flow Task ekliyoruz.

Data Flow Task içerisine girip OLE DB Destination bileşenini sürükleyip çalışma alanına bırakıyoruz. OLE DB Source bileşenini yeni eklediğimiz OLE DB Destination ile ok işaretleri ile bağlıyoruz ve çift tıklayarak OLE DB Destination içerisine giriyoruz.

Aşağıdaki açılan alanda öncelikle connection seçiyoruz. Seçtiğimiz connection, kaynaktan alınan verilerin hedef sunucu ve veri tabanına gideceği yer. Benim aşağıda görüleceği üzere KAAN-GUMUS sunucusu, DWH veri tabanı seçili.

Data Access mode alanından verilerin, hedef veri tabanına nasıl yazılacağını belirler. Burada aşağıdaki seçeneklerden bir tanesini seçebiliriz.

Table or view: Bu seçenek, verilerin belirli bir tabloya veya görünüme tek tek satır olarak aktarılmasını sağlar. Bu mod, daha karmaşık işlemleri destekler ancak “fast load” seçeneğine göre daha yavaş insert işlemlerini gerçekleştirir.

Table or view — fast load: Bu mod, verilerin hızlı bir şekilde toplu iş olarak yüklenmesini sağlar. İşlemler bir kerede büyük miktarlarda veri ile gerçekleştirilir ki bu da performansı artırır. Ancak, bu modun kullanılması sırasında hata ayıklama ve hata işleme daha zor olabilir. Genel olarak bu işlem kullanılır. Bizde bu seçenekten devam edeceğiz.

Table name or view name variable: Bu mod, verilerin yükleneceği hedef tablo veya görünümün adının bir değişkenden alınmasını sağlar. Bu, dinamik olarak değişebilecek hedefler için kullanışlıdır.

Table name or view name variable — fast load: Bu seçenek, hedef tablo veya görünüm adını bir değişkenden alırken aynı zamanda “fast load” özelliğini kullanarak veri yükleme işlemini hızlandırır.

SQL command: Bu seçenek, veri yüklemesi için özel bir SQL komutunun kullanılmasına olanak tanır. Böylece daha özelleştirilmiş yükleme işlemleri gerçekleştirebilirsiniz. Bu mod, INSERT, UPDATE veya DELETE gibi SQL komutlarını kullanarak daha kompleks veri manipülasyonları yapmanıza izin verir.

Data access mode seçtikten sonra Name of the table or the view: hangi tabloya yazılacaksa onu seçiyoruz. Eğer daha öncesinde SQL Server da tablo oluşturduysanız onu seçebilirsiniz ya da yeni bir tablo yaratmak isterseniz New tıklayıp yeni tablonuzu SSIS üzerinden de yaratabilirsiniz. SSIS üzerinden oluşturacaksanız Tablo ismini düzenleyip OK dedikten sonra tablomuz oluşmuş olacak.

İlgili tablomuzu da seçtikten sonra Keep identity, Keep nulls, Table lock, Check constraints alanlarını ihtiyacımıza uygun seçiyoruz. Ben default halini bıraktım. Detayları için;

Keep identity: Bu seçenek işaretlendiğinde, kaynak veritabanındaki kayıtların “Identity” bilgisi hedef veritabanına aynen yansıtılır.

Keep nulls: Bu seçenek işaretlendiğinde, kaynak veritabanındaki NULL değerlerin hedef veritabanına da NULL olarak aktarılmasını sağlar.

Table lock: Bu seçeneği işaretlemek, veri yüklemesi sırasında hedef tabloya bir tablo kilidi uygular, bu da diğer işlemlerin tabloya erişmesini önler ve yükleme performansını artırabilir.

Check constraints: Bu seçenek işaretlendiğinde, veri yükleme işlemi sırasında hedef tablodaki tüm kısıtlamaların (constraints) kontrol edilmesini sağlar.

Rows per batch: Bu alan, her bir toplu işlemde ne kadar satırın işleneceğini belirtir. Burası boş bırakılmış, dolayısıyla varsayılan değer kullanılacaktır.

Maximum insert commit size: Bu, her bir commit işleminde maksimum kaç satırın veritabanına yazılacağını belirler. Buradaki “2147483647” sayısı, genellikle bir işlemde yazılacak maksimum satır sayısını ifade eden varsayılan bir değerdir.

View Existing ile yükleme yapılacak hedef tablonun önizlemesine bakabiliriz.

Connection Manager de işimiz bitti. Mappings girerek kaynak ve hedef tablodaki sütunları eşleştirmemiz gerekiyor. İki tablodaki sütun isimleri aynı olduğunda otomatik olarak kendisi mappingi yapacaktır. Aksi durumda manuel olarak eşleştirmeniz gerekiyor.

Error output alanının detaylarını OLE DB Source da anlatmıştım. Detaylarına oradan bakabilirsiniz isterseniz. Bu alanıda yaptıktan sonra OK dedikten sonra değişiklerimizi kaydediyoruz.

Paketimizi çalıştırdığımızda kaynak tablodan hedef tablomuza insert işlemlerini yaptığını görmekteyiz.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir