تحميل البيانات تدريجياً من قاعدة بيانات Azure SQL إلى مخزن Azure Blob باستخدام PowerShell
ينطبق على: Azure Data Factory
Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
في هذا البرنامج التعليمي، يمكنك استخدام Azure Data Factory لإنشاء مسار تحميل بيانات دلتا من جدول في قاعدة بيانات Azure SQL إلى مخزن Azure Blob.
نفذ الخطوات التالية في هذا البرنامج التعليمي:
- أعد مخزن بيانات لتخزين قيمة العلامة المائية.
- إنشاء data factory.
- أنشئ الخدمة ذات الصلة.
- أنشئ مجموعات بيانات المورد والمصدر والعلامة المائية.
- إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية.
- تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
- مراقبة تشغيل المسار.
نظرة عامة
فيما يلي رسم تخطيطي لحل رفيع المستوى:
فيما يلي الخطوات الهامة لإنشاء هذا الحل:
حدد عمود العلامة المائية. حدد عموداً واحداً في مخزن بيانات المصدر، والذي يمكن استخدامه لتقطيع السجلات الجديدة أو المحدثة لكل تشغيل. عادةً ما تستمر البيانات الموجودة في هذا العمود المحدد في الزيادة (على سبيل المثال، last_modify_time أو معرف) عند إنشاء صفوف أو تحديثها. تستخدم أعلى قيمة في هذا العمود كعلامة مائية.
أعد مخزن بيانات لتخزين قيمة العلامة المائية.
في هذا البرنامج التعليمي، يمكنك تخزين قيمة العلامة المائية في قاعدة بيانات SQL.أنشئ بنية أساسية مع سير العمل التالي:
تحتوي البنية الأساسية لهذا الحل على الأنشطة التالية:
- إنشاء نشاطين من أنشطة البحث. استخدم نشاط البحث الأول لاسترداد قيمة العلامة المائية الأخيرة. استخدم نشاط البحث الثاني لاسترداد قيمة العلامة المائية الجديدة. يتم تمرير قيم هذه العلامات المائية إلى نشاط النسخ.
- أنشئ نشاط نسخ ينسخ صفوف من مخزن بيانات المصدر مع إدخال قيمة لعمود العلامة المائية أكبر من قيمة العلامة المائية القديمة وأقل من قيمة العلامة المائية الجديدة أو يساويها. ثم، ينسخ بيانات دلتا من مخزن بيانات المصدر إلى Blob storage كملف جديد.
- أنشئ نشاط StoredProcedure الذي يحدث قيمة العلامة المائية للمسار الذي سيتم تشغيله في المرة القادمة.
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
المتطلبات الأساسية
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
- Azure SQL Database. يمكنك استخدام قاعدة البيانات كمخزن لبيانات المصدر. في حالة عدم امتلاك قاعدة بيانات فيAzure SQL Database، يرجى الرجوع إلى إنشاء قاعدة بيانات في Azure SQL Database للاطلاع على خطواتإنشاء واحدة.
- Azure Storage. يمكنك استخدام blob storage كمخزن لمصدر البيانات. إذا لم يكن لديك حساب تخزين، فيمكنك مراجعة إنشاء حساب تخزينللاطلاع على خطوات إنشاء الحساب. أنشئ حاوية باسم adftutorial.
- Azure PowerShell. اتبع الإرشادات الموجودة في كيفية تثبيت وتكوين Azure PowerShell.
أنشئ جدول مصدر بيانات في قاعدة بيانات SQL
فتح SQL Server Management Studio. في مستكشف العناصرانقر بزر الماوس الأيمن فوق database وحدد New Query.
شغل أمرSQL التالي مقابل قاعدة بيانات Azure لإنشاء جدول باسم
data_source_table
مخزن مصدر البيانات:create table data_source_table ( PersonID int, Name varchar(255), LastModifytime datetime ); INSERT INTO data_source_table (PersonID, Name, LastModifytime) VALUES (1, 'aaaa','9/1/2017 12:56:00 AM'), (2, 'bbbb','9/2/2017 5:23:00 AM'), (3, 'cccc','9/3/2017 2:36:00 AM'), (4, 'dddd','9/4/2017 3:21:00 AM'), (5, 'eeee','9/5/2017 8:06:00 AM');
في هذا البرنامج التعليمي، يمكنك استخدام LastModifytime كعمود علامة مائية. تظهر البيانات الموجودة في مخزن مصدر البيانات في الجدول التالي:
PersonID | Name | LastModifytime -------- | ---- | -------------- 1 | aaaa | 2017-09-01 00:56:00.000 2 | bbbb | 2017-09-02 05:23:00.000 3 | cccc | 2017-09-03 02:36:00.000 4 | dddd | 2017-09-04 03:21:00.000 5 | eeee | 2017-09-05 08:06:00.000
أنشئ جدول أخر في قاعدة بيانات SQL لتخزين أعلى قيمة للعلامة المائية
شغل أمر SQL التالي مقابل قاعدة بياناتك في SQL لإنشاء جدول باسم
watermarktable
لتخزين قيمة العلامة المائية:create table watermarktable ( TableName varchar(255), WatermarkValue datetime, );
عين القيمة الافتراضية للعلامة المائية العالية مع اسم جدول مخزن بيانات المصدر. في هذا البرنامج التعليمي، اسم الجدول هو data_source_table.
INSERT INTO watermarktable VALUES ('data_source_table','1/1/2010 12:00:00 AM')
راجع البيانات الموجودة في الجدول
watermarktable
.Select * from watermarktable
إخراج:
TableName | WatermarkValue ---------- | -------------- data_source_table | 2010-01-01 00:00:00.000
أنشئ إجراء مخزن في قاعدة بياناتك بـSQL
شغل الأمر التالي لإنشاء إجراء مخزن في قاعدة بياناتك في SQL:
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
إنشاء مصدرًا للبيانات
حدد متغيراً لاسم مجموعة الموارد الذي ستستخدمه لاحقاً في أوامر PowerShell. انسخ الأمر النصي التالي إلى PowerShell، حدد اسماً لمجموعة موارد Azure وأحطها بعلامات اقتباس مزدوجة، ثم شغل الأمر. مثال على ذلك
"adfrg"
.$resourceGroupName = "ADFTutorialResourceGroup";
إذا كانت مجموعة الموارد موجودة بالفعل، فقد لا ترغب في الكتابة فوقها. عين قيمة مختلفة
$resourceGroupName
للمتغير وشغل الأمر مرة أخرى.حدد متغير لموقع بيانات المصنع.
$location = "East US"
لإنشاء مجموعة موارد Azure، شغل الأمر التالي:
New-AzResourceGroup $resourceGroupName $location
إذا كانت مجموعة الموارد موجودة بالفعل، فقد لا ترغب في الكتابة فوقها. عين قيمة مختلفة
$resourceGroupName
للمتغير وشغل الأمر مرة أخرى.حدد متغير لموقع بيانات المصنع.
هام
حدث اسم مصنع البيانات باسم عمومي فريد. مثال على ذلك هو ADFTutorialFactorySP1127.
$dataFactoryName = "ADFIncCopyTutorialFactory";
لإنشاء بيانات المصنع شغل التالي Set-AzDataFactoryV2 cmdlet:
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
لاحظ النقاط التالية:
يجب أن يكون اسم مصنع البيانات مميزًا وعامًا. إذا استلمت الخطأ التالي، فغير الاسم وحاول مرة أخرى:
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
لإنشاء مثيلات لبيانات المصنع، يجب أن يكون حساب المستخدم الذي تستخدمه لتسجيل الدخول إلى Azure مشتركاً في Azure أو له دول المالك أو مسؤول الاشتراك في Azure.
للحصول على قائمة بمناطق Azure التي يتوفر فيها حالياً Data Factory، حدد المناطق التي تهمك في الصفحة التالية، ثم قم بتوسيع "Analytics" لتحديد موقع Data Factory: "Products available by region". يمكن أن تكون مخازن البيانات (Storage، SQL Database، Azure SQL Managed Instance، وما إلى ذلك) وحسابات (Azure HDInsight وما إلى ذلك) التي يستخدمها data factory في مناطق أخرى.
إنشاء linked services
إنشاء خدمات مرتبطة في مصنع بيانات لربط مخازن بياناتك وحساب الخدمات إلى مصنع البيانات. في هذا القسم، يمكنك إنشاء خدمات مرتبطة بحساب تخزينك وقاعدة بيانات SQL.
أنشئ خدمة مرتبطة للتخزين
أنشئ ملف JSON باسم AzureStorageLinkedService.json في المجلد C:\ADF، بالمحتويات التالية. (أنشئ المجلد ADF إذا لم يكن موجوداً بالفعل.) استبدل
<accountName>
و<accountKey>
باسم ومفتاح حساب تخزينك قبل حفظ الملف.{ "name": "AzureStorageLinkedService", "properties": { "type": "AzureStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" } } }
في PowerShell، بدل إلى مجلد ADF.
شغل cmdlet Set-AzDataFactoryV2LinkedService لإنشاء الخدمة المرتبطة: AzureStorageLinkedService. في المثال التالي، يمكنك تمرير قيم ResourceGroupName واسم معلمات DataFactory:
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
فيما يلي ناتج العينة:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureStorageLinkedService
أنشئ خدمة مرتبطة Azure SQL Database
أنشئ ملف JSON باسم AzureSQLDatabaseLinkedService.json في ملف C:\ADF بالمحتويات التالية. (أنشئ مجلد ADF إذا لم يكن موجوداً بالفعل.) استبدل < الخادم >و< قاعدة البيانات ومعرف المستخدم >و<><كلمة المرور باسم الخادم > وقاعدة البيانات ومعرف المستخدم وكلمة المرور قبل حفظ الملف.
{ "name": "AzureSQLDatabaseLinkedService", "properties": { "type": "AzureSqlDatabase", "typeProperties": { "connectionString": "Server = tcp:<server>.database.windows.net,1433;Initial Catalog=<database>; Persist Security Info=False; User ID=<user> ; Password=<password>; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False; Connection Timeout = 30;" } } }
في PowerShell، بدل إلى مجلد ADF.
شغل cmdlet Set-AzDataFactoryV2LinkedService لإنشاء الخدمة المرتبطة: AzureSqlDatabaseLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureSQLDatabaseLinkedService" -File ".\AzureSQLDatabaseLinkedService.json"
فيما يلي ناتج العينة:
LinkedServiceName : AzureSQLDatabaseLinkedService ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDatabaseLinkedService ProvisioningState :
إنشاء datasets
في هذه الخطوة، يمكنك إنشاء مجموعات بيانات تمثل مصدر ووجهة البيانات.
قم بإنشاء مجموعة بيانات المصدر
أنشئ ملف JSON باسم SourceDataset.json في نفس الملف بالمحتويات التالية:
{ "name": "SourceDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "data_source_table" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }
في هذا البرنامج التعليمي، استخدم الجدول الذي يحمل اسم data_source_table. استبدله إذا كنت تستخدم جدولاً باسم مختلف.
شغل Set-AzDataFactoryV2Dataset cmdlet لإنشاء مجموعة بيانات SourceDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SourceDataset" -File ".\SourceDataset.json"
إليك ناتج تشغيل عينة cmdlet:
DatasetName : SourceDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
أنشئ مجموعة بيانات المورد
أنشئ ملف JSON باسم SinkDataset.json في نفس الملف بالمحتويات التالية:
{ "name": "SinkDataset", "properties": { "type": "AzureBlob", "typeProperties": { "folderPath": "adftutorial/incrementalcopy", "fileName": "@CONCAT('Incremental-', pipeline().RunId, '.txt')", "format": { "type": "TextFormat" } }, "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" } } }
هام
تفترض هذه القصاصة البرمجية امتلاكك حاوية blob المسماة
adftutorial
في blob storage. أنشئ الحاوية إذا لم تكن موجودة، أو استخدم اسم حاوية موجودة. يتم إنشاء مجلد الناتجincrementalcopy
تلقائياً إذا لم يكن موجوداً في الحاوية. في هذا البرنامج التعليمي، يتم إنشاء اسم الملف ديناميكياً من خلال التعبير@CONCAT('Incremental-', pipeline().RunId, '.txt')
.شغل Set-AzDataFactoryV2Dataset cmdlet لإنشاء مجموعة بيانات SinkDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SinkDataset" -File ".\SinkDataset.json"
إليك ناتج تشغيل عينة cmdlet:
DatasetName : SinkDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobDataset
أنشئ مجموعة بيانات لهذه العلامة المائية
في هذه الخطوة، يمكنك إنشاء مجموعة بيانات لتخزين قيمة علامة مائية عالية.
أنشئ ملف JSON باسم WatermarkDataset.json في نفس الملف بالمحتويات التالية:
{ "name": " WatermarkDataset ", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "watermarktable" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }
شغل Set-AzDataFactoryV2Dataset cmdlet لإنشاء مجموعة بيانات WatermarkDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "WatermarkDataset" -File ".\WatermarkDataset.json"
إليك ناتج تشغيل عينة cmdlet:
DatasetName : WatermarkDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية
في هذا البرنامج التعليمي، يمكنك إنشاء البنية الأساسية مع اثنين من أنشطة البحث، نشاط نسخ واحد، ونشاط StoredProcedure واحد مسلسلاً في البنية الأساسية.
أنشئ ملف JSON باسم IncrementalCopyPipeline.json في نفس الملف بالمحتويات التالية:
{ "name": "IncrementalCopyPipeline", "properties": { "activities": [ { "name": "LookupOldWaterMarkActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from watermarktable" }, "dataset": { "referenceName": "WatermarkDataset", "type": "DatasetReference" } } }, { "name": "LookupNewWaterMarkActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select MAX(LastModifytime) as NewWatermarkvalue from data_source_table" }, "dataset": { "referenceName": "SourceDataset", "type": "DatasetReference" } } }, { "name": "IncrementalCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from data_source_table where LastModifytime > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and LastModifytime <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'" }, "sink": { "type": "BlobSink" } }, "dependsOn": [ { "activity": "LookupNewWaterMarkActivity", "dependencyConditions": [ "Succeeded" ] }, { "activity": "LookupOldWaterMarkActivity", "dependencyConditions": [ "Succeeded" ] } ], "inputs": [ { "referenceName": "SourceDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "SinkDataset", "type": "DatasetReference" } ] }, { "name": "StoredProceduretoWriteWatermarkActivity", "type": "SqlServerStoredProcedure", "typeProperties": { "storedProcedureName": "usp_write_watermark", "storedProcedureParameters": { "LastModifiedtime": {"value": "@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}", "type": "datetime" }, "TableName": { "value":"@{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}", "type":"String"} } }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" }, "dependsOn": [ { "activity": "IncrementalCopyActivity", "dependencyConditions": [ "Succeeded" ] } ] } ] } }
شغل Set-AzDataFactoryV2Pipeline cmdlet لإنشاء البنية الأساسية IncrementalCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "IncrementalCopyPipeline" -File ".\IncrementalCopyPipeline.json"
فيما يلي ناتج العينة:
PipelineName : IncrementalCopyPipeline ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Activities : {LookupOldWaterMarkActivity, LookupNewWaterMarkActivity, IncrementalCopyActivity, StoredProceduretoWriteWatermarkActivity} Parameters :
قم بتشغيل البنية الأساسية
شغل المسار IncrementalCopyPipeline باستخدام Cmdlet Invoke-AzDataFactoryV2Pipeline. استبدل placeholders بمجموعة الموارد الخاصة بك واسم بيانات المصنع.
$RunId = Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroupName $resourceGroupName -dataFactoryName $dataFactoryName
تحقق من حالة المسار عن طريق تشغيل cmdlet Get-AzDataFactoryV2ActivityRun حتى تشاهد نجاح تشغيل جميع الأنشطة. استبدال placeholders بوقتك المناسب للمعلمات RunStartedAfter وRunStartedBefore. في هذا البرنامج التعليمي، يمكنك استخدام -RunStartedAfter "2017/09/14"و-RunStartedBefore "2017/09/15".
Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $RunId -RunStartedAfter "<start time>" -RunStartedBefore "<end time>"
فيما يلي ناتج العينة:
ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupNewWaterMarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {NewWatermarkvalue} LinkedServiceName : ActivityRunStart : 9/14/2017 7:42:42 AM ActivityRunEnd : 9/14/2017 7:42:50 AM DurationInMs : 7777 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupOldWaterMarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {TableName, WatermarkValue} LinkedServiceName : ActivityRunStart : 9/14/2017 7:42:42 AM ActivityRunEnd : 9/14/2017 7:43:07 AM DurationInMs : 25437 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : IncrementalCopyActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, sink} Output : {dataRead, dataWritten, rowsCopied, copyDuration...} LinkedServiceName : ActivityRunStart : 9/14/2017 7:43:10 AM ActivityRunEnd : 9/14/2017 7:43:29 AM DurationInMs : 19769 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : StoredProceduretoWriteWatermarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {storedProcedureName, storedProcedureParameters} Output : {} LinkedServiceName : ActivityRunStart : 9/14/2017 7:43:32 AM ActivityRunEnd : 9/14/2017 7:43:47 AM DurationInMs : 14467 Status : Succeeded Error : {errorCode, message, failureType, target}
مراجعة النتائج
في blob storage (مخزن sink) تستطيع مشاهدة البيانات المنسوخة إلى الملف المعرف في SinkDataset. في البرنامج التعليمي الحالي، اسم الملف هو
Incremental- d4bf3ce2-5d60-43f3-9318-923155f61037.txt
. افتح الملف، ويمكنك مشاهدة السجلات في الملف وهي نفس البيانات في قاعدة بيانات SQL.1,aaaa,2017-09-01 00:56:00.0000000 2,bbbb,2017-09-02 05:23:00.0000000 3,cccc,2017-09-03 02:36:00.0000000 4,dddd,2017-09-04 03:21:00.0000000 5,eeee,2017-09-05 08:06:00.0000000
تحقق من أحدث قيمة من
watermarktable
. يمكنك ملاحظة تحديث قيمة العلامة المائية.Select * from watermarktable
فيما يلي ناتج العينة:
TableName WatermarkValue data_source_table 2017-09-05 (8:06:00.000)
أدرج البيانات في مخزن مصدر البيانات للتحقق من تحميل بيانات دلتا
أدخل بيانات جديدة في قاعدة بيانات SQL (مخزن مصدر البيانات).
INSERT INTO data_source_table VALUES (6, 'newdata','9/6/2017 2:23:00 AM') INSERT INTO data_source_table VALUES (7, 'newdata','9/7/2017 9:01:00 AM')
البيانات المحدثة في قاعدة بيانات SQL هي:
PersonID | Name | LastModifytime -------- | ---- | -------------- 1 | aaaa | 2017-09-01 00:56:00.000 2 | bbbb | 2017-09-02 05:23:00.000 3 | cccc | 2017-09-03 02:36:00.000 4 | dddd | 2017-09-04 03:21:00.000 5 | eeee | 2017-09-05 08:06:00.000 6 | newdata | 2017-09-06 02:23:00.000 7 | newdata | 2017-09-07 09:01:00.000
شغل المسار IncrementalCopyPipeline مرة أخرى مستخدماً Cmdlet Invoke-AzDataFactoryV2Pipeline. استبدل placeholders بمجموعة الموارد الخاصة بك واسم بيانات المصنع.
$RunId = Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroupName $resourceGroupName -dataFactoryName $dataFactoryName
تحقق من حالة المسار عن طريق تشغيل cmdlet Get-AzDataFactoryV2ActivityRun حتى تشاهد نجاح تشغيل جميع الأنشطة. استبدال placeholders بوقتك المناسب للمعلمات RunStartedAfter وRunStartedBefore. في هذا البرنامج التعليمي، يمكنك استخدام -RunStartedAfter "2017/09/14"و-RunStartedBefore "2017/09/15".
Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $RunId -RunStartedAfter "<start time>" -RunStartedBefore "<end time>"
فيما يلي ناتج العينة:
ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupNewWaterMarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {NewWatermarkvalue} LinkedServiceName : ActivityRunStart : 9/14/2017 8:52:26 AM ActivityRunEnd : 9/14/2017 8:52:58 AM DurationInMs : 31758 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupOldWaterMarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {TableName, WatermarkValue} LinkedServiceName : ActivityRunStart : 9/14/2017 8:52:26 AM ActivityRunEnd : 9/14/2017 8:52:52 AM DurationInMs : 25497 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : IncrementalCopyActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, sink} Output : {dataRead, dataWritten, rowsCopied, copyDuration...} LinkedServiceName : ActivityRunStart : 9/14/2017 8:53:00 AM ActivityRunEnd : 9/14/2017 8:53:20 AM DurationInMs : 20194 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : StoredProceduretoWriteWatermarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {storedProcedureName, storedProcedureParameters} Output : {} LinkedServiceName : ActivityRunStart : 9/14/2017 8:53:23 AM ActivityRunEnd : 9/14/2017 8:53:41 AM DurationInMs : 18502 Status : Succeeded Error : {errorCode, message, failureType, target}
في blob storage، تستطيع رؤية إنشاء ملف أخر. في هذا البرنامج التعليمي، اسم الملف الجديد هو
Incremental-2fc90ab8-d42c-4583-aa64-755dba9925d7.txt
. افتح هذا الملف، وسترى صفين من السجلات.تحقق من أحدث قيمة من
watermarktable
. يمكنك ملاحظة تحديث قيمة العلامة المائية.Select * from watermarktable
عينة الناتج:
TableName WatermarkValue data_source_table 2017-09-07 09:01:00.000
المحتوى ذو الصلة
نفّذت الخطوات التالية في هذا البرنامج التعليمي:
- أعد مخزن بيانات لتخزين قيمة العلامة المائية.
- إنشاء data factory.
- أنشئ الخدمة ذات الصلة.
- أنشئ مجموعات بيانات المورد والمصدر والعلامة المائية.
- إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية.
- تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
- مراقبة تشغيل المسار.
في هذا البرنامج التعليمي، مسار البيانات المنسوخة من جدول واحد في قاعدة بيانات Azure SQL إلى Blob storage. انتقل إلى البرنامج التعليمي التالي لمعرفة كيفية نسخ البيانات من جداول متعددة في قاعدة بيانات SQL Server إلى قاعدة بيانات SQL.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