Aracılığıyla paylaş


Veri kopyalama aracında meta veri temelli yaklaşımla büyük ölçekli veri kopyalama işlem hatları oluşturma

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Çok büyük miktarlardaki nesneleri (örneğin, binlerce tablo) kopyalamak veya çok çeşitli kaynaklardan veri yüklemek istediğinizde, uygun yaklaşım bir denetim tablosuna gerekli kopyalama davranışlarına sahip nesnelerin ad listesini girmek ve ardından aynı değeri denetim tablosundan okumak ve uygun şekilde işlere uygulamak için parametreli işlem hatlarını kullanmaktır. Bunu yaparak, işlem hatlarını yeniden dağıtmak yerine yalnızca denetim tablosundaki nesne adlarını güncelleştirerek nesne listesini kolayca kopyalanacak şekilde koruyabilirsiniz (örneğin, ekleme/kaldırma). Dahası, hangi nesnelerin hangi işlem hatları tarafından kopyalandığını/tanımlı kopyalama davranışlarına sahip tetikleyicileri kolayca denetlemek için tek bir yeriniz olacaktır.

ADF'de veri kopyalama aracı, meta veri temelli veri kopyalama işlem hatları oluşturma yolculuğunu kolaylaştırır. Sihirbaz tabanlı bir deneyimden sezgisel bir akıştan geçtikten sonra araç, buna göre dış denetim tabloları oluşturmanız için parametreli işlem hatları ve SQL betikleri oluşturabilir. SQL veritabanınızda denetim tablosunu oluşturmak için oluşturulan betikleri çalıştırdıktan sonra işlem hatlarınız denetim tablosundaki meta verileri okur ve bunları otomatik olarak kopyalama işlerine uygular.

Veri kopyalama aracından meta veri temelli kopyalama işleri oluşturma

  1. Veri kopyalama aracında Meta veri temelli kopyalama görevini seçin.

    Oluşturulan işlem hattının bundan meta verileri okuması için denetim tablonuzun bağlantısını ve tablo adını girmeniz gerekir.

    Görev türünü seçin

  2. Kaynak veritabanınızın bağlantısını giriş yapın. Parametreli bağlı hizmeti de kullanabilirsiniz.

    Parametreli bağlı hizmeti seçme

  3. Kopyalanacak tablo adını seçin.

    Tablo seçme

    Not

    Tablosal veri depoyu seçerseniz, sonraki sayfada tam yük veya değişiklik yüklemesini daha fazla seçme şansınız olur. Depolama depoyu seçerseniz, yalnızca sonraki sayfada tam yüklemeyi seçebilirsiniz. Yeni dosyaların yalnızca depolama deposundan artımlı olarak yüklenmesi şu anda desteklenmiyor.

  4. Yükleme davranışını seçin.

    İpucu

    Tüm tablolarda tam kopya yapmak istiyorsanız Tüm tabloları tam yükle'yi seçin. Artımlı kopyalama yapmak istiyorsanız, her tablo için ayrı ayrı yapılandır'ı seçebilir ve her tablo için başlamak üzere Delta yükü'nü ve filigran sütun adı & değeri'ni seçebilirsiniz.

  5. Hedef veri deposu'mu seçin.

  6. Ayarlar sayfasında, Eşzamanlı kopyalama görevleri sayısı aracılığıyla kaynak deponuzdan eşzamanlı olarak veri kopyalamak için en fazla kopyalama etkinliği sayısına karar vekleyebilirsiniz. Varsayılan değer 20'dir.

    Ayarlar sayfası

  7. İşlem hattı dağıtımından sonra, denetim tablosu ve depolama yordamı oluşturmak için kullanıcı arabiriminden SQL betiklerini kopyalayabilir veya indirebilirsiniz.

    Betikleri indirme

    İki SQL betik görürsünüz.

    • İlk SQL betiği, iki denetim tablosu oluşturmak için kullanılır. Ana denetim tablosu tablo listesini, dosya yolunu veya kopyalama davranışlarını depolar. Parametreli bağlı hizmeti kullandıysanız, bağlantı denetimi tablosu veri deponuzun bağlantı değerini depolar.
    • İkinci SQL betiği, bir depolama yordamı oluşturmak için kullanılır. Artımlı kopyalama işleri her seferinde tamamlandığında ana denetim tablosundaki filigran değerini güncelleştirmek için kullanılır.
  8. Denetim tablosu sunucunuza bağlanmak için SSMS'yi açın ve denetim tabloları ve depolama yordamı oluşturmak için iki SQL betiği çalıştırın.

    Denetim tablosu betiği oluşturma

  9. İçindeki meta verileri gözden geçirmek için ana denetim tablosunu ve bağlantı denetimi tablosunu sorgulayın.

    Ana denetim tablosuSorgu denetimi tablo betiği1

    Bağlantı denetim tablosuSorgu denetimi tablo betiği2

  10. İşlem hatlarını görüntülemek ve hatalarını ayıklamak için ADF portalına geri dönün. "MetadataDrivenCopyTask_#######" olarak adlandırılarak oluşturulan bir klasör görürsünüz. "MetadataDrivenCopyTask###_TopLevel" ile işlem hattı adlandırmaya tıklayın ve ardından hata ayıklama çalıştırması'na tıklayın.

    Aşağıdaki parametreleri girmeniz gerekir:

    Parametre adı Açıklama
    MaxNumberOfConcurrentTasks İşlem hattı çalıştırılmadan önce çalıştırılacak en fazla eşzamanlı kopyalama etkinliği sayısını istediğiniz zaman değiştirebilirsiniz. Varsayılan değer, veri kopyalama aracına girdiğiniz değerdir.
    MainControlTableName ana denetim tablosunun adını istediğiniz zaman değiştirebilirsiniz, böylece işlem hattı çalıştırmadan önce bu tablodan meta verileri alır.
    ConnectionControlTableName İşlem hattının çalışmadan önce veri deposu bağlantısıyla ilgili meta verileri alması için bağlantı denetimi tablo adını istediğiniz zaman değiştirebilirsiniz (isteğe bağlı).
    MaxNumberOfObjectsReturnedFromLookupActivity Çıkış arama etkinliği sınırına ulaşmamak için, arama etkinliği tarafından döndürülen en fazla nesne sayısını tanımlamanın bir yolu vardır. Çoğu durumda varsayılan değerin değiştirilmesi gerekmez.
    windowStart Klasör yolu olarak dinamik değer (örneğin, yyyy/mm/dd) girdiğinizde, dinamik klasör yolunu doldurmak için geçerli tetikleyici süresini işlem hattına geçirmek için parametresi kullanılır. İşlem hattı zamanlama tetikleyicisi veya atlayan pencereler tetikleyicisi tarafından tetiklendiğinde, kullanıcıların bu parametrenin değerini girişi gerekmez. Örnek değer: 2021-01-25T01:49:28Z
  11. İşlem hatlarını kullanıma hazır hale getirmek için tetikleyiciyi etkinleştirin.

    Tetikleyici etkinleştirme

Veri kopyalama aracıyla denetim tablosunu güncelleştirme

Kopyalanacak nesneyi ekleyerek veya kaldırarak ya da her tablonun kopyalama davranışını değiştirerek denetim tablosunu her zaman doğrudan güncelleştirebilirsiniz. Ayrıca, denetim tablosunu düzenleme yolculuğunu kolaylaştırmak için veri kopyalama aracında kullanıcı arabirimi deneyimi de oluşturuyoruz.

  1. Üst düzey işlem hattına sağ tıklayın: MetadataDrivenCopyTask_xxx_TopLevel ve ardından Denetim tablosunu düzenle'yi seçin.

    Denetim tablosunu düzenleme1

  2. Düzenlemek istediğiniz satırları denetim tablosundan seçin.

    Denetim tablosunu düzenle2

  3. Veri kopyalama aracının aktarım hızına geçin; sizin için yeni bir SQL betiği ortaya çıkar. Denetim tablonuzu güncelleştirmek için SQL betiğini yeniden çalıştırın.

    Denetim tablosunu düzenleme3

    Not

    İşlem hattı yeniden dağıtılmaz. Yeni oluşturulan SQL betiği yalnızca denetim tablosunu güncelleştirmenize yardımcı olur.

Denetim tabloları

Ana denetim tablosu

Denetim tablosundaki her satır, kopyalanacak bir nesnenin meta verilerini (örneğin, bir tablo) içerir.

