البرنامج التعليمي: نسخ البيانات من قاعدة بيانات SQL Server إلى تخزين Azure Blob

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

في هذا البرنامج التعليمي، يمكنك استخدام Azure PowerShell لإنشاء بنية أساسية لمصنع بيانات والذي يقوم بنسخ البيانات من قاعدة بيانات SQL Server لتخزين Azure Blob. يمكنك إنشاء واستخدام وقت تشغيل تكامل ذاتي الاستضافة، والذي ينقل البيانات بين مخازن البيانات المحلية والسحابية.

إشعار

لا توفر هذه المقالة مقدمة مفصلة إلى خدمة Data Factory. للحصول على المزيد من المعلومات، راجع مقدمة إلى Azure Data Factory .

في هذا البرنامج التعليمي، يمكنك تنفيذ الخطوات التالية:

  • إنشاء data factory.
  • إنشاء وقت تشغيل تكامل الاستضافة الذاتية.
  • إنشاء خدمات مرتبطة على SQL Server ومساحة تخزين Azure.
  • يمكنك إنشاء مجموعات بيانات SQL Server ومخزن البيانات الثنائية كبيرة الحجم في Azure.
  • كيفية إنشاء مسار من خلال نشاط النسخ لنقل البيانات.
  • ابدأ تشغيل تدفق.
  • مراقبة تشغيل المسار.

المتطلبات الأساسية

اشتراك Azure

في حال لم يكن لديك اشتراك على Azure، ينبغي إنشاء حساب مجاني قبل البدء.

أدوار Azure

لإنشاء مثيلات مصنع البيانات، يجب تعيين دور Contributor أو Owner لحساب المستخدم الذي تستخدمه لتسجيل الدخول إلى Azure أو يجب أن يكون administrator في اشتراك Azure.

لعرض الأذونات التي لديك في الاشتراك، انتقل إلى مدخل Microsoft Azure، وحدد اسم المستخدم في الزاوية العلوية اليمنى، ثم حدد Permissions. إذا كان لديك حق الوصول إلى اشتراكات متعددة، فحدّد الاشتراك المناسب. للحصول على نماذج من الإرشادات حول إضافة مستخدم إلى دور، راجع مقالة تعيين أدوار Azure باستخدام مدخل Microsoft Azure.

SQL Server 2014، و2016، و2017

في هذا البرنامج التعليمي، يمكنك استخدام قاعدة بيانات SQL Server كمخزن بيانات المصدر. البنية الأساسية في مصنع البيانات التي تقوم بإنشائها في هذا البرنامج التعليمي تقوم بنسخ البيانات من قاعدة البيانات هذه SQL Server (المصدر) لتخزين Azure Blob (sink). ثم قم بإنشاء جدول اسمه emp في قاعدة بيانات SQL Server ثم إدراج اثنين من إدخالات نموذج في الجدول.

  1. بدء تشغيل SQL Server Management Studio. إذا لم يكن مثبتا بالفعل على جهازك، فاذهب إلى تنزيل SQL Server Management Studio.

  2. الاتصال إلى مثيل SQL Server باستخدام بيانات الاعتماد الخاصة بك.

  3. أنشئ نموذج قاعدة البيانات. في طريقة العرض الشجرية، انقر بزر الماوس الأيمن فوق قواعد البيانات، ثم حدد قاعدة بيانات جديدة.

  4. في نافذة قاعدة بيانات جديدة أدخِل اسمًا لقاعدة البيانات، ثم حدد موافق.

  5. لإنشاء جدول emp وإدراج بعض بيانات النموذج فيه، شغّل البرنامج النصي التالي للاستعلام مقابل قاعدة البيانات. في طريقة العرض الشجرية، انقر بزر الماوس الأيمن فوق قاعدة البيانات التي قمت بإنشائها، ثم حدد New Query.

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe')
    INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe')
    GO
    

حساب Azure Storage

