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
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.
Kaynak veritabanınızın bağlantısını giriş yapın. Parametreli bağlı hizmeti de kullanabilirsiniz.
Kopyalanacak tablo adını seçin.
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.
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.
Hedef veri deposu'mu seçin.
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.
İşlem hattı dağıtımından sonra, denetim tablosu ve depolama yordamı oluşturmak için kullanıcı arabiriminden SQL betiklerini kopyalayabilir veya indirebilirsiniz.
İ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.
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.
İçindeki meta verileri gözden geçirmek için ana denetim tablosunu ve bağlantı denetimi tablosunu sorgulayın.
Ana denetim tablosu
Bağlantı denetim tablosu
İş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 İşlem hatlarını kullanıma hazır hale getirmek için tetikleyiciyi etkinleştirin.
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.
Üst düzey işlem hattına sağ tıklayın: MetadataDrivenCopyTask_xxx_TopLevel ve ardından Denetim tablosunu düzenle'yi seçin.
Düzenlemek istediğiniz satırları denetim tablosundan seçin.
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.
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.
İlgili içerik
Veri Kopyalama aracını kullanan şu öğreticileri deneyin: