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

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

تلميح

Data Factory في Microsoft Fabric هو الجيل القادم من Azure Data Factory، مع بنية أبسط، وذكاء اصطناعي مدمج، وميزات جديدة. إذا كنت جديدا في تكامل البيانات، ابدأ مع Fabric Data Factory. يمكن لأعباء عمل ADF الحالية الترقية إلى Fabric للوصول إلى قدرات جديدة في علوم البيانات، والتحليلات اللحظية، والتقارير.

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

إشعار

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

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

  • إنشاء data factory.
  • إنشاء وقت تشغيل تكامل الاستضافة الذاتية.
  • Create SQL Server و تخزين Azure Linked services.
  • Create SQL Server و Azure Blob datasets.
  • كيفية إنشاء مسار من خلال نشاط النسخ لنقل البيانات.
  • ابدأ تشغيل تدفق.
  • مراقبة تشغيل المسار.

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

اشتراك Azure

قبل أن تبدأ، إذا لم يكن لديك اشتراك Azure بالفعل، أنشئ حسابا مجانيا.

أدوار Azure

لإنشاء مثيلات مصنع البيانات، يجب تعيين دور Azure c0Contributor أو Owner أو أن يكون administrator في اشتراك Azure.

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

SQL Server 2014 و2016 و2017

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

  1. ابدأ SQL Server Management Studio. إذا لم يكن مثبتا بالفعل على جهازك، اذهب إلى Download 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

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

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

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

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

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

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

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

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

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

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

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

  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، راجع Migrationate Azure PowerShell من AzureRM إلى Az.

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

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

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

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

    Connect-AzAccount
    
  3. إذا كان لديك عدة اشتراكات في Azure، شغل الأمر التالي لاختيار الاشتراك الذي تريد العمل به. استبدل SubscriptionId بمعرف اشتراكك 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.
    
  • لإنشاء ممثلات مصنع البيانات، يجب تعيين Azure دور contributor أو owner أو administrator لاشتراك Azure.
  • للحصول على قائمة بالمناطق Azure التي يتوفر فيها Data Factory حاليا، اختر المناطق التي تهمك في الصفحة التالية، ثم قم بتوسيع Analytics لتحديد موقع Data Factory: المنتجات المتاحة حسب المنطقة. مخازن البيانات (تخزين Azure، قاعدة بيانات Azure SQL، وهكذا) والحسابات (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. في مرحبا بكم في Microsoft Integration Runtime Setup، اختر Next.

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

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

  5. في نافذة Ready to install Microsoft Integration Runtime، اختر Install.

  6. في إكمال المعالج Microsoft Integration Runtime Setup، اختر Finish.

  7. في نافذة Integration Runtime Register (مستضاف ذاتيا)، الصق المفتاح الذي حفظته في القسم السابق، ثم اختر Register.

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

  8. في نافذة New Integration Runtime (العقدة المستضافة ذاتيا)، اختر Finish.

    نافذة عقدة Integration Runtime جديدة

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

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

  10. في نافذة Register Integration Runtime (مستضاف ذاتيا)، اختر 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 في وقت التشغيل للاتصال بهم.

Create an تخزين Azure linked service (destination/sink)

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

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

    هام

    قبل حفظ الملف، استبدل <accountName> و <accountKey> باسم ومفتاح حساب التخزين 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 authentication:

    {  
        "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 الخاصة بك.
    • استبدل < اسم وقت تشغيل التكامل > باسم وقت تشغيل التكامل.
    • قبل حفظ الملف، استبدل <servername>، <databasename>، <username>، و<password> بقيم نسخة 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
    

Create a dataset for Azure Blob storage (sink)

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

الخدمة المرتبطة تحتوي على معلومات الاتصال التي يستخدمها مصنع البيانات أثناء التشغيل للاتصال بحساب تخزين 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. في بوابة Azure، في نافذة الحاوية adftutorial، اختر Refresh لرؤية مجلد الإخراج.

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

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

    ملف الإخراج

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

  • إنشاء data factory.
  • إنشاء وقت تشغيل تكامل الاستضافة الذاتية.
  • Create SQL Server و تخزين Azure Linked services.
  • Create SQL Server و Azure Blob datasets.
  • كيفية إنشاء مسار من خلال نشاط النسخ لنقل البيانات.
  • ابدأ تشغيل تدفق.
  • مراقبة تشغيل المسار.

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

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