في هذا البرنامج التعليمي، يمكنك استخدام حساب تخزين Azure للأغراض العامة (على وجه التحديد، تخزين Azure Blob) كمخزن بيانات الوجهة/الحوض. إذا لم يكن لديك حساب مساحة تخزين Azure للأغراض العامة، يمكنك مراجعة إنشاء حساب مساحة تخزين. البنية الأساسية في مصنع البيانات التي تقوم بإنشائها في هذا البرنامج التعليمي تقوم بنسخ البيانات من قاعدة البيانات هذه SQL Server (المصدر) لتخزين Azure Blob (sink).

الحصول على اسم حساب التخزين ومفتاح الحساب

يمكنك استخدام اسم ومفتاح حساب التخزين Azure في هذا البرنامج التعليمي. احصل على اسم ومفتاح حساب التخزين الخاص بك عن طريق القيام بما يلي:

  1. سجل الدخول إلى مدخل Microsoft Azure باستخدام اسم المستخدم وكلمة المرور لـ Azure.

  2. في الجزء الأيمن، حدد More services، وقم بالتصفية باستخدام Storage ثم حدد Storage accounts.

    البحث عن حساب تخزين

  3. في قائمة حسابات التخزين، قم بتصفية حساب التخزين (إذا لزم الأمر)، ثم حدد حساب التخزين.

  4. في نافذة Storage account حدد Access keys.

  5. في المربعات Storage account name وkey1، انسخ القيم ثم الصقها في Notepad أو محرر آخر لاستخدامها لاحقًا في البرنامج التعليمي.

إنشاء حاوية باسم adftutorial

في هذا القسم، يمكنك إنشاء حاوية blob المسماة adftutorial في تخزين Azure Blob الخاص بك.

  1. في نافذة Storage account قم بالتبديل إلى Overview، ثم حدد Blobs.

    حدد خيار «Blobs»

  2. في نافذة Blob service حدد Container.

  3. في نافذة New container في المربع Name أدخل adftutorial، ثم حدد OK.

    أدخل اسم الحاوية

  4. في قائمة الحاويات، حدد adftutorial.

  5. إبقاء نافذة container لـ adftutorial مفتوحة. يمكنك استخدامه التحقق من الإخراج في نهاية البرنامج التعليمي. يعمل Data Factory تلقائيًا على إنشاء مجلد الناتج في هذه الحاوية، لذلك لا تحتاج إلى إنشاء مجلد.

Windows PowerShell

تثبيت برنامج Azure PowerShell

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

قم بتثبيت أحدث إصدار من Azure PowerShell إذا لم يكن لديك بالفعل على جهازك. اتبع الإرشادات الموجودة في كيفية تثبيت وتكوين Azure PowerShell.

تسجيل الدخول إلى PowerShell

  1. بدء PowerShell على جهازك، ويبقيه مفتوحا من خلال اكمال هذا البرنامج التعليمي للبدء السريع. إذا أغلقته وأعدت فتحه، فستحتاج إلى تشغيل الأوامر مرة أخرى.

  2. قم بتشغيل الأمر التالي وأدخل اسم المستخدم وكلمة المرور التي تستخدمها لتسجيل الدخول إلى مدخل Microsoft Azure:

    Connect-AzAccount
    
  3. إذا كان لديك العديد من اشتراكات Azure، فقم بتشغيل الأمر التالي لتحديد الاشتراك الذي تريد العمل معه. استبدل SubscriptionId بـ ID الخاص باشتراك Azure الخاص بك:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

