Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'daki
Bu öğreticide, Azure SQL Veritabanındaki kaynak veritabanının değişiklik izleme bilgilerini temel alarak delta verilerini yükleyen bir işlem hattıyla bir Azure veri fabrikası oluşturacaksınız ve bu verileri Azure blob depolamaya taşıyacaksınız.
Bu öğreticide aşağıdaki adımları gerçekleştireceksiniz:
- Kaynak veri deposunu hazırlama
- Veri fabrikası oluşturma.
- Bağlı hizmet oluşturma.
- Kaynak, havuz ve değişiklik izleme veri kümelerini oluşturma.
- Tam kopyalama işlem hattını oluşturma, çalıştırma ve izleme
- Kaynak tabloya veri ekleme veya bu verileri güncelleştirme
- Artımlı kopyalama işlem hattını oluşturma, çalıştırma ve izleme
Not
Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell yükleme. Az PowerShell modülüne nasıl geçiş yapılacağını öğrenmek için bkz. AzureRM'den Az Azure PowerShell dağıtma.
Genel bakış
İlk veriler yüklendikten sonra verileri artımlı olarak yükleme senaryosu, veri tümleştirme çözümlerinde sıkça kullanılır. Bazı durumlarda, kaynak veri deponuzda belirli bir süre içinde değiştirilen veriler (örneğin, LastModifyTime, CreationTime) kolayca dilimlenebilir. Bazı durumlarda, verileri en son işlediğiniz zamandan bu yana olan delta verilerini açıkça ayırt etmenin bir yolu yoktur. değişiklik verilerini tanımlamak için Azure SQL Veritabanı ve SQL Server gibi veri depoları tarafından desteklenen Değişiklik İzleme teknolojisi kullanılabilir. Bu öğreticide, SQL Değişiklik İzleme teknolojisiyle Azure Data Factory kullanılarak Azure SQL Veritabanı'den Azure Blob Depolama'a delta verilerini artımlı olarak yüklemenin nasıl yapılacağı açıklanmaktadır. SQL Değişiklik İzleme teknolojisi hakkında daha somut bilgi için bkz. SQL Server'da Değişiklik İzleme.
Uçtan uca iş akışı
Değişiklik İzleme teknolojisini kullanarak verileri artımlı olarak yüklemek için sık kullanılan uçtan uca iş akışı adımları burada verilmiştir.
Not
Hem Azure SQL Veritabanı hem de SQL Server Değişiklik İzleme teknolojisini destekler. Bu öğreticide kaynak veri deposu olarak Azure SQL Veritabanı kullanılır. SQL Server örneği de kullanabilirsiniz.
-
Geçmiş verilerin ilk yüklenmesi (bir kez çalıştır):
- Azure SQL Veritabanı kaynak veritabanında Değişiklik İzleme teknolojisini etkinleştirin.
- Değiştirilen verileri yakalamak için referans olarak veritabanındaki SYS_CHANGE_VERSION'in ilk değerini edinin.
- Kaynak veritabanından Azure blob depolama alanına tam veri yükleyin.
-
Delta verilerinin bir zamanlamaya göre artımlı yüklenmesi (verilerin ilk yüklenmesinden sonra düzenli aralıklarla çalıştırılır):
- Eski ve yeni SYS_CHANGE_VERSION değerleri alın.
- sys.change_tracking_tables ile kaynak tablosu içindeki verileri iki SYS_CHANGE_VERSION değeri arasında değiştirilen satırların birincil anahtarlarına göre birleştirerek delta verilerini yükleyin ve ardından delta verilerini hedefe taşıyın.
- SYS_CHANGE_VERSION değerini bir sonraki delta yüklemesi için güncelleyin.
Yüksek düzeyli çözüm
Bu öğreticide, aşağıdaki iki işlemi gerçekleştiren iki işlem hattı oluşturursunuz:
Initial load: tüm verileri kaynak veri deposundan (Azure SQL Veritabanı) hedef veri deposuna (Azure Blob Depolama) kopyalayan kopyalama etkinliğine sahip bir işlem hattı oluşturursunuz.
Artımlı yükleme: Aşağıdaki etkinliklerle bir işlem hattı oluşturursunuz ve bunu düzenli olarak çalıştırırsınız.
- İki arama etkinliği oluşturun, eski ve yeni SYS_CHANGE_VERSION almak ve bunları Azure SQL Veritabanı'den kopyalama etkinliğine geçirmek için.
- İki SYS_CHANGE_VERSION değeri arasında eklenen/güncelleştirilen/silinen verileri Azure SQL Veritabanı Azure Blob Depolama kopyalamak için bir kopyalama etkinliği oluşturun.
- SYS_CHANGE_VERSION değerini bir sonraki işlem hattı çalıştırmasında güncelleştirmek için bir saklı yordam etkinliği oluşturun.
Azure aboneliğiniz yoksa başlamadan önce bir free hesabı oluşturun.
Önkoşullar
- Azure PowerShell. Azure PowerShell yükleme ve yapılandırma yönergelerini izleyerek en son Azure PowerShell modüllerini yükleyin.
- Azure SQL Veritabanı. Veritabanını kaynak veri deposu olarak kullanabilirsiniz. Azure SQL Veritabanı'da veritabanınız yoksa, Oluşturma adımları için Azure SQL Veritabanı'da veritabanı oluşturma makalesine bakın.
- Azure Depolama hesabı. Blob depolamayı havuz veri deposu olarak kullanabilirsiniz. Azure depolama hesabınız yoksa, oluşturma adımları için Depolama hesabı oluşturma makalesine bakın. adftutorial adlı bir kapsayıcı oluşturun.
Veritabanınızda veri kaynağı tablosu oluşturma
SQL Server Management Studio başlatın ve SQL Veritabanı'na bağlanın.
Sunucu Gezgini’nde veritabanınıza sağ tıklayın ve Yeni Sorgu’yu seçin.
Veri kaynağı deposu olarak adlandırılan
data_source_tablebir tablo oluşturmak için veritabanınızda aşağıdaki SQL komutunu çalıştırın.create table data_source_table ( PersonID int NOT NULL, Name varchar(255), Age int PRIMARY KEY (PersonID) ); INSERT INTO data_source_table (PersonID, Name, Age) VALUES (1, 'aaaa', 21), (2, 'bbbb', 24), (3, 'cccc', 20), (4, 'dddd', 26), (5, 'eeee', 22);Aşağıdaki SQL sorgusunu çalıştırarak veritabanınızda ve kaynak tabloda (data_source_table) Değişiklik İzleme mekanizmasını etkinleştirin:
Not
- <Veritabanı adını>, data_source_table'ı içeren veritabanınızın adıyla değiştirin.
- Değiştirilen veriler, geçerli örnekte iki gün boyunca saklanır. Değiştirilen verileri üç günlük veya daha uzun aralıklarla yüklerseniz, bazı değiştirilen veriler dahil edilmez. Bu durumda CHANGE_RETENTION değerini değiştirip daha büyük bir sayı belirlemelisiniz. Alternatif olarak, değiştirilen verilerin iki gün içinde yüklenmesini de sağlayabilirsiniz. Daha fazla bilgi için bkz. Veritabanı için değişiklik izlemeyi etkinleştirme
ALTER DATABASE <your database name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) ALTER TABLE data_source_table ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)Yeni bir tablo oluşturun ve aşağıdaki sorguyu çalıştırarak ChangeTracking_version değerini varsayılan değerle depolayın:
create table table_store_ChangeTracking_version ( TableName varchar(255), SYS_CHANGE_VERSION BIGINT, ); DECLARE @ChangeTracking_version BIGINT SET @ChangeTracking_version = CHANGE_TRACKING_CURRENT_VERSION(); INSERT INTO table_store_ChangeTracking_version VALUES ('data_source_table', @ChangeTracking_version)Not
SQL Veritabanı için değişiklik izlemeyi etkinleştirdikten sonra veriler değiştirilmezse, değişiklik izleme sürümünün değeri 0 olur.
Veritabanınızda saklı yordam oluşturmak için aşağıdaki sorguyu çalıştırın. İşlem hattı, bu saklı yordamı, bir önceki adımda oluşturduğunuz tablodaki değişiklik izleme sürümünü güncelleştirmeye çağırır.
CREATE PROCEDURE Update_ChangeTracking_Version @CurrentTrackingVersion BIGINT, @TableName varchar(50) AS BEGIN UPDATE table_store_ChangeTracking_version SET [SYS_CHANGE_VERSION] = @CurrentTrackingVersion WHERE [TableName] = @TableName END
Azure PowerShell
Azure PowerShell yükleme ve yapılandırma yönergelerini izleyerek en son Azure PowerShell modüllerini yükleyin.
Veri fabrikası oluşturma
Daha sonra PowerShell komutlarında kullanacağınız kaynak grubu adı için bir değişken tanımlayın. Aşağıdaki komut metnini PowerShell'e kopyalayın, çift tırnak içinde Azure kaynak grubu için bir ad belirtin ve komutunu çalıştırın. Örneğin:
"adfrg".$resourceGroupName = "ADFTutorialResourceGroup";Kaynak grubu zaten varsa, üzerine yazılmasını istemeyebilirsiniz.
$resourceGroupNamedeğişkenine farklı bir değer atayın ve komutu yeniden çalıştırınVeri fabrikasının konumu için bir değişken tanımlayın:
$location = "East US"Azure kaynak grubunu oluşturmak için aşağıdaki komutu çalıştırın:
New-AzResourceGroup $resourceGroupName $locationKaynak grubu zaten varsa, üzerine yazılmasını istemeyebilirsiniz.
$resourceGroupNamedeğişkenine farklı bir değer atayın ve komutu yeniden çalıştırın.Veri fabrikasının adı için bir değişken tanımlayın.
Önemli
Veri fabrikasının adını genel olarak benzersiz olacak şekilde güncelleştirin.
$dataFactoryName = "IncCopyChgTrackingDF";Veri fabrikasını oluşturmak için aşağıdaki Set-AzDataFactoryV2 cmdlet'ini çalıştırın:
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
Aaşağıdaki noktaları unutmayın:
Azure veri fabrikasının adı genel olarak benzersiz olmalıdır. Aşağıdaki hata iletisini alırsanız adı değiştirip yeniden deneyin.
The specified Data Factory name 'ADFIncCopyChangeTrackingTestFactory' is already in use. Data Factory names must be globally unique.Data Factory örnekleri oluşturmak için, Azure'da oturum açmak için kullandığınız kullanıcı hesabının Azure aboneliğinde contributor veya owner rollerine sahip olması ya da administrator olması gerekir.
Data Factory'nin şu anda kullanılabilir olduğu Azure bölgelerin listesi için aşağıdaki sayfada ilginizi çekebilecek bölgeleri seçin ve ardından Analytics'yi genişleterek Data Factory: Products by region öğesini bulun. Veri fabrikası tarafından kullanılan veri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlem (HDInsight vb.) diğer bölgelerde olabilir.
Bağlı hizmetler oluşturma
Veri depolarınızı ve işlem hizmetlerinizi veri fabrikasına bağlamak için veri fabrikasında bağlı hizmetler oluşturursunuz. Bu bölümde, Azure Depolama hesabınıza ve Azure SQL Veritabanı veritabanınıza bağlı hizmetler oluşturacaksınız.
Azure Depolama ile bağlı hizmet oluşturun.
Bu adımda, Azure Depolama Hesabınızı veri fabrikasına bağlarsınız.
:\ADFTutorials\IncCopyChangeTrackingTutorial klasöründe şu içeriğe sahip AzureStorageLinkedService.json adlı bir JSON dosyası oluşturun: (Böyle bir klasör mevcut değilse, bunu oluşturun.) dosyayı kaydetmeden önce
<accountName>,<accountKey>değerini Azure depolama hesabınızın adı ve anahtarıyla değiştirin.{ "name": "AzureStorageLinkedService", "properties": { "type": "AzureStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" } } }Azure PowerShell'da C:\ADFTutorials\IncCopyChangeTrackingTutorial klasörüne geçin.
Bağlı hizmeti oluşturmak için Set-AzDataFactoryV2LinkedService cmdlet'ini çalıştırın: AzureStorageLinkedService. Aşağıdaki örnekte, ResourceGroupName ve DataFactoryName parametrelerinin değerlerini geçirirsiniz.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"Örnek çıktı aşağıdaki gibidir:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureStorageLinkedService
bağlı Azure SQL Veritabanı hizmeti oluşturun.
Bu adımda veritabanınızı veri fabrikasına bağlarsınız.
C:\ADFTutorials\IncCopyChangeTrackingTutorial klasöründe şu içeriğe sahip AzureSQLDatabaseLinkedService.jsonadlı bir JSON dosyası oluşturun: Dosyayı kaydetmeden önce sunucunuzun adını< ve >veritabanınızın< adını sunucunuzun ve veritabanınızın adıyla değiştirin>. Azure SQL Server'ınızı, veri fabrikanızın yönetilen kimliğine erişim vermek için yapılandırmanız da gerekir.
{ "name": "AzureSqlDatabaseLinkedService", "properties": { "type": "AzureSqlDatabase", "typeProperties": { "connectionString": "Server=tcp:<your-server-name>.database.windows.net,1433;Database=<your-database-name>;" }, "authenticationType": "ManagedIdentity", "annotations": [] } }Azure PowerShell içinde, bağlı hizmeti oluşturmak için Set-AzDataFactoryV2LinkedService cmdlet'ini çalıştırın: AzureSQLDatabaseLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureSQLDatabaseLinkedService" -File ".\AzureSQLDatabaseLinkedService.json"Örnek çıktı aşağıdaki gibidir:
LinkedServiceName : AzureSQLDatabaseLinkedService ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDatabaseLinkedService
Veri kümeleri oluşturma
Bu adımda, veri kaynağını ve veri hedefini temsil eden veri setlerini oluşturursunuz. SYS_CHANGE_VERSION'in depolanacağı yer.
Kaynak veri kümesi oluşturma
Bu adımda, kaynak verileri temsil etmek için bir veri kümesi oluşturursunuz.
Aşağıdaki içeriğe sahip klasörde SourceDataset.json adlı bir JSON dosyası oluşturun:
{ "name": "SourceDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "data_source_table" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }Set-AzDataFactoryV2Dataset cmdlet'ini çalıştırarak veri kümesini oluşturun: SourceDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SourceDataset" -File ".\SourceDataset.json"Cmdlet’in örnek çıktısı aşağıdaki gibidir:
DatasetName : SourceDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Havuz veri kümesi oluşturma
Bu adımda, kaynak veri deposundan kopyalanan verileri temsil etmek için bir veri kümesi oluşturursunuz.
Aşağıdaki içeriğe sahip klasörde SinkDataset.json adlı bir JSON dosyası oluşturun:
{ "name": "SinkDataset", "properties": { "type": "AzureBlob", "typeProperties": { "folderPath": "adftutorial/incchgtracking", "fileName": "@CONCAT('Incremental-', pipeline().RunId, '.txt')", "format": { "type": "TextFormat" } }, "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" } } }Önkoşulların bir parçası olarak, Azure Blob Depolama'de adftutorial adlı kapsayıcıyı oluşturursunuz. Henüz yoksa kapsayıcıyı oluşturun veya mevcut bir kapsayıcının ismini belirleyin. Bu öğreticide, çıkış dosyası adı dinamik olarak şu ifade kullanılarak oluşturulur: @CONCAT('Incremental-', pipeline().RunId, '.txt').
Set-AzDataFactoryV2Dataset cmdlet'ini çalıştırarak veri kümesini oluşturun: SinkDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SinkDataset" -File ".\SinkDataset.json"Cmdlet’in örnek çıktısı aşağıdaki gibidir:
DatasetName : SinkDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobDataset
Değişiklik izleme veri kümesi oluşturma
Bu adımda değişiklik izleme sürümünü depolamak için bir veri kümesi oluşturacaksınız.
Aşağıdaki içeriğe sahip klasörde ChangeTrackingDataset.json adlı bir JSON dosyası oluşturun:
{ "name": " ChangeTrackingDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "table_store_ChangeTracking_version" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }Önkoşulların bir parçası olarak table_store_ChangeTracking_version tablosunu oluşturursunuz.
Set-AzDataFactoryV2Dataset cmdlet'ini çalıştırarak veri kümesini oluşturun: ChangeTrackingDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "ChangeTrackingDataset" -File ".\ChangeTrackingDataset.json"Cmdlet’in örnek çıktısı aşağıdaki gibidir:
DatasetName : ChangeTrackingDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Tam kopya için işlem hattı oluşturma
Bu adımda, tüm verileri kaynak veri deposundan (Azure SQL Veritabanı) hedef veri deposuna (Azure Blob Depolama) kopyalayan kopyalama etkinliğine sahip bir işlem hattı oluşturursunuz.
Şu içeriğe sahip klasörde bir FullCopyPipeline.json adlı bir JSON dosyası oluşturun:
{ "name": "FullCopyPipeline", "properties": { "activities": [{ "name": "FullCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource" }, "sink": { "type": "BlobSink" } }, "inputs": [{ "referenceName": "SourceDataset", "type": "DatasetReference" }], "outputs": [{ "referenceName": "SinkDataset", "type": "DatasetReference" }] }] } }İşlem hattını oluşturmak için Set-AzDataFactoryV2Pipeline cmdlet'ini çalıştırın: FullCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "FullCopyPipeline" -File ".\FullCopyPipeline.json"Örnek çıktı aşağıdaki gibidir:
PipelineName : FullCopyPipeline ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Activities : {FullCopyActivity} Parameters :
Tam kopyalama işlem hattını çalıştırma
Invoke-AzDataFactoryV2Pipeline cmdlet'ini kullanarak fullCopyPipeline işlem hattını çalıştırın.
Invoke-AzDataFactoryV2Pipeline -PipelineName "FullCopyPipeline" -ResourceGroup $resourceGroupName -dataFactoryName $dataFactoryName
Tam kopyalama işlem hattını izleme
Azure portalında oturum açın.
Tüm hizmetler’e tıklayın,
data factoriesanahtar sözcüğüyle arama yapın ve Veri fabrikaları seçeneğini belirleyin.
Veri fabrikaları listesinde veri fabrikanızı arayın ve bunu seçerek Veri fabrikası sayfasını başlatın.
Veri fabrikası sayfasında İzleme ve Yönetme kutucuğuna tıklayın.
Veri Entegrasyonu Uygulaması ayrı bir sekmede başlatılır. Tüm işlem hattı çalıştırmalarını ve bunların durumlarını görebilirsiniz. Aşağıdaki örnekte işlem hattı çalıştırmasının durumunun Başarılı olarak belirtildiğini görebilirsiniz. Parametreler sütunundaki bağlantıya tıklayarak işlem hattına geçirilen parametreleri denetleyebilirsiniz. Bir hata oluştuysa, Hata sütununda bir bağlantı görürsünüz. Eylemler sütunundaki bağlantıya tıklayın.
Eylemler sütunundaki bağlantıya tıkladığınızda, işlem hattına yönelik tüm eylem çalıştırmalarını gösteren sayfayı görürsünüz.
İşlem hattı çalıştırmaları görünümüne dönmek için resimde gösterildiği gibi İşlem hatları seçeneğine tıklayın.
Sonuçları gözden geçirin
incremental-<GUID>.txt kapsayıcısının incchgtracking klasöründe adftutorial adlı bir dosya görürsünüz.
Dosyada veritabanınızdaki veriler bulunmalıdır:
1,aaaa,21
2,bbbb,24
3,cccc,20
4,dddd,26
5,eeee,22
Kaynak tabloya daha fazla veri ekleme
Bir satır eklemek ve satırı güncelleştirmek için veritabanınızda aşağıdaki sorguyu çalıştırın.
INSERT INTO data_source_table
(PersonID, Name, Age)
VALUES
(6, 'new','50');
UPDATE data_source_table
SET [Age] = '10', [name]='update' where [PersonID] = 1
Delta kopyası için bir veri hattı oluşturma
Bu adımda, aşağıdaki etkinliklerle bir işlem hattı oluşturursunuz ve bunu düzenli olarak çalıştırırsınız. Azure SQL Veritabanı'den eski ve yeni SYS_CHANGE_VERSION'i lookup etkinlikleri alır ve bunu kopyalama etkinliğine geçirir. copy activity, iki SYS_CHANGE_VERSION değeri arasına eklenen/güncelleştirilen/silinen verileri Azure SQL Veritabanı ile Azure Blob Depolama arasına kopyalar. Saklı yordam etkinliği, SYS_CHANGE_VERSION değerini bir sonraki işlem hattı çalıştırmasında güncelleştirir.
Aşağıdaki içeriğe sahip klasörde bir IncrementalCopyPipeline.json adlı bir JSON dosyası oluşturun:
{ "name": "IncrementalCopyPipeline", "properties": { "activities": [ { "name": "LookupLastChangeTrackingVersionActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from table_store_ChangeTracking_version" }, "dataset": { "referenceName": "ChangeTrackingDataset", "type": "DatasetReference" } } }, { "name": "LookupCurrentChangeTrackingVersionActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "SELECT CHANGE_TRACKING_CURRENT_VERSION() as CurrentChangeTrackingVersion" }, "dataset": { "referenceName": "SourceDataset", "type": "DatasetReference" } } }, { "name": "IncrementalCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select data_source_table.PersonID,data_source_table.Name,data_source_table.Age, CT.SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION from data_source_table RIGHT OUTER JOIN CHANGETABLE(CHANGES data_source_table, @{activity('LookupLastChangeTrackingVersionActivity').output.firstRow.SYS_CHANGE_VERSION}) as CT on data_source_table.PersonID = CT.PersonID where CT.SYS_CHANGE_VERSION <= @{activity('LookupCurrentChangeTrackingVersionActivity').output.firstRow.CurrentChangeTrackingVersion}" }, "sink": { "type": "BlobSink" } }, "dependsOn": [ { "activity": "LookupLastChangeTrackingVersionActivity", "dependencyConditions": [ "Succeeded" ] }, { "activity": "LookupCurrentChangeTrackingVersionActivity", "dependencyConditions": [ "Succeeded" ] } ], "inputs": [ { "referenceName": "SourceDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "SinkDataset", "type": "DatasetReference" } ] }, { "name": "StoredProceduretoUpdateChangeTrackingActivity", "type": "SqlServerStoredProcedure", "typeProperties": { "storedProcedureName": "Update_ChangeTracking_Version", "storedProcedureParameters": { "CurrentTrackingVersion": { "value": "@{activity('LookupCurrentChangeTrackingVersionActivity').output.firstRow.CurrentChangeTrackingVersion}", "type": "INT64" }, "TableName": { "value": "@{activity('LookupLastChangeTrackingVersionActivity').output.firstRow.TableName}", "type": "String" } } }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" }, "dependsOn": [ { "activity": "IncrementalCopyActivity", "dependencyConditions": [ "Succeeded" ] } ] } ] } }İşlem hattını oluşturmak için Set-AzDataFactoryV2Pipeline cmdlet'ini çalıştırın: FullCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "IncrementalCopyPipeline" -File ".\IncrementalCopyPipeline.json"Örnek çıktı aşağıdaki gibidir:
PipelineName : IncrementalCopyPipeline ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Activities : {LookupLastChangeTrackingVersionActivity, LookupCurrentChangeTrackingVersionActivity, IncrementalCopyActivity, StoredProceduretoUpdateChangeTrackingActivity} Parameters :
Artımlı kopyalama işlem hattını çalıştırma
Invoke-AzDataFactoryV2Pipeline cmdlet'ini kullanarak IncrementalCopyPipeline işlem hattını çalıştırın.
Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroup $resourceGroupName -dataFactoryName $dataFactoryName
Artımlı kopyalama işlem hattını izleme
Veri Entegrasyonu Uygulaması’nda işlem hattı çalışmaları görünümünü yenileyin. Listede IncrementalCopyPipeline değerini gördüğünüzü onaylayın. Eylemler sütunundaki bağlantıya tıklayın.
Eylemler sütunundaki bağlantıya tıkladığınızda, işlem hattına yönelik tüm eylem çalıştırmalarını gösteren sayfayı görürsünüz.
İşlem hattı çalıştırmaları görünümüne dönmek için resimde gösterildiği gibi İşlem hatları seçeneğine tıklayın.
Sonuçları gözden geçirin
incchgtracking kapsayıcısının adftutorial klasöründe ikinci dosyayı görürsünüz.
Dosyada yalnızca veritabanınızdaki delta verileri bulunmalıdır.
U bulunan kayıt, veritabanındaki güncelleştirilmiş satırdır ve I ise eklenen bir satırdır.
1,update,10,2,U
6,new,50,1,I
İlk üç sütun, data_source_table tablosundaki değiştirilmiş verilerdir. Son iki sütun, değişiklik izleme sistem tablosundaki meta verilerdir. Dördüncü sütun, değiştirilen her satıra ilişkin SYS_CHANGE_VERSION değeridir. Beşinci sütun ise işlemdir: U = güncelleştirme, I = ekleme. Değişiklik izleme bilgileri hakkında daha fazla ayrıntı için bkz. CHANGETABLE.
==================================================================
PersonID Name Age SYS_CHANGE_VERSION SYS_CHANGE_OPERATION
==================================================================
1 update 10 2 U
6 new 50 1 I
İlgili içerik
Yeni ve değiştirilmiş dosyaları yalnızca LastModifiedDate'larına göre kopyalama hakkında bilgi edinmek için aşağıdaki öğreticiye ilerleyin: