Aracılığıyla paylaş


Zaman uyumlu bir dönüştürme komut dosyası bileşeni ile oluşturma

Bir dönüştürme bileşenini kullanan veri akışı, bir Integration Services Paket, değiştirmek ve kaynaktan hedef geçerken, verileri çözümlemek için. Bileşeni geçerken dönüştürme ile zaman uyumlu çıktıların her girdi bir satır olarak işler.Zaman uyumsuz çıkışlarını ile dönüştürme, işlemi tamamlamak için tüm giriş satırları aldığı bekler.Bu konu, bir eş zamanlı dönüştürme anlatılır.Zaman uyumsuz dönüştürme hakkında daha fazla bilgi için bkz: Zaman uyumsuz bir dönüştürme komut dosyası bileşeni ile oluşturma. Zaman uyumlu ve zaman uyumsuz bileşenleri arasındaki farklar hakkında daha fazla bilgi için bkz: Zaman uyumlu ve zaman uyumsuz dönüşümleri'ni anlama.

Komut dosyası bileşeni genel bakış için bkz: Komut dosyası bileşeni ile veri akışı genişletme.

Komut dosyası bileşeni ve sizin için oluşturduğu altyapı kodu özel bir geliştirme işlemini önemli ölçüde basitleştirmek veri akışı bileşeni.Ancak, komut dosyası bileşeni çalışma şeklini anlamak için , özel veri akışı bileşeni bölümünde geliştirmede izlemeniz gereken adımları okumak yararlı Özel veri akışı bileşen geliştirmeve özellikle Zaman uyumlu çıkışlarını ile özel bir dönüştürme bileşen geliştirme.

Bir zaman uyumlu dönüştürme bileşeni ile çalışmaya başlama

Bir komut dosyası bileşeni eklediğinizde veri akışı bölmesi SSIS Tasarımcı, Komut dosyası bileşeni türünü seçin. iletişim kutusu açılır ve bir kaynak, hedef veya dönüştürme Bileşen türü seçmenizi ister.Bu iletişim kutusunda seçin. Dönüştürme.

meta veriler ve Tasarım modunda bir zaman uyumlu dönüştürme bileşeni'ni yapılandırma

Bir dönüştürme bileşen oluşturmak için bu seçeneği seçtikten sonra bileşen kullanarak yapılandırma Komut dosyası dönüştürme Düzenleyicisi.Daha fazla bilgi için bkz:Bileşen Kod Düzenleyicisi'nde komut dosyası bileşeni'ni yapılandırma.

Için küme komut dosyası bileşeni için komut dosyası dili, küme ScriptLanguage özellikKomut dosyası sayfaKomut dosyası dönüştürme Düzenleyicisi.

Not

Varsayılan komut dosyası kullanan kullanan dosyası kullanan bileşeni dilin komut dosyası kullanan kullanan dosyası kullanan ayarlamak için komut dosyası kullanan kullanan dosyası kullanan dili seçeneğiGenel sayfaSeçenekleri iletişim kutusu.Daha fazla bilgi için bkz:Genel sayfa.

Veri akışı dönüştürme bileşeni bir giriş vardır ve bir veya daha fazla çıkış'ı destekler.Bileşen kullanarak meta veriler tasarım modunda, tamamlamanız gereken adımlardan biri için giriş ve çıkışlarını yapılandırma Komut dosyası dönüştürme Düzenleyicisiözel komut dosyanızı yazmak için önce.

Giriş sütunlar'ı yapılandırma

Bir dönüştürme bileşeni, bir giriş vardır.

Üzerinde Giriş bir sütun sayfaDönüştürme komut dosyası Düzenleyicisi sütun listesi, veri akışında kullanılabilir Geliş yönündeki bileşeninin çıktı sütunları gösterir.Geçişi ya da dönüştürmek istediğiniz sütunları seçin.Okuma/yazma olarak yerinde dönüştürmek istediğiniz sütunları işaretleyin.

Hakkında daha fazla bilgi için Giriş bir sütun sayfaKomut dosyası dönüştürme Düzenleyicisi, see Komut dosyası dönüştürme Düzenleyicisi (giriş sayfası sütunları).

Çıktı sütunları giriş ve çıkışlarını yapılandırma

Bir dönüştürme bileşeni, bir veya daha fazla çıkış destekler.

Üzerinde Giriş ve çıkışlarını sayfaKomut dosyası dönüştürme Düzenleyicisi, tek bir çıktı oluşturuldu, ancak hiçbir sütun çıktı sahiptir... görebilirsiniz.Bu sayfada düzenleyicisinin, gerekli olabilir veya aşağıdaki öğeleri yapılandırmak istediğiniz.

  • Bir veya daha çok ek çıkışlarını, beklenmeyen değerlere sahip satırlar için bir benzetimli hata çıktı gibi oluşturun.Use Çıktı ekleme and Çıkış'ı kaldırma düğmeleri, eş zamanlı dönüştürme bileşen çıkışlarını yönetmek için.Tüm giriş satırlar, sürece, her satır için bir çıkış veya diğer yönlendirmek istediğiniz belirtmek için kullanılabilir tüm çıktıların yönlendirilir.Satır, bir sıfır olmayan bir tamsayı değeri belirterek yeniden yönlendirmek istediğiniz belirtmek ExclusionGroup çıkışlarını özellik. Girilen belirli bir tamsayı değeri ExclusionGroup çıkışlarını tanımlamak için önemli değildir, ancak aynı tamsayı sürekli olarak belirtilen grup çıkışları için kullanmanız gerekir.

    Not

    Sıfır olmayan bir de kullanılabilir ExclusionGroup özellik değeri içeren tüm satırların çıktısını istiyorsanız, tek bir çıktı. Ancak, durum, açıkça çağırmalısınız DirectRowTo<outputbuffer> Çıkışı göndermek istediğiniz her satır için yöntem.

  • Daha açıklayıcı bir ad için giriş ve çıkışlarını atayın.Komut dosyası bileşeni, giriş olarak başvurmak için kullandığınız yazılı erişimci özelliklerini oluşturmak için bu adları kullanır ve komut çıktısını verir.

  • Zaman uyumlu dönüştürmeleri için olduğu gibi sütun bırakın.Genelde zaman uyumlu bir dönüştürme için veri akışı sütunları eklemez.Veri arabelleği yerinde değiştirilir ve arabellek veri akışı bir sonraki bileşeninde geçirilir.Bu durumda, ekleme ve çıktı sütunları, açıkça dönüştürme'nın çıkışlarını üzerinde yapılandırma gerekmez.Çıkışlarını açıkça tanımlanan tüm sütunları olmadan Düzenleyicisi görüntülenir.

  • Satır düzey hatalar için benzetimli hata çıktılarının yeni bir sütun ekleyin.Genellikle birden çok aynı verir ExclusionGroup aynı olduğu küme çıktı sütunu. Ancak, bir benzetimli hata çıktı oluşturuyorsanız, hata bilgilerini içerecek şekilde daha fazla sütun eklemek isteyebilirsiniz.Verileri, altyapı işlemleri hata sıraları nasıl gerçekleştiğini hakkında daha fazla bilgi için bkz: Bir veri akışı bileşeni'nde hata çıkışlarını kullanma. Komut dosyası bileşeni ek sütunlar ile ilgili hata bilgileri doldurmak için kendi kodunuzu yazmalıdır unutmayın.Daha fazla bilgi için bkz:Komut dosyası bileşeni için bir hata çıktı benzetme.

Hakkında daha fazla bilgi için Giriş ve çıkışlarını sayfaKomut dosyası dönüştürme Düzenleyicisi, see Dönüştürme komut dosyası Düzenleyicisi (giriş ve çıkışlarını sayfa).

Değişkenleri ekleme

Varolan komut dosyanızda kullanmak istiyorsanız, bunları ekleyebileceğiniz ReadOnlyVariables ve ReadWriteVariables üzerinde özellik alanları Komut dosyası sayfaKomut dosyası dönüştürme Düzenleyicisi.

Birden çok değişken özellik alanlarını eklediğinizde, değişken adları virgülle ayırın.Üç nokta (tıklatarak birden çok değişken seçebilirsiniz**…**) düğmesiniReadOnlyVariables ve ReadWriteVariables özellik alanları ve içindeki değişkenler'ı seçerek Değişkenleri seçin. iletişim kutusu.

Değişkenler, komut dosyası bileşeni ile kullanma hakkında genel bilgi için bkz: Komut dosyası bileşen değişkenleri kullanma.

Hakkında daha fazla bilgi için Komut dosyası sayfaKomut dosyası dönüştürme Düzenleyicisi, see Komut dosyası dönüştürme Düzenleyicisi (kod sayfası).

Kod ve Tasarım modunda, bir zaman uyumlu dönüştürme bileşeni komut dosyası kullanan kullanan dosyası kullanan

Bileşeniniz için meta veriler yapılandırdıktan sonra kendi özel komut dosyası yazabilirsiniz.In the Script Transformation Editor, on the Script page, click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) IDE where you can add your custom script.The scripting language that you use depends on whether you selected Microsoft Visual Basic 2008 or Microsoft Visual C# 2008 as the script language for the ScriptLanguage property on the Script page.

Komut dosyası bileşeni kullanılarak oluşturulmuş bileşenler her tür için geçerli olan önemli bilgi için bkz: Kodlama ve kod bileşen hata ayıklama.

Otomatik oluşturulan kodu anlama

VSTA oluşturduktan sonra IDE ve dönüştürme bileşenini düzenlenebilir yapılandırma açın ScriptMain Kod Düzenleyicisi ile için saplama sınıf görünür ProcessInputRow yöntem. The ScriptMain class is where you will write your custom code, and ProcessInputRow is the most important yöntem in a dönüştürme component.

Açmak, Proje Gezgini VSTA penceresinde, komut dosyası bileşeni de oluşturduğu, salt okunur görebilirsinizBufferWrapper ve ComponentWrapper Proje maddeler. The ScriptMain class inherits from the UserComponent class in the ComponentWrapper project öğe.

veri akışı altyapısı çalışma zamanında çağırır ProcessInput yöntemde UserComponent sınıf, hangi geçersiz kılmaları ProcessInput(Int32, PipelineBuffer) yöntem ScriptComponent üst sınıf. The ProcessInput yöntem in turn loops through the rows in the input buffer and calls the ProcessInputRow yöntem one saat for each row.

Kendi özel kod yazma

Bir dönüştürme ile zaman uyumlu çıkışlarını basit yazmak için tüm bileşenlerinin veri akışı bileşenidir.Örneğin, bu konunu sonraki bölümlerinde gösterilen örnek tek-çıktı, aşağıdaki özel kodunu oluşur:

    Row.City = UCase(Row.City)
    Row.City = (Row.City).ToUpper();

Özel bir zaman uyumlu dönüştürme bileşeni oluşturmayı tamamlamak için , geçersiz kılınmış kullandığınız ProcessInputRow her satırda giriş arabelleği, verileri dönüştürmek için yöntem. veri akışı altyapısı, bu Arabellek dolduğunda, veri akışındaki sonraki bileşenine geçirir.

Gereksinimlerinize bağlı olarak, siz de komut dosyası yazmak isteyebilirsiniz PreExecute ve PostExecute kullanılabilir yöntemleri ScriptMain sınıf, ilk veya son işlem gerçekleştirme.

Birden çok çıkış ile çalışma