إنشاء مصدرًا للبيانات

  1. حدد متغيرا لاسم مجموعة الموارد الذي ستستخدمه لاحقا في أوامر PowerShell. نسخ الأمر التالي إلى PowerShell، حدد اسماً لمجموعة موارد Azure (محاطة بعلامات اقتباس مزدوجة؛ على سبيل المثال "adfrg")، ثم قم بتشغيل الأمر.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. لإنشاء مجموعة موارد Azure، شغل الأمر التالي:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    إذا كانت مجموعة الموارد موجودة بالفعل، فقد لا ترغب في الكتابة فوقها. تعيين قيمة مختلفة $resourceGroupName للمتغير وتشغيل الأمر مرة أخرى.

  3. تعريف متغير لاسم مصنع البيانات التي يمكنك استخدامها في أوامر PowerShell لاحقا. يجب أن يبدأ الاسم بحرف أو رقم، ويمكن أن يحتوي على أحرف وأرقام وحرف شرطة (-) فقط.

    هام

    تحديث اسم مصنع البيانات باسم فريد عمومي. مثال على ذلك هو ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. تحديد متغير لموقع مصنع البيانات:

    $location = "East US"
    
  5. لإنشاء مصنع البيانات قم بتشغيل Set-AzDataFactoryV2 cmdlet التالية:

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
    

إشعار

  • يجب أن يكون اسم مصنع البيانات مميزًا وعامًا. في حال تلقيت الخطأ التالي، تغيير الاسم، ثم حاول مرة أخرى.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • لإنشاء مثيلات مصنع البيانات، يجب تعيين دور Contributor أو Owner لحساب المستخدم الذي تستخدمه لتسجيل الدخول إلى Azure أو يجب أن يكون administrator في اشتراك Azure.
  • للحصول على قائمة بمناطق Azure التي يتوفر فيها حالياً Data Factory، حدد المناطق التي تهمك في الصفحة التالية، ثم قم بتوسيع "Analytics" لتحديد موقع Data Factory: "Products available by region". يمكن أن تكون مخازن البيانات (Azure Storage وAzure SQL Database وما إلى ذلك) والحسابات (Azure HDInsight وما إلى ذلك) التي يستخدمها مصنع البيانات في مناطق أخرى.

إنشاء وقت تشغيل تكامل مستضاف ذاتيا

في هذا القسم، يمكنك إنشاء وقت تشغيل تكامل ذاتي الاستضافة وربطه بجهاز محلي مع قاعدة بيانات SQL Server. يعد وقت تشغيل تكامل الاستضافة الذاتية المكون الذي ينسخ البيانات من قاعدة بيانات SQL Server على الجهاز الخاص بك إلى مخزن Azure Blob.

  1. إنشاء متغير لاسم وقت تشغيل التكامل. استخدم اسماً فريدا، ولاحظ الاسم. يمكن استخدامه في وقت لاحق في هذا البرنامج التعليمي.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. إنشاء وقت تشغيل تكامل الاستضافة الذاتية.

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    فيما يلي ناتج العينة:

    Name              : ADFTutorialIR
    Type              : SelfHosted
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Description       : selfhosted IR description
    Id                : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  3. لاسترداد حالة وقت تشغيل التكامل الذي تم إنشاؤه، شغّل الأمر التالي:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    فيما يلي ناتج العينة:

    State                     : NeedRegistration
    Version                   :
    CreateTime                : 9/10/2019 3:24:09 AM
    AutoUpdate                : On
    ScheduledUpdateDate       :
    UpdateDelayOffset         :
    LocalTimeZoneOffset       :
    InternalChannelEncryption :
    Capabilities              : {}
    ServiceUrls               : {eu.frontend.clouddatahub.net}
    Nodes                     : {}
    Links                     : {}
    Name                      : <Integration Runtime name>
    Type                      : SelfHosted
    ResourceGroupName         : <resourceGroup name>
    DataFactoryName           : <dataFactory name>
    Description               : selfhosted IR description
    Id                        : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  4. لاسترداد مفاتيح المصادقة لتسجيل وقت تشغيل التكامل المستضاف ذاتيا مع خدمة Data Factory في الخدمة السحابية، قم بتشغيل الأمر التالي. انسخ أحد المفاتيح (باستثناء علامات الاقتباس المزدوجة) المُستخدمة لتسجيل وقت تشغيل تكامل الاستضافة الذاتية الذي قمت بتثبيته على جهازك في الخطوات التالية.

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    فيما يلي ناتج العينة:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

