Aracılığıyla paylaş


Veri Akışında Hata Ayıklama

Şunlar için geçerlidir:SQL Server Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı

Microsoft Integration Services ve SSIS Designer, Integration Services paketindeki veri akışlarında sorun gidermek için kullanabileceğiniz özellikler ve araçlar içerir.

  • SSIS Tasarımcısı veri görüntüleyicileri sağlar.

  • SSIS Tasarımcısı ve Integration Services dönüşümleri satır sayıları sağlar.

  • SSIS Tasarımcısı, çalışma zamanında ilerleme durumu raporlaması sağlar.

Veri Görüntüleyicileri

Veri görüntüleyicileri, bir veri akışındaki iki bileşen arasındaki verileri görüntüler. Veri görüntüleyicileri, veriler bir veri kaynağından ayıklandığında ve bir dönüştürme güncelleştirmesinden önce ve sonra ve veriler hedefine yüklenmeden önce veri akışına girdiğinde verileri görüntüleyebilir.

Verileri görüntülemek için, veri görüntüleyicilerini iki veri akışı bileşenini bağlayan yola eklersiniz. Veri akışı bileşenleri arasındaki verileri görüntüleme özelliği, beklenmeyen veri değerlerini tanımlamayı, dönüştürmenin sütun değerlerini değiştirme biçimini görüntülemeyi ve dönüştürmenin başarısız olmasının nedenini bulmayı kolaylaştırır. Örneğin, başvuru tablosundaki bir aramanın başarısız olduğunu fark edebilirsiniz ve bunu düzeltmek için boş sütunlar için varsayılan veriler sağlayan bir dönüştürme eklemek isteyebilirsiniz.

Veri görüntüleyici, verileri bir kılavuzda görüntüleyebilir. Kılavuz kullanarak görüntülenecek sütunları seçersiniz. Seçili sütunların değerleri tablo biçiminde görüntülenir.

Bir yola birden çok veri görüntüleyici de ekleyebilirsiniz. Aynı verileri farklı biçimlerde görüntüleyebilirsiniz; örneğin, bir grafik görünümü ve verilerin kılavuz görünümünü oluşturabilir veya farklı veri sütunları için farklı veri görüntüleyicileri oluşturabilirsiniz.

Bir yola veri görüntüleyici eklediğinizde, SSIS Tasarımcısı yolun yanına Veri Akışı sekmesinin tasarım yüzeyine bir veri görüntüleyici simgesi ekler. Koşullu Bölme dönüştürmesi gibi birden çok çıkışa sahip olabilecek dönüştürmeler, her yola bir veri görüntüleyici içerebilir.

Çalışma zamanında bir Veri Görüntüleyicisi penceresi açılır ve veri görüntüleyici biçimi tarafından belirtilen bilgileri görüntüler. Örneğin, kılavuz biçimini kullanan bir veri görüntüleyicisi seçili sütunların verilerini, veri akışı bileşenine geçirilen çıkış satırlarının sayısını ve görüntülenen satır sayısını gösterir. Bilgiler arabelleğe göre arabellek görüntüler ve veri akışındaki satırların genişliğine bağlı olarak, arabellek daha fazla veya daha az satır içerebilir.

Veri Görüntüleyicisi iletişim kutusunda, verileri Pano'ya kopyalayabilir, tablodan tüm verileri temizleyebilir, veri görüntüleyiciyi yeniden yapılandırabilir, veri akışını sürdürebilir ve veri görüntüleyiciyi ayırabilir veya ekleyebilirsiniz.

Veri görüntüleyici eklemek için

Satır Sayıları

Bir yoldan geçen satır sayısı, yolun yanındaki SSIS Tasarımcısı'ndaki Veri Akışı sekmesinin tasarım yüzeyinde görüntülenir. Veriler yolda ilerlerken sayı düzenli aralıklarla güncelleştirilir.

Ayrıca, bir değişkendeki son satır sayısını yakalamak için veri akışına satır sayısı dönüştürmesi de ekleyebilirsiniz. Daha fazla bilgi için bkz. Satır Sayısı Dönüştürme.

İlerleme Durumu Raporlama

Bir paketi çalıştırdığınızda, SSIS Tasarımcısı her veri akışı bileşenini durum belirten bir renkte görüntüleyerek Veri Akışı sekmesinin tasarım yüzeyinde ilerleme durumunu gösterir. Her bileşen çalışmasını gerçekleştirmeye başladığında, renksizden sarıya dönüşür ve başarıyla tamamlandığında yeşile dönüşür. Kırmızı renk, bileşenin başarısız olduğunu gösterir.