Sütun adı Açıklama
Kimlik Kopyalanacak nesnenin benzersiz kimliği.
SourceObjectSettings Kaynak veri kümesinin meta verileri. Şema adı, tablo adı vb. olabilir. Aşağıda bir örnek verilmiştir.
SourceConnectionSettingsName Bağlantı denetimi tablosundaki kaynak bağlantı ayarının adı. İsteğe bağlıdır.
CopySourceSettings Kopyalama etkinliğindeki kaynak özelliğin meta verileri. Sorgu, bölümler vb. olabilir. Aşağıda bir örnek verilmiştir.
SinkObjectSettings Hedef veri kümesinin meta verileri. Dosya adı, klasör yolu, tablo adı vb. olabilir. Aşağıda bir örnek verilmiştir. Dinamik klasör yolu belirtilirse, değişken değeri denetim tablosunda buraya yazılmaz.
SinkConnectionSettingsName Bağlantı denetimi tablosundaki hedef bağlantı ayarının adı. İsteğe bağlıdır.
CopySinkSettings Kopyalama etkinliğindeki havuz özelliğinin meta verileri. PreCopyScript, tableOption vb. olabilir. Aşağıda bir örnek verilmiştir.
CopyActivitySettings Kopyalama etkinliğindeki translator özelliğinin meta verileri. Sütun eşlemesini tanımlamak için kullanılır.
TopLevelPipelineName Bu nesneyi kopyalayabilen Üst İşlem Hattı adı.
TriggerName Bu nesneyi kopyalamak için işlem hattını tetikleyebilen tetikleyici adı. Hata ayıklama çalıştırılırsa, ad Korumalı Alan'dır. El ile yürütme ise, ad El ile'dir. Zamanlanmış çalıştırma ise, ad ilişkili tetikleyici adıdır. Birden çok ad girişi olabilir.
DataLoadingBehaviorSettings Tam yük ve delta yükü karşılaştırması.
Görev Kimliği Denetim tablosundaki TaskId'den sonra kopyalanacak nesnelerin sırası (ORDER BY [TaskId] DESC). Kopyalanacak çok fazla nesneniz varsa ancak yalnızca sınırlı sayıda eşzamanlı kopyaya izin veriliyorsa, daha önce hangi nesnelerin kopyalanabileceğine karar vermek için her nesnenin TaskId değerini değiştirebilirsiniz. Varsayılan değer 0'tir.
CopyEnabled Öğenin veri alımı işleminde etkinleştirilip etkinleştirilmediğini belirtin. İzin verilen değerler: 1 (etkin), 0 (devre dışı). Varsayılan değer 1'dir.

Bağlantı denetim tablosu

Denetim tablosundaki her satır, veri deposu için bir bağlantı ayarı içerir.

Sütun adı Açıklama
Ad Ana denetim tablosundaki parametreli bağlantının adı.
ConnectionSettings Bağlantı ayarları. Veritabanı adı, Sunucu adı vb. olabilir.

Pipelines

Veri kopyalama aracı tarafından üç işlem hattı düzeyi oluşturulduğunu göreceksiniz.

MetadataDrivenCopyTask_xxx_TopLevel

Bu işlem hattı, bu çalıştırmada kopyalanması gereken toplam nesne sayısını (tablolar vb.) hesaplar, izin verilen en fazla eşzamanlı kopyalama görevine göre sıralı toplu iş sayısıyla gelir ve sonra farklı toplu işlemleri sırayla kopyalamak için başka bir işlem hattı yürütür.

Parametreler

Parametre adı Açıklama
MaxNumberOfConcurrentTasks İşlem hattı çalıştırılmadan önce çalıştırılacak en fazla eşzamanlı kopyalama etkinliği sayısını istediğiniz zaman değiştirebilirsiniz. Varsayılan değer, veri kopyalama aracına girdiğiniz değerdir.
MainControlTableName Ana denetim tablosunun tablo adı. İşlem hattı, çalıştırmadan önce bu tablodan meta verileri alır
ConnectionControlTableName Bağlantı denetim tablosunun tablo adı (isteğe bağlı). İşlem hattı, çalışmadan önce veri deposu bağlantısıyla ilgili meta verileri alır
MaxNumberOfObjectsReturnedFromLookupActivity Çıkış arama etkinliği sınırına ulaşmamak için, arama etkinliği tarafından döndürülen en fazla nesne sayısını tanımlamanın bir yolu vardır. Çoğu durumda varsayılan değerin değiştirilmesi gerekmez.
windowStart Klasör yolu olarak dinamik değer (örneğin, yyyy/mm/dd) girdiğinizde, dinamik klasör yolunu doldurmak için geçerli tetikleyici süresini işlem hattına geçirmek için parametresi kullanılır. İşlem hattı zamanlama tetikleyicisi veya atlayan pencereler tetikleyicisi tarafından tetiklendiğinde, kullanıcıların bu parametrenin değerini girişi gerekmez. Örnek değer: 2021-01-25T01:49:28Z

Aktiviteler

Etkinlik adı Etkinlik türü Açıklama
GetSumOfObjectsToCopy Arama Bu çalıştırmada kopyalanması gereken nesnelerin (tablolar vb.) toplam sayısını hesaplayın.
CopyBatchesOfObjectsSequentially ForEach İzin verilen en fazla eşzamanlı kopyalama görevini temel alan sıralı toplu işlemlerin sayısını belirleyin ve ardından farklı toplu işleri sırayla kopyalamak için başka bir işlem hattı yürütebilirsiniz.
CopyObjectsInOneBtach İşlem Hattı Yürütme Bir nesne toplu işlemini kopyalamak için başka bir işlem hattı yürütebilirsiniz. Bu toplu işe ait nesneler paralel olarak kopyalanır.

MetadataDrivenCopyTask_xxx_ MiddleLevel

Bu işlem hattı bir nesne toplu işlemini kopyalar. Bu toplu işe ait nesneler paralel olarak kopyalanır.

Parametreler

Parametre adı Açıklama
MaxNumberOfObjectsReturnedFromLookupActivity Çıkış arama etkinliği sınırına ulaşmamak için, arama etkinliği tarafından döndürülen en fazla nesne sayısını tanımlamanın bir yolu vardır. Çoğu durumda varsayılan değerin değiştirilmesi gerekmez.
TopLevelPipelineName Üst katman işlem hattının adı.
TriggerName Tetikleyicinin adı.
CurrentSequentialNumberOfBatch Sıralı toplu iş kimliği.
SumOfObjectsToCopy Kopyalanacak nesnelerin toplam sayısı.
SumOfObjectsToCopyForCurrentBatch Geçerli toplu işlemde kopyalanacak nesne sayısı.
MainControlTableName Ana denetim tablosunun adı.
ConnectionControlTableName Bağlantı denetim tablosunun adı.

Aktiviteler

Etkinlik adı Etkinlik türü Açıklama
DivideOneBatchIntoMultipleGroups ForEach Arama etkinliğinin çıkış sınırına ulaşmamak için nesneleri tek bir toplu işten birden çok paralel gruba bölün.
GetObjectsPerGroupToCopy Arama Bu grupta kopyalanması gereken denetim tablosundan nesneleri (tablolar vb.) alın. Denetim tablosundaki TaskId'den sonra kopyalanacak nesnelerin sırası (ORDER BY [TaskId] DESC).
CopyObjectsInOneGroup İşlem Hattı Yürütme Bir gruptaki nesneleri kopyalamak için başka bir işlem hattı yürütebilirsiniz. Bu gruba ait nesneler paralel olarak kopyalanır.

MetadataDrivenCopyTask_xxx_ BottomLevel

Bu işlem hattı nesneleri bir gruptan kopyalar. Bu gruba ait nesneler paralel olarak kopyalanır.

Parametreler

Parametre adı Açıklama
ObjectsPerGroupToCopy Geçerli grupta kopyalanacak nesne sayısı.
ConnectionControlTableName Bağlantı denetim tablosunun adı.
windowStart Kullanıcı tarafından yapılandırılırsa dinamik klasör yolunu doldurmak için geçerli tetikleyici süresini işlem hattına geçirmek için kullanılır.

Aktiviteler

Etkinlik adı Etkinlik türü Açıklama
ListObjectsFromOneGroup ForEach Bir gruptaki nesneleri listeleyin ve her birini aşağı akış etkinliklerine yineleyin.
RouteJobsBasedOnLoadingBehavior Switch Her nesne için yükleme davranışını denetleyin. Varsayılan veya FullLoad büyük/küçük harf ise, tam yükleme yapın. DeltaLoad büyük/küçük harf ise, değişiklikleri tanımlamak için filigran sütunu aracılığıyla artımlı yükleme yapın
FullLoadOneObject Kopyala Bu nesne üzerinde tam bir anlık görüntü alın ve hedefe kopyalayın.
DeltaLoadOneObject Kopyala Değişiklikleri tanımlamak için filigran sütunundaki değeri karşılaştırarak değiştirilen verileri yalnızca son seferden kopyalayın.
GetMaxWatermarkValue Arama Filigran sütunundan maksimum değeri almak için kaynak nesneyi sorgula.
UpdateWatermarkColumnValue StoreProcedure Tabloyu bir dahaki sefere kullanmak üzere denetlemek için yeni filigran değerini yeniden yazın.

Bilinen sınırlamalar

  • IR adı, veritabanı türü, dosya biçimi türü ADF'de parametrelenemez. Örneğin, hem Oracle Server'dan hem de SQL Server'dan veri almak istiyorsanız, iki farklı parametreli işlem hattı gerekir. Ancak tek denetim tablosu iki işlem hattı kümesi tarafından paylaşılabilir.
  • OPENJSON, veri kopyalama aracı tarafından oluşturulan SQL betiklerinde kullanılır. Denetim tablosunu barındırmak için SQL Server kullanıyorsanız, OPENJSON işlevini desteklemek için SQL Server 2016 (13.x) ve üzeri olmalıdır.

Veri Kopyalama aracını kullanan şu öğreticileri deneyin: