التشغيل السريع: إنشاء Azure Data Factory باستخدام قالب ARM
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
يصف هذا التشغيل السريع كيفية استخدام قالب Azure Resource Manager (قالب ARM) لإنشاء Azure data factory. البنية الأساسية التي تقوم بإنشائها في مصنع البيانات هذا تنسخ البيانات من مجلد إلى مجلد آخر في تخزين Azure blob. للحصول على برنامج تعليمي حول كيفية تحويل البيانات باستخدام Azure Data Factory، راجع البرنامج التعليمي: تحويل البيانات باستخدام Spark .
قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.
إشعار
لا تقدم هذه المقالة مقدمة مفصلة عن خدمة Data Factory. للحصول على مقدمة حول خدمة Azure Data Factory، راجع Introduction to Azure Data Factory.
إذا كانت بيئتك تلبي المتطلبات الأساسية وكنت معتاداً على استخدام قوالب "ARM"، فحدد زر "Deploy to Azure". سيتم فتح القالب في مدخل Azure.
المتطلبات الأساسية
اشتراك Azure
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إنشاء الملف
افتح محرر نصوص مثل Notepad ، وأنشئ ملفاً باسم emp.txt بالمحتوى التالي:
John, Doe
Jane, Doe
حفظ الملف في المجلد C:\ADFv2QuickStartPSH. (إذا لم يكن المجلد موجوداً بالفعل، فقم بإنشائه.)
راجع القالب
يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "17339534711754973978"
}
},
"parameters": {
"dataFactoryName": {
"type": "string",
"defaultValue": "[format('datafactory{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Data Factory Name"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location of the data factory."
}
},
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Name of the Azure storage account that contains the input/output data."
}
},
"blobContainerName": {
"type": "string",
"defaultValue": "[format('blob{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Name of the blob container in the Azure Storage account."
}
}
},
"variables": {
"dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
"dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
"dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
"pipelineName": "ArmtemplateSampleCopyPipeline"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/blobServices",
"apiVersion": "2023-01-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"minimumTlsVersion": "TLS1_2",
"supportsHttpsTrafficOnly": true,
"allowBlobPublicAccess": false
}
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2023-01-01",
"name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('blobContainerName'))]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), 'default')]"
]
},
{
"type": "Microsoft.DataFactory/factories",
"apiVersion": "2018-06-01",
"name": "[parameters('dataFactoryName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
}
},
{
"type": "Microsoft.DataFactory/factories/linkedservices",
"apiVersion": "2018-06-01",
"name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]",
"properties": {
"type": "AzureBlobStorage",
"typeProperties": {
"connectionString": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('storageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2023-01-01').keys[0].value)]"
}
},
"dependsOn": [
"[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.DataFactory/factories/datasets",
"apiVersion": "2018-06-01",
"name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
"properties": {
"linkedServiceName": {
"referenceName": "[variables('dataFactoryLinkedServiceName')]",
"type": "LinkedServiceReference"
},
"type": "Binary",
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "[parameters('blobContainerName')]",
"folderPath": "input",
"fileName": "emp.txt"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
"[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
]
},
{
"type": "Microsoft.DataFactory/factories/datasets",
"apiVersion": "2018-06-01",
"name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]",
"properties": {
"linkedServiceName": {
"referenceName": "[variables('dataFactoryLinkedServiceName')]",
"type": "LinkedServiceReference"
},
"type": "Binary",
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "[parameters('blobContainerName')]",
"folderPath": "output"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
"[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
]
},
{
"type": "Microsoft.DataFactory/factories/pipelines",
"apiVersion": "2018-06-01",
"name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('pipelineName'))]",
"properties": {
"activities": [
{
"name": "MyCopyActivity",
"type": "Copy",
"typeProperties": {
"source": {
"type": "BinarySource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
}
},
"sink": {
"type": "BinarySink",
"storeSettings": {
"type": "AzureBlobStorageWriteSettings"
}
},
"enableStaging": false
},
"inputs": [
{
"referenceName": "[variables('dataFactoryDataSetInName')]",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "[variables('dataFactoryDataSetOutName')]",
"type": "DatasetReference"
}
]
}
]
},
"dependsOn": [
"[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
"[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
"[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]"
]
}
],
"outputs": {
"name": {
"type": "string",
"value": "[variables('pipelineName')]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.DataFactory/factories/pipelines', parameters('dataFactoryName'), variables('pipelineName'))]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
توجد موارد Azure محددة في القالب:
- Microsoft.Storage/storageAccounts: يحدد حساب تخزين.
- Microsoft.DataFactory / plants : إنشاء Azure Data Factory.
- Microsoft.DataFactory / plants / linkedServices : إنشاء خدمة مرتبطة بـAzure Data Factory.
- Microsoft.DataFactory / plants / datasets : قم بإنشاء مجموعة بيانات Azure Data Factory.
- Microsoft.DataFactory / plants / pipelines : إنشاء البنية الأساسية لـ Azure Data Factory.
يمكن العثور على المزيد من نماذج قوالب Azure Data Factory في quickstart template gallery.
نشر القالب
حدد الصورة التالية لتسجيل الدخول إلى Azure وفتح قالب. ينشئ القالب حساب Azure Data Factory وحساب تخزين وحاوية blob.
حدد القيم التالية أو أدخلها.
ما لم يتم تحديده، استخدم القيم الافتراضية لإنشاء موارد Azure Data Factory:
- الاشتراك: تحديد اشتراك Azure.
- Resource group حددCreate new، وأدخل اسماً فريداً لمجموعة الموارد، ثم حدّد OK.
- Region: حدِّد موقعاً. على سبيل المثال، East US.
- Data Factory Name: استخدم القيمة الافتراضية.
- Location: استخدم القيمة الافتراضية.
- Storage Account Name: استخدم القيمة الافتراضية.
- Blob Container: استخدم القيمة الافتراضية.
مراجعة الموارد الموزعة
حدد الانتقال إلى مجموعة الموارد.
تحقق من إنشاء Azure Data Factory.
- اسم Azure Data Factory الخاص بك بتنسيق - datafactory<uniqueid>.
تحقق من إنشاء حساب التخزين الخاص بك.
- اسم حساب التخزين بالتنسيق - storage<uniqueid>.
حدد storage account الذي تم إنشاؤه ثم حدد Containers.
- في الصفحة Containers حدد حاوية blob التي قمت بإنشائها.
- اسم حاوية البيانات الثنائية الكبيرة بالتنسيق - blob<uniqueid>.
- في الصفحة Containers حدد حاوية blob التي قمت بإنشائها.
تحميل ملف
في صفحة Containers، حددUpload.
في الجزء الأيسر، حدد المربع Files ، ثم استعرض وحدد ملف emp.txt الذي قمت بإنشائه مسبقاً.
قم بتوسيع العنوان Advanced.
في المربع Upload to folder، أدخلinput.
حدد الزر تحميل. يجب أن تراجع ملف emp.txt وحالة التحميل في القائمة.
حدد رمز Close (علامة X ) لإغلاق صفحةUpload blob.
احتفظ بصفحة الحاوية مفتوحة، لأنه يمكنك استخدامها للتحقق من المخرجات في نهاية هذا التشغيل السريع.
Start Trigger
انتقل إلى صفحة Data factories، وحدد data factory الذي أنشأته.
حدد Open على لوحة Open Azure Data Factory Studio.
حدد علامة التبويب Author .
حدد البنية الأساسية التي تم إنشاؤها - ArmtemplateSampleCopyPipeline.
حدد Add Trigger>Trigger Now.
في الجزء الأيسر ضمن Pipeline run، حددOK.
مراقبة المسار
حدد علامة التبويب Monitor .
سترى تشغيل النشاط المقترن بتشغيل البنية الأساسية. في التشغيل السريع هذا، تحتوي البنية الأساسية على نشاط واحد فقط من النوع: Copy. على هذا النحو، ترى تشغيلاً لهذا النشاط.
التحقق من ملف المخرجات
تقوم البنية الأساسية تلقائياً بإنشاء مجلد مخرجات في حاوية blob. ثم ينسخ ملف "emp.txt" من مجلد الإدخال إلى مجلد الإخراج.
في مدخل Microsoft Azure، في صفحة Containers حددRefresh لرؤية مجلد المخرجات.
حدد الإخراج من قائمة المجلدات.
تأكد من نسخ emp.txt إلى مجلد الإخراج.
تنظيف الموارد
يمكنك تنظيف الموارد التي أنشأتها في قائمة التشغيل السريع بطريقتين. يمكنك حذف مجموعة موارد Azure، التي تتضمن كافة الموارد الموجودة في مجموعة الموارد. إذا كنت ترغب في الحفاظ على سلامة الموارد الأخرى، فاحذف مصنع البيانات الذي أنشأته في هذا البرنامج التعليمي.
يسفر حذف مجموعة موارد عن حذف كافة الموارد بما في ذلك مصانع البيانات الموجودة بها. شغل الأمر التالي بهدف الحذف الكلي لمجموعة الموارد:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
إذا كنت ترغب في حذف data factory بمفرده، لا مجموعة الموارد بأكملها، فشغل الأمر التالي:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
المحتوى ذو الصلة
في هذا التشغيل السريع، قمت بإنشاء Azure Data Factory باستخدام قالب ARM وتحققت من صحة النشر. لمعرفة المزيد حول Azure Data Factory وAzure Resource Manager، تابع إلى المقالات أدناه.
- وثائق Azure Data Factory
- التعرف على المزيد حول Azure Resource Manager
- احصل على قوالبAzure Data Factory ARM الأخرى