2012-11-07 25 views
5

Bir veri akışı içinde, bir arama yapmak, eşleşmeyen satırları eklemek, yeniden aramak ve ardından tam (orijinal) veri kümesine devam etmek mümkün müdür?Eşleşmeyen arama satırlarını tabloya ekledikten sonra işleme nasıl devam edebilirim?

Ne olsun ne/yeniden kullanmak onlar OLE DB Destination gittin sonra eklenen satırları göremiyorum, ne de bir Multicast sonra birlik hepsini geri arama insert şube tamamlanıncaya kadar bekleyin (ve olabileceğini görüyorum -içinde).

Veri akışı içinde yapılamazsa, önce filtreleme mantığını bir önceki veri akışı görevinde tekrarlamak zorundayım.

Bu, açık/zaten yanıtlanmış bir soru olabilir, ancak arama sonrasında fazla bir şey bulamıyorum.

+0

Anlamıyorum. İlk sorgudaki Verilere sahipseniz, eklemek istediğiniz verilere de sahipsiniz. Neden onları birleştirip ayrı ayrı kullanmıyorsunuz? Ekleme verilerini OLEDB hedefine ve bir birleştirme hedefine çoğaltın. Orijinal verileri bu sendikaya gönderin (ve istediğiniz yerde başka bir yere çoğaltın) ve şimdi tüm veri kümesine sahipsiniz. –

+0

Ek tamamlanana kadar beklemem gerekmeyecek, bu yüzden aramayı yeniden çalıştırabilir ve sonra normal yolu devam ettirebilir miyim? – PeterX

cevap

3

Tek bir Veri Akışı içinde bu mümkün değildir. Yeterince google olsaydınız etrafınızda çeşitli "çözümler" var, ancak satırların paralel olarak işlenen arabelleklerde/yığınlarda Veri Akışından aşağı inen mimari gerçekliği görmezden geliyorlar.

Resimde, 2 bitişik arabelleğe gelen çok sayıda "yeni" satırınız var. Arabellek 1'den "yeni" satırların aşağı akış işleminizin tampon 2'den önce tamamlandığından emin olmanın hiçbir yolu yok. Bu, aynı anahtar için arama hedef tablonuza birden fazla "yeni" satır eklenmesini sağlayacaktır.

Gerekli tüm arama eklerini yapan bir üst akış Veri Akışı Görevine sahip olmanız gerekir. Arama eklentileri Hızlı Yükleme ve Tablo Kilidi kullanabileceğinden ve akış yönündeki Arama Tam Önbellek olabileceğinden, bu, çalışma zamanında daha verimli bir çözüm olacaktır.

+0

Teşekkürler. Bu yüzden belki de soru şu ki, hem yukarı akışlı Veri Akışında hem de aşağı Akım Veri Akışında "aramadan önce aynı mantığı nasıl yeniden kullanacağım" konusuna odaklanmalı. Belki de aynı adımları uygulayan yeniden kullanılabilir bir paket, ancak bununla birlikte uygulanabilir bir yol göremiyorum. – PeterX

+0

Evet "mantığı yeniden kullan" güzel olurdu ama gerçekçi - bu SSIS. Belki de SQL kodunu Değişkenlere taşıyabilir ve Lookup'ları Arama Önbelleklerini oluşturan bir önceki Veri Akışı Görevine taşıyabilirsiniz, ancak muhtemelen yeniden kullanmak için bu konuyla ilgili olabilir. –