Giriş satır için iki veya daha çok olası çıkışlarını yönlendirerek, daha önce açıklanan tek çıktı senaryoya göre çok daha fazla özel kod gerektirmez.Örneğin, bu konunu sonraki bölümlerinde gösterilen örnek iki çıkış aşağıdaki özel kodunu oluşur:

 [Visual Basic]
    Row.City = UCase(Row.City)
    If Row.City = "REDMOND" Then
        Row.DirectRowToMyRedmondAddresses()
    Else
        Row.DirectRowToMyOtherAddresses()
    End If
 [C#]
        Row.City = (Row.City).ToUpper();

        if (Row.City=="REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

Bu örnekte, komut dosyası bileşeni oluşturur DirectRowTo<OutputBufferX> yöntemleri, yapılandırdığınız çıkışlarını adlarına göre. Hata satırların bir benzetimli hata çıkışı yönlendirmek için benzer bir kod kullanabilirsiniz.

Örnekler

Gerekli olan özel kod örnekleri aşağıda gösterilmektedir ScriptMain bir zaman uyumlu dönüştürme bileşen oluşturmak için sınıf'ı tıklatın.

Not

These examples use the Person.Address table in the AdventureWorks sample database and pass its first and fourth columns, the intAddressID and nvarchar(30)City columns, through the data flow.Aynı veri kaynağı, dönüştürme ve bu bölümdeki hedef örnekleri kullanılır.Her bir örnek için ek Önkoşullar ve varsayımlar belgelenmiştir.

Çıkış zaman uyumlu tek dönüştürme örneği

Bu örnek, tek bir çıktı ile zaman uyumlu dönüştürme bileşeni gösterir.Bu dönüştürme geçtiği AddressID sütun ve dönüştürürŞehir sütuna büyük.

Bu örnek kodu uygulamak istiyorsanız, paket ve bileşen şekilde yapılandırmanız gerekir:

  1. Yeni bir komut dosyası bileşeni için veri akışı Tasarımcısı yüzey ekleyin ve dönüştürme yapılandırın.

  2. Yeni dönüştürme bileşeninde çıktı bir kaynak veya başka bir dönüşümünün bağlanmak için SSIS Tasarımcı. Bu çıktı verilerini sağlamalıdır Person.Address tablosuAdventureWorks örnek veritabanıAddressID and Şehir sütunlar.

  3. Açık Komut dosyası dönüştürme Düzenleyicisi.Üzerinde Giriş bir sütun sayfa, seçin.AddressID and Şehir sütunlar.Mark Şehir sütun olarak okuma/yazma.

  4. Üzerinde Giriş ve çıkışlarını sayfa, giriş yeniden adlandırın ve gibi daha tanımlayıcı adlarla çıkışMyAddressInput and MyAddressOutput.Fark SynchronousInputID çıkışını karşılık gelen ID giriş verileri. Bu nedenle, ekleme ve çıktı sütunları yapılandırma gerekmez.

  5. Üzerinde Komut dosyası sayfasında, tıklatın.Komut dosyası Düzenle ve aşağıdaki kodu girin.Komut dosyası geliştirme ortamı kapatın ve Komut dosyası dönüştürme Düzenleyicisi.

  6. Oluşturma ve bekleyen bir hedef bileşen yapılandırma AddressID and Şehir sütunlarSQL Server Hedef veya hedef bileşeni içinde gösterilen örnek Hedef komut dosyası bileşeni ile oluşturma.Sonra hedef bileşene dönüştürme çıktısı bağlayın.Aşağıdaki komutu çalıştırarak hedef tablo oluşturabilirsiniz. Transact-SQL komut, AdventureWorks Veritabanı:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    )
    
  7. Örnek çalıştırın.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

    End Sub

End Class
 [C#]
public class ScriptMain:
    UserComponent

{
    public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

    }

}

Zaman uyumlu iki çıkış dönüştürme örneği

Bu örnek, iki çıkışlarını ile zaman uyumlu dönüştürme bileşeni gösterir.Bu dönüştürme geçtiği AddressID sütun ve dönüştürürŞehir sütuna büyük.Şehir adını Redmond, bir çıkış satıra yönlendirir; onu diğer tüm satırlar için başka bir çıkış yönlendirir.

Bu örnek kodu uygulamak istiyorsanız, paket ve bileşen şekilde yapılandırmanız gerekir:

  1. Yeni bir komut dosyası bileşeni için veri akışı Tasarımcısı yüzey ekleyin ve dönüştürme yapılandırın.

  2. Yeni dönüştürme bileşeninde çıktı bir kaynak veya başka bir dönüşümünün bağlanmak için SSIS Tasarımcı. Bu çıktı verilerini sağlamalıdır Person.Address tablosuAdventureWorks en az örnek veritabanıAddressID and Şehir sütunlar.

  3. Açık Komut dosyası dönüştürme Düzenleyicisi.Üzerinde Giriş bir sütun sayfa, seçin.AddressID and Şehir sütunlar.Mark Şehir sütun olarak okuma/yazma.

  4. Üzerinde Giriş ve çıkışlarını sayfasında, ikinci bir çıktı oluşturmak.Yeni çıkış ekledikten sonra emin olun, küme, SynchronousInputID için ID giriş verileri. Bu özellik, varsayılan olarak oluşturulan ilk çıktıyı zaten küme.Her bir çıktı küme ExclusionGroup özellik için giriş satırları arasında iki birbirini dışlayan çıkışlarını bölecek belirtmek için aynı sıfır olmayan değer. Herhangi bir çıktı sütunu için çıktıların eklemek zorunda değildir.

  5. Giriş ve çıkışlarını daha açıklayıcı bir ad ile gibi yeniden adlandırma MyAddressInput, MyRedmondAddresses, and MyOtherAddresses.

  6. Üzerinde Komut dosyası sayfasında, tıklatın.Komut dosyası Düzenle ve aşağıdaki kodu girin.Komut dosyası geliştirme ortamı kapatın ve Komut dosyası dönüştürme Düzenleyicisi.

  7. Oluşturun ve beklediğiniz iki hedef bileşenleri yapılandırmak AddressID and Şehir sütunlarSQL Server Hedef, düz dosya hedef veya hedef bileşeni içinde gösterilen örnek Hedef komut dosyası bileşeni ile oluşturma.Sonra dönüşümünün tersinin çıktıların her hedef bileşenleri birine bağlayın.Hedef Tablo çalıştırarak oluşturabilirsiniz bir Transact-SQL (ile benzersiz tablo adları için) aşağıdaki benzer bir komut AdventureWorks Veritabanı:

    CREATE TABLE [Person].[Address2](
        [AddressID] [int] NOT NULL,
        [City] [nvarchar](30) NOT NULL
    
  8. Örnek çalıştırın.

Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)

        Row.City = UCase(Row.City)

        If Row.City = "REDMOND" Then
            Row.DirectRowToMyRedmondAddresses()
        Else
            Row.DirectRowToMyOtherAddresses()
        End If

    End Sub

End Class
public class ScriptMain:
    UserComponent

public override void MyAddressInput_ProcessInputRow(MyAddressInputBuffer Row)
    {

        Row.City = (Row.City).ToUpper();

        if (Row.City == "REDMOND")
        {
            Row.DirectRowToMyRedmondAddresses();
        }
        else
        {
            Row.DirectRowToMyOtherAddresses();
        }

    }
}
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.