Aşağıdaki tabloda renk kodlama açıklanmaktadır.

Renk Description
Renk yok Veri akışı altyapısı tarafından çağrılmayı bekliyor.
Yellow Dönüştürme gerçekleştirme, verileri ayıklama veya verileri yükleme.
Green Başarıyla çalıştırildi.
kırmızı Hatalarla çalıştırildi.

Veri Akışının Analizi

Paketlerin veri akışını analiz etmek için catalog.execution_data_statisticsSSISDB veritabanı görünümünü kullanabilirsiniz. Bu görünüm, bir veri akışı bileşeni aşağı akış bileşenine her veri gönderdiğinde bir satır görüntüler. Bilgiler, her bileşene gönderilen satırları daha iyi anlamak için kullanılabilir.

Uyarı

catalog.execution_data_statistics görünümüyle bilgi yakalamak için günlük düzeyi Ayrıntılı olarak ayarlanmalıdır.

Aşağıdaki örnek, bir paketin bileşenleri arasında gönderilen satır sayısını görüntüler.

use SSISDB  
select package_name, task_name, source_component_name, destination_component_name, rows_sent  
from catalog.execution_data_statistics  
where execution_id = 132  
order by source_component_name, destination_component_name   

Aşağıdaki örnek, belirli bir yürütme için her bileşen tarafından gönderilen milisaniye başına satır sayısını hesaplar. Hesaplanan değerler şunlardır:

  • total_rows - bileşen tarafından gönderilen tüm satırların toplamı

  • wall_clock_time_ms - her bileşen için milisaniye cinsinden geçen toplam yürütme süresi

  • num_rows_per_millisecond - her bileşen tarafından gönderilen milisaniye başına satır sayısı

HAVING yan tümcesi, hesaplamalarda sıfıra bölme hatasını önlemek için kullanılır.

use SSISDB  
select source_component_name, destination_component_name,  
    sum(rows_sent) as total_rows,  
    DATEDIFF(ms,min(created_time),max(created_time)) as wall_clock_time_ms,  
    ((0.0+sum(rows_sent)) / (datediff(ms,min(created_time),max(created_time)))) as [num_rows_per_millisecond]  
from [catalog].[execution_data_statistics]  
where execution_id = 132  
group by source_component_name, destination_component_name  
having (datediff(ms,min(created_time),max(created_time))) > 0  
order by source_component_name desc  

Veri Akışı Bileşeninde Hata Çıktısı Yapılandırma

Birçok veri akışı bileşeni hata çıkışlarını destekler ve bileşene bağlı olarak, SSIS Designer hata çıkışını yapılandırmak için farklı yollar sağlar. Hata çıktısını yapılandırmaya ek olarak, hata çıkışının sütunlarını da yapılandırabilirsiniz. Bu, bileşen tarafından eklenen ErrorCode ve ErrorColumn sütunlarını yapılandırmayı içerir.

Hata Çıktısını Yapılandırma

Hata çıkışını yapılandırmak için iki seçeneğiniz vardır:

  • Hata Çıktısını Yapılandır iletişim kutusunu kullanın. Hata çıkışını destekleyen herhangi bir veri akışı bileşeninde hata çıktısı yapılandırmak için bu iletişim kutusunu kullanabilirsiniz.

  • Bileşen için düzenleyici iletişim kutusunu kullanın. Bazı bileşenler hata çıkışlarını doğrudan düzenleyici iletişim kutusundan yapılandırmanıza olanak sağlar. Ancak, ADO NET kaynağı, Sütunu İçeri Aktarma dönüşümü, OLE DB Komutu dönüşümü veya SQL Server Compact hedefi için düzenleyici iletişim kutusundan hata çıkışlarını yapılandıramazsınız.

Aşağıdaki yordamlarda, hata çıkışlarını yapılandırmak için bu iletişim kutularının nasıl kullanılacağı açıklanmaktadır.

Hata Çıktısını Yapılandır iletişim kutusunu kullanarak hata çıktısını yapılandırmak için

  1. SQL Server Veri Araçları'nda (SSDT), istediğiniz paketi içeren Integration Services projesini açın.

  2. Çözüm Gezgini'nde paketi çift tıklayarak açın.

  3. SSIS Tasarımcısı'nda Veri Akışı sekmesine tıklayın.

  4. Hatanın kaynağı olan bileşenden kırmızı okla gösterilen hata çıkışını veri akışındaki başka bir bileşene sürükleyin.

  5. Hata Çıkışını Yapılandır iletişim kutusunda, bileşen girişindeki her sütun için Hata ve Kesme sütunlarında bir eylem seçin.

  6. Güncelleştirilmiş paketi kaydetmek için , Dosya menüsünde Seçili Öğeleri Kaydet'e tıklayın.

Bileşenin düzenleyici iletişim kutusunu kullanarak hata çıkışı eklemek için

  1. SQL Server Veri Araçları'nda (SSDT), istediğiniz paketi içeren Integration Services projesini açın.

  2. Çözüm Gezgini'nde paketi çift tıklayarak açın.

  3. SSIS Tasarımcısı'nda Veri Akışı sekmesine tıklayın.

  4. Hata çıktısını yapılandırmak istediğiniz veri akışı bileşenlerine çift tıklayın ve bileşene bağlı olarak aşağıdaki adımlardan birini yapın:

    • Hata Çıkışını Yapılandır'a tıklayın.

    • Hata Çıktısı'ne tıklayın.

  5. Her sütun için Hata seçeneğini ayarlayın.

  6. Her sütun için Kesme seçeneğini ayarlayın.

  7. Tamam'a tıklayın.

  8. Güncelleştirilmiş paketi kaydetmek için , Dosya menüsünde Seçili Öğeleri Kaydet'e tıklayın.

Hata Çıkış Sütunlarını Yapılandırma

Hata çıktı sütunlarını yapılandırmak için Gelişmiş Düzenleyici iletişim kutusunun Giriş ve Çıkış Özellikleri sekmesini kullanmanız gerekir.

Hata çıkış sütunlarını yapılandırmak için

  1. SQL Server Veri Araçları'nda (SSDT), istediğiniz paketi içeren Integration Services projesini açın.

  2. Çözüm Gezgini'nde paketi çift tıklayarak açın.

  3. SSIS Tasarımcısı'nda Veri Akışı sekmesine tıklayın.

  4. Hata çıkış sütunlarını yapılandırmak istediğiniz bileşene sağ tıklayın ve Gelişmiş Düzenleyiciyi Göster'e tıklayın.

  5. Giriş ve Çıkış Özellikleri sekmesine tıklayın, <bileşen adı Hata Çıktısı'nı> genişletin ve ardından Çıkış Sütunları'nı genişletin.

  6. Bir sütuna tıklayın ve sütun özelliklerini güncelleştirin.

    Uyarı

    Sütun listesi bileşen girişindeki sütunları, önceki hata çıkışları tarafından eklenen ErrorCode ve ErrorColumn sütunlarını ve bu bileşen tarafından eklenen ErrorCode ve ErrorColumn sütunlarını içerir.

  7. Tamam'a tıklayın.

  8. Güncelleştirilmiş paketi kaydetmek için , Dosya menüsünde Seçili Öğeleri Kaydet'e tıklayın.

Veri Akışına Veri Görüntüleyicisi Ekleme

Bu konuda, veri akışına veri görüntüleyici ekleme ve yapılandırma açıklanmaktadır. Veri görüntüleyici, iki veri akışı bileşeni arasında hareket eden verileri görüntüler. Örneğin, veri akışındaki bir dönüşüm verileri değiştirmeden önce veri görüntüleyicisi veri kaynağından ayıklanan verileri görüntüleyebilir.

Yol, bir veri akışı bileşeninin çıkışını başka bir bileşenin girişine bağlayarak veri akışındaki bileşenleri birbirine bağlar.

Bir pakete veri görüntüleyicileri ekleyebilmeniz için önce paketin bir Veri Akışı görevi ve bağlı en az iki veri akışı bileşeni içermesi gerekir.

Hatanın açıklamasını ve hatanın oluştuğu sütunun adını görmek için hata çıkışına veri görüntüleyici ekleyin. Varsayılan olarak hata çıktısı yalnızca hata ve sütun için sayısal tanımlayıcılar içerir.

Veri akışına veri görüntüleyici eklemek için

  1. SQL Server Veri Araçları'nda (SSDT), istediğiniz paketi içeren Integration Services projesini açın.

  2. Çözüm Gezgini'nde paketi çift tıklayarak açın.

  3. Henüz etkin değilse Denetim Akışı sekmesine tıklayın.

  4. Veri akışına veri görüntüleyici eklemek istediğiniz Veri Akışı görevine tıklayın ve ardından Veri Akışı sekmesine tıklayın.

  5. İki veri akışı bileşeni arasındaki bir yola sağ tıklayın ve Düzenle'ye tıklayın.

  6. Genel sayfasında yol özelliklerini görüntüleyebilir ve düzenleyebilirsiniz. Örneğin, PathAnnotation açılan listesinden yolun yanında görünen ek açıklamayı seçebilirsiniz.

  7. Meta Veriler sayfasında, sütun meta verilerini görüntüleyebilir ve meta verileri Pano'ya kopyalayabilirsiniz.

  8. Veri Görüntüleyicisi sayfasında Veri görüntüleyiciyi etkinleştir'e tıklayın.

  9. Görüntülenecek sütunlar alanında, veri görüntüleyicisinde görüntülemek istediğiniz sütunları seçin. Varsayılan olarak, kullanılabilir tüm sütunlar seçilidir ve Görüntülenen Sütunlar listesinde listelenir. Kullanmak istemediğiniz sütunları seçip sol oka tıklayarak Kullanılmayan Sütun listesine taşıyın.

    Uyarı

    Kılavuzda, DT_DATE, DT_DBTIME2, DT_FILETIME, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 ve DT_DBTIMESTAMPOFFSET veri türlerini temsil eden değerler ISO 8601 biçimlendirilmiş dizeler olarak görünür ve T ayırıcısının yerini alan ayırıcısı alır. DT_DATE ve DT_FILETIME veri türlerini temsil eden değerler kesirli saniyeler için yedi basamak içerir. DT_FILETIME veri türü kesirli saniyenin yalnızca üç basamağını depoladığı için kılavuzda kalan dört basamak için sıfırlar görüntülenir. DT_DBTIMESTAMP veri türünü temsil eden değerler kesirli saniyeler için üç basamak içerir. DT_DBTIME2, DT_DBTIMESTAMP2 ve DT_DBTIMESTAMPOFFSET veri türlerini temsil eden değerler için kesirli saniyelerin basamak sayısı sütunun veri türü için belirtilen ölçeğe karşılık gelir. ISO 8601 biçimleri hakkında daha fazla bilgi için bkz. Tarih ve Saat Biçimleri. Veri türleri hakkında daha fazla bilgi için bkz. Integration Services Veri Türleri.

  10. Tamam'a tıklayın.

Veri Akışı Dokunmaları

Çalışma zamanında bir paketin veri akışı yoluna veri dokunuşu ekleyebilir ve veri dokunmasından çıkışı bir dış dosyaya yönlendirebilirsiniz. Bu özelliği kullanmak için, proje dağıtım modelini kullanarak SSIS projenizi bir SSIS Sunucusuna dağıtmanız gerekir. Paketi sunucuya dağıttığınızda, paketi yürütmeden önce veri dokunmaları eklemek için SSISDB veritabanında T-SQL betiklerini yürütmeniz gerekir. Örnek bir senaryo aşağıda verilmiştir:

  1. catalog.create_execution (SSISDB Veritabanı) saklı yordamını kullanarak bir paketin yürütme örneğini oluşturun.

  2. catalog.add_data_tap veya catalog.add_data_tap_by_guid saklı yordamı kullanarak veri dokunması ekleyin.

  3. catalog.start_execution (SSISDB Veritabanı) kullanarak paketin yürütme örneğini başlatın.

Yukarıdaki senaryoda açıklanan adımları gerçekleştiren örnek bir SQL betiği aşağıda verilmiştir:

Declare @execid bigint  
EXEC [SSISDB].[catalog].[create_execution] @folder_name=N'ETL Folder', @project_name=N'ETL Project', @package_name=N'Package.dtsx', @execution_id=@execid OUTPUT  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt'  
EXEC [SSISDB].[catalog].[start_execution] @execid  

create_execution saklı yordamının klasör adı, proje adı ve paket adı parametreleri Integration Services kataloğundaki klasör, proje ve paket adlarına karşılık gelir. Aşağıdaki görüntüde gösterildiği gibi SQL Server Management Studio'dan create_execution çağrısında kullanılacak klasör, proje ve paket adlarını alabilirsiniz. SSIS projenizi burada görmüyorsanız, projeyi henüz SSIS sunucusuna dağıtmış olmayabilirsiniz. Visual Studio'da SSIS projesine sağ tıklayın ve projeyi beklenen SSIS sunucusuna dağıtmak için Dağıt'a tıklayın.

SQL deyimlerini yazmak yerine aşağıdaki adımları uygulayarak paket yürütme betiğini oluşturabilirsiniz:

  1. Package.dtsx öğesine sağ tıklayın ve Yürüt'e tıklayın.

  2. Betiği oluşturmak için Betik araç çubuğu düğmesine tıklayın.

  3. Şimdi start_execution çağrısından önce add_data_tap deyimini ekleyin.

add_data_tap saklı yordamın task_package_path parametresi, Visual Studio'daki veri akışı görevinin PackagePath özelliğine karşılık gelir. Visual Studio'da Veri Akışı Görevi'ne sağ tıklayın ve Özellikler'e tıklayarak Özellikler penceresini başlatın. PackagePath özelliğinin değerini, saklı yordam çağrısı için task_package_path parametresi için bir değer olarak kullanmak üzere add_data_tap not edin.

add_data_tap saklı yordamın dataflow_path_id_string parametresi, veri dokunması eklemek istediğiniz veri akışı yolunun IdentificationString özelliğine karşılık gelir. dataflow_path_id_string almak için veri akışı yoluna (veri akışındaki görevler arasındaki ok) tıklayın ve Özellikler penceresinde IdentificationString özelliğinin değerini not edin.

Betiği yürüttüğünizde, çıkış dosyası Program Files>\Microsoft SQL Server\110\DTS\DataDumps konumunda <depolanır. Adlı bir dosya zaten varsa, sonek içeren yeni bir dosya (örneğin: output[1].txt) oluşturulur.

Daha önce belirtildiği gibi, add_data_tap saklı yordamı kullanmak yerine catalog.add_data_tap_by_guid saklı yordamı da kullanabilirsiniz. Bu saklı yordam, veri akışı görevinin kimliğini task_package_path yerine parametre olarak alır. Veri akışı görevinin kimliğini Visual Studio'daki özellikler penceresinden alabilirsiniz.

Veri dokunmasını kaldırma

catalog.remove_data_tap saklı yordamını kullanarak yürütmeyi başlatmadan önce bir veri dokunmasını kaldırabilirsiniz. Bu saklı yordam, veri dokunma kimliğini parametre olarak alır ve bunu add_data_tap saklı yordamın çıktısı olarak alabilirsiniz.

DECLARE @tap_id bigint  
EXEC [SSISDB].[catalog].add_data_tap @execution_id = @execid, @task_package_path = '\Package\Data Flow Task', @dataflow_path_id_string = 'Paths[Flat File Source.Flat File Source Output]', @data_filename = 'output.txt' @data_tap_id=@tap_id OUTPUT  
EXEC [SSISDB].[catalog].remove_data_tap @tap_id  

Tüm veri dokunmalarını listeleme

Ayrıca catalog.execution_data_taps görünümünü kullanarak tüm veri dokunmalarını listeleyebilirsiniz. Aşağıdaki örnek, belirtim yürütme örneği için veri dokunmalarını ayıklar (Kimlik: 54).

select * from [SSISDB].[catalog].execution_data_taps where execution_id=@execid  

Performans konuları

Ayrıntılı günlük düzeyini etkinleştirme ve veri dokunmaları ekleme, veri tümleştirme çözümünüz tarafından gerçekleştirilen G/Ç işlemlerini artırır. Bu nedenle, yalnızca sorun giderme amacıyla veri dokunmaları eklemenizi öneririz

Video

TechNet'teki bu videoda, program aracılığıyla paketlerde hata ayıklamaya ve çalışma zamanında kısmi sonuçları yakalamaya yardımcı olan SQL Server 2012 SSISDB kataloğundaki veri dokunmalarının nasıl ekleneceği/kullanılacağı gösterilmektedir. Ayrıca bu veri dokunmalarının nasıl listelenip kaldırılacağı ve SSIS paketlerinde veri dokunmalarını kullanmaya yönelik en iyi yöntemler açıklanır.

Ayrıca Bkz.

Verilerde Hata İşleme