ثبت أداة وقت تشغيل التكامل

  1. تحميل Azure Data Factory Integration Runtime على جهاز Windows محلي، ومن ثم قم بتشغيل التثبيت.

  2. في معالج Welcome to Microsoft Integration Runtime Setup حدد Next.

  3. في نافذة End-User License Agreement اقبل الشروط واتفاقية الترخيص، وحدد Next.

  4. في الصفحة Destination Folder، حدد Next.

  5. في النافذة Ready to install Microsoft Integration Runtime، حدد Install.

  6. في صفحة Completed the Microsoft Integration Runtime Setup، حدد Finish.

  7. في نافذة Register Integration Runtime (Self-hosted) الصق المفتاح الذي قمت بحفظه في المقطع السابق، وحدد Register.

    سجل وقت تشغيل التكامل

  8. في نافذة New Integration Runtime (Self-hosted) Node حدد Finish.

    نافذة New Integration Runtime Node

  9. ستظهر الرسالة التالية عند تسجيل وقت تشغيل تكامل الاستضافة الذاتية بنجاح:

    تم التسجيل بنجاح

  10. في صفحة Register Integration Runtime (Self-hosted) حدد Launch Configuration Manager.

  11. عند توصيل العقدة بالخدمة السحابية، سترى الصفحة التالية:

    العقدة متصلة

  12. اختبر الاتصال بقاعدة بيانات SQL Server الخاصة بك عن طريق القيام بما يلي:

    أ. في نافذة Configuration Manager، انتقل إلى علامة التبويب Diagnostics.

    ب. في المربع Data source type حدد SqlServer.

    جـ. أدخل اسم الخادم.

    د. أدخل اسم قاعدة البيانات.

    هـ. حدد وضع المصادقة.

    و. أدخل اسم المستخدم.

    ز. أدخل كلمة المرور المرتبطة باسم المستخدم.

    ح. للتأكد من أن وقت تشغيل التكامل يمكنه الاتصال بـ SQL Server، حدد Test.
     نجح الاتصال

    إذا كان الاتصال ناجحاً، يتم عرض رمز علامة اختيار خضراء. وإلا، ستتلقى رسالة خطأ مقترنة بالفشل. أصلح جميع المشكلات، وتأكد أن وقت تشغيل التكامل يستطيع الاتصال بـ SQL Server الخاص بك.

    لاحظ جميع القيم السابقة لاستخدامها لاحقا في هذا البرنامج التعليمي.

إنشاء linked services

لربط مخازن البيانات وخدمات الحوسبة بمصنع البيانات، قم بإنشاء خدمات مرتبطة في مصنع البيانات. في هذا البرنامج التعليمي، يمكنك ربط حساب التخزين Azure الخاص بك والمثيل SQL Server إلى مخزن البيانات. تحتوي الخدمات المرتبطة على معلومات الاتصال التي تستخدمها خدمة Data Factory في وقت التشغيل للاتصال بهم.

إنشاء خدمة مرتبطة بـAzure Storage (وجهة/بالوعة)

في هذه الخطوة، يمكنك ربط حساب تخزين Azure الخاص بك بمصنع البيانات.

  1. أنشئ ملف JSON باسم AzureSqlDWLinkedService.json في المجلد C:\ADFv2Tutorial، بالتعليمات البرمجية التالية. إذا لم يكن المجلد ADFv2Tutorial موجوداً بالفعل، قم بإنشائه.

    هام

    قبل حفظ الملف، استبدل < اسم الحساب> و < مفتاح الحساب > باسم ومفتاح حساب تخزين Azure الخاص بك. لقد لاحظتها في قسم Prerequisites.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. في PowerShell، قم بالتبديل إلى المجلد C:\ADFv2Tutorial.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. لإنشاء الخدمة المرتبطة، AzureStorageLinkedService تشغيل Set-AzDataFactoryV2LinkedService cmdlet التالية:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    هنا هو إخراج العينة:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    إذا تلقيت خطأ "file not found" فتأكد من وجود الملف عن طريق تشغيل dir الأمر. إذا كان امتداد اسم الملف .txt (على سبيل المثال، AzureStorageLinkedService.json.txt)، فقم بإزالته ثم قم بتشغيل أمر الـ PowerShell مرة أخرى.

إنشاء خدمة مرتبطة SQL Server وتشفيرها (مصدر)

في هذه الخطوة، يمكنك ربط مثيل SQL Server بمصنع البيانات.

  1. أنشئ ملف JSON باسم AzureSqlDWLinkedService.json في المجلد C:\ADFv2Tutorial، بالتعليمات البرمجية التالية:

    هام

    حدد المقطع الذي يستند إلى المصادقة التي تستخدمها للاتصال بـ SQL Server.

    استخدام مصادقة SQL (sa):

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>"
            },
            "connectVia":{  
                "referenceName":"<integration runtime name> ",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    استخدام مصادقة Windows:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>",
                "userName":"<username> or <domain>\\<username>",
                "password":{  
                    "type":"SecureString",
                    "value":"<password>"
                }
            },
            "connectVia":{  
                "referenceName":"<integration runtime name>",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    هام

    • حدد المقطع الذي يستند إلى المصادقة التي تستخدمها للاتصال بمثيل SQL Server.
    • استبدل < اسم وقت تشغيل التكامل > باسم وقت تشغيل التكامل.
    • قبل حفظ الملف، استبدل < اسم الخادم > و < اسم قاعدة بيانات > و < اسم المستخدم > و < كلمة مرور > مع قيم مثيل SQL Server.
    • إذا كنت بحاجة إلى استخدام شرطة مائلة للخلف (\) في حساب المستخدم الخاص بك أو اسم الخادم ، فقم بإدخال حرف الهروب (\) قبله. على سبيل المثال، استخدم نطاقي\\المستخدم خاصتي.
  2. لتشفير البيانات الحساسة (اسم المستخدم وكلمة المرور وما إلى ذلك)، قم بتشغيل New-AzDataFactoryV2LinkedServiceEncryptedCredential cmdlet.
    يضمن هذا التشفير تشفير بيانات الاعتماد باستخدام Data Protection Application Programming Interface (DPAPI). يتم تخزين بيانات الاعتماد المشفرة محلياً على عقدة وقت تشغيل التكامل المستضاف ذاتيا (الجهاز المحلي). يمكن إعادة توجيه حمولة الإخراج إلى ملف JSON آخر (في هذه الحالة، encryptedLinkedService.jsعلى)يحتوي على بيانات اعتماد مشفرة.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. تشغيل الأمر التالي الذي يقوم بإنشاء EncryptedSqlServerLinkedService:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

إنشاء datasets

في هذه الخطوة، يمكنك إنشاء مجموعات بيانات الإدخال والإخراج. وهي تمثل بيانات الإدخال والإخراج لعملية النسخ، التي تنسخ البيانات من قاعدة بيانات SQL Server إلى تخزين Azure Blob.

أنشئ مجموعة بيانات لـمصدر قاعدة بيانات SQL Server

في هذه الخطوة، يمكنك تعريف مجموعة بيانات تمثل البيانات في مثيل قاعدة البيانات SQL Server. مجموعة البيانات من نوع SqlServerTable. يشير إلى الخدمة المرتبطة SQL Server التي قمت بإنشائها في الخطوة السابقة. تحتوي الخدمة المرتبطة على معلومات الاتصال التي تستخدمها خدمة Data Factory للاتصال بمثيل SQL Server في وقت التشغيل. تحدد مجموعة البيانات هذا الجدول الخاص بـ SQL في قاعدة البيانات التي تحتوي على البيانات. في هذا البرنامج التعليمي، يحتوي الجدول emp على بيانات المصدر.

  1. أنشئ ملف JSON باسم AzureSqlDWLinkedService.json في المجلد C:\ADFv2Tutorial، بالتعليمات البرمجية التالية:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. لإنشاء مجموعة بيانات SqlServerDataset، قمم بتشغيل Set-AzDataFactoryV2Dataset cmdlet.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    فيما يلي ناتج العينة:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

إنشاء مجموعة بيانات لتخزين Azure Blob (بالوعة)

في هذه الخطوة، يمكنك تعريف مجموعة بيانات والتي تمثل البيانات التي سيتم نسخها إلى تخزين Azure Blob. مجموعة البيانات من النوع AzureBlob. وهما تشيران إلى الخدمة المرتبطة Azure Storage التي قمت بإنشائها في البرنامج التعليمي السابق.

تحتوي الخدمة المرتبطة على معلومات الاتصال التي يستخدمها مصنع البيانات في وقت التشغيل للاتصال بحساب تخزين Azure. تحدد مجموعة البيانات هذا المجلد الموجود في مخزن Azure الذي يتم نسخ البيانات إليه من قاعدة بيانات SQL Server. في هذا البرنامج التعليمي، المجلد هو adftutorial/ fromonprem،حيث adftutorial هو حاوية fromonprem النقطة والمجلد.

  1. أنشئ ملف JSON باسم AzureBlobDataset.json في المجلد C:\ADFv2Tutorial، بالتعليمات البرمجية التالية:

    {  
        "name":"AzureBlobDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"AzureStorageLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"DelimitedText",
            "typeProperties":{  
                "location":{  
                    "type":"AzureBlobStorageLocation",
                    "folderPath":"fromonprem",
                    "container":"adftutorial"
                },
                "columnDelimiter":",",
                "escapeChar":"\\",
                "quoteChar":"\""
            },
            "schema":[  
    
            ]
        },
        "type":"Microsoft.DataFactory/factories/datasets"
    }
    
  2. لإنشاء dataset AzureBlobDataset، قمم بتشغيل Set-AzDataFactoryV2Dataset cmdlet.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    فيما يلي ناتج العينة:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية

في هذه الخطوة، يمكنك إنشاء بنية أساسية بنشاط نسخ. يستخدم نشاط النسخ SqlServerDataset كـمجموعة بيانات الإدخال وAzureBlobDataset كمجموعة بيانات الإخراج. يتم تعيين نوع المصدر إلى SqlSource ويتم تعيين نوع الحوض إلى BlobSink.

  1. أنشئ ملف JSON باسم SqlServerToBlobPipeline.json في المجلد C:\ADFv2Tutorial، بالتعليمات البرمجية التالية:

    {  
        "name":"SqlServerToBlobPipeline",
        "properties":{  
            "activities":[  
                {  
                    "name":"CopySqlServerToAzureBlobActivity",
                    "type":"Copy",
                    "dependsOn":[  
    
                    ],
                    "policy":{  
                        "timeout":"7.00:00:00",
                        "retry":0,
                        "retryIntervalInSeconds":30,
                        "secureOutput":false,
                        "secureInput":false
                    },
                    "userProperties":[  
    
                    ],
                    "typeProperties":{  
                        "source":{  
                            "type":"SqlServerSource"
                        },
                        "sink":{  
                            "type":"DelimitedTextSink",
                            "storeSettings":{  
                                "type":"AzureBlobStorageWriteSettings"
                            },
                            "formatSettings":{  
                                "type":"DelimitedTextWriteSettings",
                                "quoteAllText":true,
                                "fileExtension":".txt"
                            }
                        },
                        "enableStaging":false
                    },
                    "inputs":[  
                        {  
                            "referenceName":"SqlServerDataset",
                            "type":"DatasetReference"
                        }
                    ],
                    "outputs":[  
                        {  
                            "referenceName":"AzureBlobDataset",
                            "type":"DatasetReference"
                        }
                    ]
                }
            ],
            "annotations":[  
    
            ]
        }
    }
    
  2. لإنشاء بنية أساسية SQLServerToBlobPipeline، قم بتشغيل Set-AzDataFactoryV2Pipeline cmdlet.

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    فيما يلي ناتج العينة:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

إنشاء تشغيل البنية الأساسية

بدء تشغيل بنية أساسية للبنية الأساسية SQLServerToBlobPipeline، والتقاط الـ ID لتشغيل البنية الأساسية للرصد المستقبلي.

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

راقب عملية تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية

  1. للتحقق باستمرار من حالة تشغيل البنية الأساسية SQLServerToBlobPipeline، قم بتشغيل البرنامج النصي التالي في PowerShell وطباعة النتيجة النهائية:

    while ($True) {
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    
        if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) {
            Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow"
            Start-Sleep -Seconds 30
        }
        else {
            Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow"
            $result
            break
        }
    }
    

    إليك ناتج تشغيل العينة:

    ResourceGroupName    : <resourceGroupName>
    DataFactoryName      : <dataFactoryName>
    ActivityRunId        : 24af7cf6-efca-4a95-931d-067c5c921c25
    ActivityName         : CopySqlServerToAzureBlobActivity
    ActivityType         : Copy
    PipelineRunId        : 7b538846-fd4e-409c-99ef-2475329f5729
    PipelineName         : SQLServerToBlobPipeline
    Input                : {source, sink, enableStaging}
    Output               : {dataRead, dataWritten, filesWritten, sourcePeakConnections...}
    LinkedServiceName    :
    ActivityRunStart     : 9/11/2019 7:10:37 AM
    ActivityRunEnd       : 9/11/2019 7:10:58 AM
    DurationInMs         : 21094
    Status               : Succeeded
    Error                : {errorCode, message, failureType, target}
    AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}
    
  2. يمكنك الحصول على الـ ID لتشغيل البنية الأساسية SQLServerToBlobPipeline والتحقق من نتائج تشغيل النشاط التفصيلية عن طريق تشغيل الأمر التالي:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    إليك ناتج تشغيل العينة:

    {  
        "dataRead":36,
        "dataWritten":32,
        "filesWritten":1,
        "sourcePeakConnections":1,
        "sinkPeakConnections":1,
        "rowsRead":2,
        "rowsCopied":2,
        "copyDuration":18,
        "throughput":0.01,
        "errors":[  
    
        ],
        "effectiveIntegrationRuntime":"ADFTutorialIR",
        "usedParallelCopies":1,
        "executionDetails":[  
            {  
                "source":{  
                    "type":"SqlServer"
                },
                "sink":{  
                    "type":"AzureBlobStorage",
                    "region":"CentralUS"
                },
                "status":"Succeeded",
                "start":"2019-09-11T07:10:38.2342905Z",
                "duration":18,
                "usedParallelCopies":1,
                "detailedDurations":{  
                    "queuingDuration":6,
                    "timeToFirstByte":0,
                    "transferDuration":5
                }
            }
        ]
    }
    

تحقق من الإخراج

ينشئ المسار تلقائيًا مجلد الناتج باسم fromonprem في حاوية البيانات الثنائية كبيرة الحجم adftutorial. تأكد من رؤية ملف dbo.emp.txt في مجلد الإخراج.

  1. في مدخل Microsoft Azure، في نافذة حاوية adftutorial حدد Refresh لرؤية مجلد الإخراج.

  2. حدد fromonprem في قائمة المجلدات.

  3. تأكد من رؤية ملف باسم dbo.emp.txt.

    ملف الإخراج

تقوم البنية الأساسية الموجودة في هذه العينة بنسخ البيانات من موقع إلى آخر في تخزين Azure Blob. لقد تعرفت على كيفية:

  • إنشاء data factory.
  • إنشاء وقت تشغيل تكامل الاستضافة الذاتية.
  • إنشاء خدمات مرتبطة على SQL Server ومساحة تخزين Azure.
  • يمكنك إنشاء مجموعات بيانات SQL Server ومخزن البيانات الثنائية كبيرة الحجم في Azure.
  • كيفية إنشاء مسار من خلال نشاط النسخ لنقل البيانات.
  • ابدأ تشغيل تدفق.
  • مراقبة تشغيل المسار.

للحصول على قائمة مخازن البيانات المدعومة بواسطة Data Factory، راجع مخازن البيانات المعتمدة.

للتعرف على نسخ البيانات بشكل مجمع من مصدر إلى وجهة، تقدم إلى البرنامج التعليمي التالي: