كيفية إعداد مسار CI/CD ل Azure Data Lake Analytics
في هذه المقالة، ستتعلم كيفية إعداد البنية الأساسية لبرنامج ربط العمليات التجارية للتكامل والنشر المستمر (CI/CD) لمهام U-SQL وقواعد بيانات U-SQL.
هام
تم إيقاف Azure Data Lake Analytics في 29 فبراير 2024. تعرف على المزيد من خلال هذا الإعلان.
بالنسبة لتحليلات البيانات، يمكن لمؤسستك استخدام Azure Synapse Analytics أو Microsoft Fabric.
ملاحظة
نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
استخدام CI/CD لوظائف U-SQL
توفر Azure Data Lake Tools ل Visual Studio نوع مشروع U-SQL الذي يساعدك على تنظيم البرامج النصية U-SQL. يؤدي استخدام مشروع U-SQL لإدارة التعليمات البرمجية U-SQL إلى تسهيل المزيد من سيناريوهات CI/CD.
إنشاء مشروع U-SQL
يمكن إنشاء مشروع U-SQL باستخدام Microsoft Build Engine (MSBuild) عن طريق تمرير المعلمات المقابلة. اتبع الخطوات الواردة في هذه المقالة لإعداد عملية إنشاء لمشروع U-SQL.
ترحيل المشروع
قبل إعداد مهمة إنشاء لمشروع U-SQL، تأكد من أن لديك أحدث إصدار من مشروع U-SQL. افتح ملف مشروع U-SQL في المحرر وتحقق من أن لديك عناصر الاستيراد هذه:
<!-- check for SDK Build target in current path then in USQLSDKPath-->
<Import Project="UsqlSDKBuild.targets" Condition="Exists('UsqlSDKBuild.targets')" />
<Import Project="$(USQLSDKPath)\UsqlSDKBuild.targets" Condition="!Exists('UsqlSDKBuild.targets') And '$(USQLSDKPath)' != '' And Exists('$(USQLSDKPath)\UsqlSDKBuild.targets')" />
إذا لم يكن لديك خياران لترحيل المشروع:
- الخيار 1: تغيير عنصر الاستيراد القديم إلى العنصر السابق.
- الخيار 2: افتح المشروع القديم في Azure Data Lake Tools ل Visual Studio. استخدم إصدارا أحدث من 2.3.3000.0. ستتم ترقية قالب المشروع القديم تلقائيا إلى أحدث إصدار. تستخدم المشاريع الجديدة التي تم إنشاؤها بإصدارات أحدث من 2.3.3000.0 القالب الجديد.
الحصول على NuGet
لا يوفر MSBuild دعما مضمنا لمشاريع U-SQL. للحصول على هذا الدعم، تحتاج إلى إضافة مرجع للحل الخاص بك إلى حزمة NuGet Microsoft.Azure.DataLake.USQL.SDK التي تضيف خدمة اللغة المطلوبة.
لإضافة مرجع حزمة NuGet، انقر بزر الماوس الأيمن فوق الحل في Visual Studio مستكشف الحلول واختر إدارة حزم NuGet. أو يمكنك إضافة ملف يسمى packages.config
في مجلد الحل ووضع المحتويات التالية فيه:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180620" targetFramework="net452" />
</packages>
إدارة مراجع قاعدة بيانات U-SQL
قد تحتوي البرامج النصية U-SQL في مشروع U-SQL على عبارات استعلام لكائنات قاعدة بيانات U-SQL. في هذه الحالة، تحتاج إلى الرجوع إلى مشروع قاعدة بيانات U-SQL المقابل الذي يتضمن تعريف العناصر قبل إنشاء مشروع U-SQL. مثال على ذلك هو عند الاستعلام عن جدول U-SQL أو الرجوع إلى تجميع.
تعرف على المزيد حول مشروع قاعدة بيانات U-SQL.
ملاحظة
قد تتسبب عبارة DROP في حذف عرضي. لتمكين عبارة DROP، تحتاج إلى تحديد وسيطات MSBuild بشكل صريح. ستمكن AllowDropStatement عملية DROP غير المتعلقة بالبيانات، مثل تجميع الإفلات ودالة قيمة الجدول الإفلاتي. ستمكن AllowDataDropStatement عملية DROP المتعلقة بالبيانات، مثل جدول الإفلات ومخطط الإفلات. يجب تمكين AllowDropStatement قبل استخدام AllowDataDropStatement.
إنشاء مشروع U-SQL باستخدام سطر أوامر MSBuild
قم أولا بترحيل المشروع والحصول على حزمة NuGet. ثم استدع سطر أوامر MSBuild القياسي مع الوسيطات التالية لإنشاء مشروع U-SQL الخاص بك:
msbuild USQLBuild.usqlproj /p:USQLSDKPath=packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.180615\build\runtime;USQLTargetType=SyntaxCheck;DataRoot=datarootfolder;/p:EnableDeployment=true
تعريف الوسيطات والقيم كما يلي:
USQLSDKPath=<U-SQL Nuget package>\build\runtime. تشير هذه المعلمة إلى مسار تثبيت حزمة NuGet لخدمة لغة U-SQL.
USQLTargetType=Merge أو SyntaxCheck:
دمج. يقوم وضع الدمج بتجميع ملفات التعليمات البرمجية الخلفية. الأمثلة هي ملفات .cs.pyو.r . وهو يدمج مكتبة التعليمات البرمجية الناتجة المعرفة من قبل المستخدم في البرنامج النصي U-SQL. ومن الأمثلة على ذلك رمز ثنائي dll أو Python أو R.
بناء الجملةCheck. يدمج وضع SyntaxCheck أولا ملفات التعليمات البرمجية الخلفية في البرنامج النصي U-SQL. ثم يقوم بتجميع البرنامج النصي U-SQL للتحقق من صحة التعليمات البرمجية الخاصة بك.
DataRoot=<مسار> DataRoot. DataRoot مطلوب فقط لوضع SyntaxCheck. عند إنشاء البرنامج النصي باستخدام وضع SyntaxCheck، يتحقق MSBuild من المراجع إلى كائنات قاعدة البيانات في البرنامج النصي. قبل الإنشاء، قم بإعداد بيئة محلية مطابقة تحتوي على العناصر المشار إليها من قاعدة بيانات U-SQL في مجلد DataRoot الخاص بجهاز الإنشاء. يمكنك أيضا إدارة تبعيات قاعدة البيانات هذه عن طريق الرجوع إلى مشروع قاعدة بيانات U-SQL. يتحقق MSBuild فقط من مراجع كائن قاعدة البيانات، وليس الملفات.
EnableDeployment=true أو false. يشير EnableDeployment إلى ما إذا كان مسموحا له بنشر قواعد بيانات U-SQL المشار إليها أثناء عملية الإنشاء. إذا كنت تشير إلى مشروع قاعدة بيانات U-SQL وتستهلك كائنات قاعدة البيانات في البرنامج النصي U-SQL، فقم بتعيين هذه المعلمة إلى true.
التكامل المستمر من خلال Azure Pipelines
بالإضافة إلى سطر الأوامر، يمكنك أيضا استخدام Visual Studio Build أو مهمة MSBuild لإنشاء مشاريع U-SQL في Azure Pipelines. لإعداد البنية الأساسية لبرنامج ربط العمليات التجارية للبناء، تأكد من إضافة مهمتين في البنية الأساسية لبرنامج ربط العمليات التجارية للبناء: مهمة استعادة NuGet ومهمة MSBuild.
أضف مهمة استعادة NuGet للحصول على حزمة NuGet المشار إليها بالحل والتي تتضمن
Azure.DataLake.USQL.SDK
، بحيث يمكن ل MSBuild العثور على أهداف لغة U-SQL. قم بتعييندليل الوجهةالمتقدمة> إلى$(Build.SourcesDirectory)/packages
إذا كنت تريد استخدام نموذج وسيطات MSBuild مباشرة في الخطوة 2.قم بتعيين وسيطات MSBuild في أدوات إنشاء Visual Studio أو في مهمة MSBuild كما هو موضح في المثال التالي. أو يمكنك تحديد متغيرات لهذه الوسيطات في البنية الأساسية لبرنامج ربط العمليات التجارية لبناء البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure.
/p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime /p:USQLTargetType=SyntaxCheck /p:DataRoot=$(Build.SourcesDirectory) /p:EnableDeployment=true
إخراج إنشاء مشروع U-SQL
بعد تشغيل بنية، يتم إنشاء جميع البرامج النصية في مشروع U-SQL وإخراجها إلى ملف مضغوط يسمى USQLProjectName.usqlpack
. يتم الاحتفاظ ببنية المجلد في مشروعك في إخراج البناء المضغوط.
ملاحظة
سيتم دمج ملفات التعليمات البرمجية الخلفية لكل برنامج نصي U-SQL كبيان مضمن لإخراج إنشاء البرنامج النصي.
اختبار البرامج النصية SQL U
يوفر Azure Data Lake مشاريع اختبار لنصوص U-SQL وC# UDO/UDAG/UDF:
تعرف على كيفية إضافة حالات الاختبار للنصوص U-SQL ورمز C# الموسع
تعرف على كيفية تشغيل حالات الاختبار في Azure Pipelines.
توزيع وظيفة U-SQL
بعد التحقق من التعليمات البرمجية من خلال عملية الإنشاء والاختبار، يمكنك إرسال مهام U-SQL مباشرة من Azure Pipelines من خلال مهمة Azure PowerShell. يمكنك أيضا نشر البرنامج النصي إلى Azure Data Lake Store أو تخزين Azure Blob وتشغيل المهام المجدولة من خلال Azure Data Factory.
إرسال مهام U-SQL من خلال Azure Pipelines
إخراج بناء مشروع U-SQL هو ملف مضغوط يسمى USQLProjectName.usqlpack. يتضمن الملف المضغوط جميع البرامج النصية U-SQL في المشروع. يمكنك استخدام مهمة Azure PowerShell في Pipelines مع نموذج البرنامج النصي PowerShell التالي لإرسال مهام U-SQL مباشرة من Azure Pipelines.
<#
This script can be used to submit U-SQL Jobs with given U-SQL project build output(.usqlpack file).
This will unzip the U-SQL project build output, and submit all scripts one-by-one.
Note: the code behind file for each U-SQL script will be merged into the built U-SQL script in build output.
Example :
USQLJobSubmission.ps1 -ADLAAccountName "myadlaaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\" -DegreeOfParallelism 2
#>
param(
[Parameter(Mandatory=$true)][string]$ADLAAccountName, # ADLA account name to submit U-SQL jobs
[Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
[Parameter(Mandatory=$false)][string]$DegreeOfParallelism = 1
)
function Unzip($USQLPackfile, $UnzipOutput)
{
$USQLPackfileZip = Rename-Item -Path $USQLPackfile -NewName $([System.IO.Path]::ChangeExtension($USQLPackfile, ".zip")) -Force -PassThru
Expand-Archive -Path $USQLPackfileZip -DestinationPath $UnzipOutput -Force
Rename-Item -Path $USQLPackfileZip -NewName $([System.IO.Path]::ChangeExtension($USQLPackfileZip, ".usqlpack")) -Force
}
## Get U-SQL scripts in U-SQL project build output(.usqlpack file)
Function GetUsqlFiles()
{
$USQLPackfiles = Get-ChildItem -Path $ArtifactsRoot -Include *.usqlpack -File -Recurse -ErrorAction SilentlyContinue
$UnzipOutput = Join-Path $ArtifactsRoot -ChildPath "UnzipUSQLScripts"
foreach ($USQLPackfile in $USQLPackfiles)
{
Unzip $USQLPackfile $UnzipOutput
}
$USQLFiles = Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue
return $USQLFiles
}
## Submit U-SQL scripts to ADLA account one-by-one
Function SubmitAnalyticsJob()
{
$usqlFiles = GetUsqlFiles
Write-Output "$($usqlFiles.Count) jobs to be submitted..."
# Submit each usql script and wait for completion before moving ahead.
foreach ($usqlFile in $usqlFiles)
{
$scriptName = "[Release].[$([System.IO.Path]::GetFileNameWithoutExtension($usqlFile.fullname))]"
Write-Output "Submitting job for '{$usqlFile}'"
$jobToSubmit = Submit-AzDataLakeAnalyticsJob -Account $ADLAAccountName -Name $scriptName -ScriptPath $usqlFile -DegreeOfParallelism $DegreeOfParallelism
LogJobInformation $jobToSubmit
Write-Output "Waiting for job to complete. Job ID:'{$($jobToSubmit.JobId)}', Name: '$($jobToSubmit.Name)' "
$jobResult = Wait-AzDataLakeAnalyticsJob -Account $ADLAAccountName -JobId $jobToSubmit.JobId
LogJobInformation $jobResult
}
}
Function LogJobInformation($jobInfo)
{
Write-Output "************************************************************************"
Write-Output ([string]::Format("Job Id: {0}", $(DefaultIfNull $jobInfo.JobId)))
Write-Output ([string]::Format("Job Name: {0}", $(DefaultIfNull $jobInfo.Name)))
Write-Output ([string]::Format("Job State: {0}", $(DefaultIfNull $jobInfo.State)))
Write-Output ([string]::Format("Job Started at: {0}", $(DefaultIfNull $jobInfo.StartTime)))
Write-Output ([string]::Format("Job Ended at: {0}", $(DefaultIfNull $jobInfo.EndTime)))
Write-Output ([string]::Format("Job Result: {0}", $(DefaultIfNull $jobInfo.Result)))
Write-Output "************************************************************************"
}
Function DefaultIfNull($item)
{
if ($item -ne $null)
{
return $item
}
return ""
}
Function Main()
{
Write-Output ([string]::Format("ADLA account: {0}", $ADLAAccountName))
Write-Output ([string]::Format("Root folde for usqlpack: {0}", $ArtifactsRoot))
Write-Output ([string]::Format("AU count: {0}", $DegreeOfParallelism))
Write-Output "Starting USQL script deployment..."
SubmitAnalyticsJob
Write-Output "Finished deployment..."
}
Main
ملاحظة
الأوامر: Submit-AzDataLakeAnalyticsJob
و Wait-AzDataLakeAnalyticsJob
هما كل من أوامر Azure PowerShell cmdlets ل Azure Data Lake Analytics في إطار عمل Azure Resource Manager. ستقوم بتركيب محطة عمل مع تثبيت Azure PowerShell. يمكنك الرجوع إلى قائمة الأوامر لمزيد من الأوامر والأمثلة.
توزيع مهام U-SQL من خلال Azure Data Factory
يمكنك إرسال مهام U-SQL مباشرة من Azure Pipelines. أو يمكنك تحميل البرامج النصية المضمنة إلى Azure Data Lake Store أو تخزين Azure Blob وتشغيل المهام المجدولة من خلال Azure Data Factory.
استخدم مهمة Azure PowerShell في Azure Pipelines مع نموذج البرنامج النصي PowerShell التالي لتحميل البرامج النصية U-SQL إلى حساب Azure Data Lake Store:
<#
This script can be used to upload U-SQL files to ADLS with given U-SQL project build output(.usqlpack file).
This will unzip the U-SQL project build output, and upload all scripts to ADLS one-by-one.
Example :
FileUpload.ps1 -ADLSName "myadlsaccount" -ArtifactsRoot "C:\USQLProject\bin\debug\"
#>
param(
[Parameter(Mandatory=$true)][string]$ADLSName, # ADLS account name to upload U-SQL scripts
[Parameter(Mandatory=$true)][string]$ArtifactsRoot, # Root folder of U-SQL project build output
[Parameter(Mandatory=$false)][string]$DestinationFolder = "USQLScriptSource" # Destination folder in ADLS
)
Function UploadResources()
{
Write-Host "************************************************************************"
Write-Host "Uploading files to $ADLSName"
Write-Host "***********************************************************************"
$usqlScripts = GetUsqlFiles
$files = @(get-childitem $usqlScripts -recurse)
foreach($file in $files)
{
Write-Host "Uploading file: $($file.Name)"
Import-AzDataLakeStoreItem -AccountName $ADLSName -Path $file.FullName -Destination "/$(Join-Path $DestinationFolder $file)" -Force
}
}
function Unzip($USQLPackfile, $UnzipOutput)
{
$USQLPackfileZip = Rename-Item -Path $USQLPackfile -NewName $([System.IO.Path]::ChangeExtension($USQLPackfile, ".zip")) -Force -PassThru
Expand-Archive -Path $USQLPackfileZip -DestinationPath $UnzipOutput -Force
Rename-Item -Path $USQLPackfileZip -NewName $([System.IO.Path]::ChangeExtension($USQLPackfileZip, ".usqlpack")) -Force
}
Function GetUsqlFiles()
{
$USQLPackfiles = Get-ChildItem -Path $ArtifactsRoot -Include *.usqlpack -File -Recurse -ErrorAction SilentlyContinue
$UnzipOutput = Join-Path $ArtifactsRoot -ChildPath "UnzipUSQLScripts"
foreach ($USQLPackfile in $USQLPackfiles)
{
Unzip $USQLPackfile $UnzipOutput
}
return Get-ChildItem -Path $UnzipOutput -Include *.usql -File -Recurse -ErrorAction SilentlyContinue
}
UploadResources
CI/CD لقاعدة بيانات U-SQL
توفر Azure Data Lake Tools for Visual Studio قوالب مشاريع قاعدة بيانات U-SQL التي تساعدك على تطوير قواعد بيانات U-SQL وإدارتها وتوزيعها. تعرف على المزيد حول مشروع قاعدة بيانات U-SQL.
إنشاء مشروع قاعدة بيانات U-SQL
الحصول على حزمة NuGet
لا يوفر MSBuild دعما مضمنا لمشاريع قاعدة بيانات U-SQL. للحصول على هذه القدرة، تحتاج إلى إضافة مرجع للحل الخاص بك إلى حزمة NuGet Microsoft.Azure.DataLake.USQL.SDK التي تضيف خدمة اللغة المطلوبة.
لإضافة مرجع حزمة NuGet، انقر بزر الماوس الأيمن فوق الحل في Visual Studio مستكشف الحلول. اختر إدارة حزم NuGet. ثم ابحث عن حزمة NuGet وقم بتثبيتها. أو يمكنك إضافة ملف يسمى packages.config في مجلد الحل ووضع المحتويات التالية فيه:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.DataLake.USQL.SDK" version="1.3.180615" targetFramework="net452" />
</packages>
إنشاء مشروع قاعدة بيانات U-SQL باستخدام سطر أوامر MSBuild
لإنشاء مشروع قاعدة بيانات U-SQL، استدع سطر أوامر MSBuild القياسي ومرر مرجع حزمة U-SQL SDK NuGet كوسيطة أخرى. راجع المثال التالي:
msbuild DatabaseProject.usqldbproj /p:USQLSDKPath=packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.180615\build\runtime
تشير الوسيطة USQLSDKPath=<U-SQL Nuget package>\build\runtime
إلى مسار تثبيت حزمة NuGet لخدمة لغة U-SQL.
التكامل المستمر مع Azure Pipelines
بالإضافة إلى سطر الأوامر، يمكنك استخدام Visual Studio Build أو مهمة MSBuild لإنشاء مشاريع قاعدة بيانات U-SQL في Azure Pipelines. لإعداد مهمة إنشاء، تأكد من إضافة مهمتين في البنية الأساسية لبرنامج ربط العمليات التجارية للبناء: مهمة استعادة NuGet ومهمة MSBuild.
أضف مهمة استعادة NuGet للحصول على حزمة NuGet المشار إليها بالحل، والتي تتضمن
Azure.DataLake.USQL.SDK
، بحيث يمكن ل MSBuild العثور على أهداف لغة U-SQL. قم بتعييندليل الوجهةالمتقدمة> إلى$(Build.SourcesDirectory)/packages
إذا كنت تريد استخدام نموذج وسيطات MSBuild مباشرة في الخطوة 2.تعيين وسيطات MSBuild في أدوات إنشاء Visual Studio أو في مهمة MSBuild كما هو موضح في المثال التالي. أو يمكنك تحديد متغيرات لهذه الوسيطات في البنية الأساسية لبرنامج ربط العمليات التجارية لبناء البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure.
/p:USQLSDKPath=$(Build.SourcesDirectory)/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180615/build/runtime
إخراج إنشاء مشروع قاعدة بيانات U-SQL
إخراج البناء لمشروع قاعدة بيانات U-SQL هو حزمة توزيع قاعدة بيانات U-SQL، المسماة باللاحقة .usqldbpack
. .usqldbpack
الحزمة هي ملف مضغوط يتضمن جميع عبارات DDL في برنامج نصي U-SQL واحد في مجلد DDL. يتضمن جميع ملفات .dlls والملفات الأخرى للتجميع في مجلد مؤقت.
اختبار الدالات ذات القيمة الجدولية والإجراءات المخزنة
إضافة حالات اختبار للوظائف ذات القيمة الجدولية والإجراءات المخزنة مباشرة غير مدعومة حاليا. كحل بديل، يمكنك إنشاء مشروع U-SQL يحتوي على برامج U-SQL النصية التي تستدعي هذه الوظائف وتكتب حالات الاختبار لها. اتبع الخطوات التالية لإعداد حالات الاختبار للوظائف ذات القيمة الجدولية والإجراءات المخزنة المحددة في مشروع قاعدة بيانات U-SQL:
إنشاء مشروع U-SQL لأغراض الاختبار وكتابة البرامج النصية U-SQL التي تستدعي الوظائف ذات القيمة الجدولية والإجراءات المخزنة.
أضف مرجع قاعدة بيانات إلى مشروع U-SQL. للحصول على الدالة ذات القيمة الجدولية وتعريف الإجراء المخزن، تحتاج إلى الرجوع إلى مشروع قاعدة البيانات الذي يحتوي على عبارة DDL. تعرف على المزيد حول مراجع قاعدة البيانات.
أضف حالات اختبار لنصوص U-SQL النصية التي تستدعي دالات ذات قيمة الجدول والإجراءات المخزنة. تعرف على كيفية إضافة حالات اختبار لنصوص U-SQL النصية.
توزيع قاعدة بيانات U-SQL من خلال Azure Pipelines
PackageDeploymentTool.exe
يوفر واجهات البرمجة وخط الأوامر التي تساعد في توزيع حزم نشر قاعدة بيانات U-SQL، .usqldbpack. يتم تضمين SDK في حزمة U-SQL SDK NuGet، الموجودة في build/runtime/PackageDeploymentTool.exe. باستخدام PackageDeploymentTool.exe
، يمكنك نشر قواعد بيانات U-SQL إلى كل من Azure Data Lake Analytics والحسابات المحلية.
ملاحظة
دعم سطر أوامر PowerShell ودعم مهمة إصدار Azure Pipelines لتوزيع قاعدة بيانات U-SQL معلق حاليا.
اتبع الخطوات التالية لإعداد مهمة توزيع قاعدة بيانات في Azure Pipelines:
أضف مهمة برنامج PowerShell النصي في البنية الأساسية لبرنامج ربط العمليات التجارية للبناء أو الإصدار وقم بتنفيذ البرنامج النصي PowerShell التالي. تساعد هذه المهمة على الحصول على تبعيات Azure SDK ل
PackageDeploymentTool.exe
وPackageDeploymentTool.exe
. يمكنك تعيين المعلمتين -AzureSDKو-DBDeploymentTool لتحميل التبعيات وأداة التوزيع إلى مجلدات معينة. مرر مسار -AzureSDK إلىPackageDeploymentTool.exe
كمعلمة -AzureSDKPath في الخطوة 2.<# This script is used for getting dependencies and SDKs for U-SQL database deployment. PowerShell command line support for deploying U-SQL database package(.usqldbpack file) will come soon. Example : GetUSQLDBDeploymentSDK.ps1 -AzureSDK "AzureSDKFolderPath" -DBDeploymentTool "DBDeploymentToolFolderPath" #> param ( [string]$AzureSDK = "AzureSDK", # Folder to cache Azure SDK dependencies [string]$DBDeploymentTool = "DBDeploymentTool", # Folder to cache U-SQL database deployment tool [string]$workingfolder = "" # Folder to execute these command lines ) if ([string]::IsNullOrEmpty($workingfolder)) { $scriptpath = $MyInvocation.MyCommand.Path $workingfolder = Split-Path $scriptpath } cd $workingfolder echo "workingfolder=$workingfolder, outputfolder=$outputfolder" echo "Downloading required packages..." iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.Management.DataLake.Analytics/3.5.1-preview -outf Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview.zip iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.Management.DataLake.Store/2.4.1-preview -outf Microsoft.Azure.Management.DataLake.Store.2.4.1-preview.zip iwr https://www.nuget.org/api/v2/package/Microsoft.IdentityModel.Clients.ActiveDirectory/2.28.3 -outf Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3.zip iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime/2.3.11 -outf Microsoft.Rest.ClientRuntime.2.3.11.zip iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime.Azure/3.3.7 -outf Microsoft.Rest.ClientRuntime.Azure.3.3.7.zip iwr https://www.nuget.org/api/v2/package/Microsoft.Rest.ClientRuntime.Azure.Authentication/2.3.3 -outf Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3.zip iwr https://www.nuget.org/api/v2/package/Newtonsoft.Json/6.0.8 -outf Newtonsoft.Json.6.0.8.zip iwr https://www.nuget.org/api/v2/package/Microsoft.Azure.DataLake.USQL.SDK/ -outf USQLSDK.zip echo "Extracting packages..." Expand-Archive Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview.zip -DestinationPath Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview -Force Expand-Archive Microsoft.Azure.Management.DataLake.Store.2.4.1-preview.zip -DestinationPath Microsoft.Azure.Management.DataLake.Store.2.4.1-preview -Force Expand-Archive Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3.zip -DestinationPath Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3 -Force Expand-Archive Microsoft.Rest.ClientRuntime.2.3.11.zip -DestinationPath Microsoft.Rest.ClientRuntime.2.3.11 -Force Expand-Archive Microsoft.Rest.ClientRuntime.Azure.3.3.7.zip -DestinationPath Microsoft.Rest.ClientRuntime.Azure.3.3.7 -Force Expand-Archive Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3.zip -DestinationPath Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3 -Force Expand-Archive Newtonsoft.Json.6.0.8.zip -DestinationPath Newtonsoft.Json.6.0.8 -Force Expand-Archive USQLSDK.zip -DestinationPath USQLSDK -Force echo "Copy required DLLs to output folder..." mkdir $AzureSDK -Force mkdir $DBDeploymentTool -Force copy Microsoft.Azure.Management.DataLake.Analytics.3.5.1-preview\lib\net452\*.dll $AzureSDK copy Microsoft.Azure.Management.DataLake.Store.2.4.1-preview\lib\net452\*.dll $AzureSDK copy Microsoft.IdentityModel.Clients.ActiveDirectory.2.28.3\lib\net45\*.dll $AzureSDK copy Microsoft.Rest.ClientRuntime.2.3.11\lib\net452\*.dll $AzureSDK copy Microsoft.Rest.ClientRuntime.Azure.3.3.7\lib\net452\*.dll $AzureSDK copy Microsoft.Rest.ClientRuntime.Azure.Authentication.2.3.3\lib\net452\*.dll $AzureSDK copy Newtonsoft.Json.6.0.8\lib\net45\*.dll $AzureSDK copy USQLSDK\build\runtime\*.* $DBDeploymentTool
أضف مهمة سطر الأوامر في البنية الأساسية لبرنامج ربط العمليات التجارية للبناء أو الإصدار واملأ البرنامج النصي عن طريق استدعاء
PackageDeploymentTool.exe
.PackageDeploymentTool.exe
يقع ضمن المجلد $DBDeploymentTool المحدد. نموذج البرنامج النصي كما يلي:توزيع قاعدة بيانات U-SQL محليا:
PackageDeploymentTool.exe deploylocal -Package <package path> -Database <database name> -DataRoot <data root path>
استخدم وضع المصادقة التفاعلية لنشر قاعدة بيانات U-SQL إلى حساب Azure Data Lake Analytics:
PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -AzureSDKPath <azure sdk path> -Interactive
استخدم مصادقة سرية لنشر قاعدة بيانات U-SQL إلى حساب Azure Data Lake Analytics:
PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -ClientId <client id> -Secrete <secrete>
استخدم مصادقة certFile لنشر قاعدة بيانات U-SQL إلى حساب Azure Data Lake Analytics:
PackageDeploymentTool.exe deploycluster -Package <package path> -Database <database name> -Account <account name> -ResourceGroup <resource group name> -SubscriptionId <subscript id> -Tenant <tenant name> -ClientId <client id> -Secrete <secrete> -CertFile <certFile>
أوصاف المعلمات PackageDeploymentTool.exe
المعلمات الشائعة
المعلمة | الوصف | القيمة الافتراضية | مطلوب |
---|---|---|---|
الحزمة | مسار حزمة توزيع قاعدة بيانات U-SQL التي سيتم نشرها. | خالٍ | صواب |
قاعدة البيانات | اسم قاعدة البيانات الذي سيتم نشره أو إنشاؤه. | الرئيسي | false |
Logfile | مسار الملف للتسجيل. افتراضي إلى قياسي (وحدة التحكم). | خالٍ | false |
LogLevel | مستوى السجل: مطول أو عادي أو تحذير أو خطأ. | LogLevel.Normal | false |
معلمة للتوزيع المحلي
المعلمة | الوصف | القيمة الافتراضية | مطلوب |
---|---|---|---|
DataRoot | مسار المجلد الجذر للبيانات المحلية. | خالٍ | صواب |
معلمات توزيع Azure Data Lake Analytics
المعلمة | الوصف | القيمة الافتراضية | مطلوب |
---|---|---|---|
الحساب | يحدد حساب Azure Data Lake Analytics الذي سيتم النشر إليه حسب اسم الحساب. | خالٍ | صواب |
مجموعة الموارد | اسم مجموعة موارد Azure لحساب Azure Data Lake Analytics. | خالٍ | صواب |
معرف الاشتراك | معرف اشتراك Azure لحساب Azure Data Lake Analytics. | خالٍ | صواب |
المستأجر | اسم المستأجر هو اسم المجال Microsoft Entra. ابحث عنه في صفحة إدارة الاشتراك في مدخل Microsoft Azure. | خالٍ | صواب |
AzureSDKPath | مسار البحث في التجميعات التابعة في Azure SDK. | خالٍ | صواب |
تفاعلي | ما إذا كان يجب استخدام الوضع التفاعلي للمصادقة أم لا. | false | false |
معرف العميل | معرف التطبيق Microsoft Entra المطلوب للمصادقة غير التفاعلية. | خالٍ | مطلوب للمصادقة غير التفاعلية. |
سري | البيانات السرية أو كلمة المرور للمصادقة غير التفاعلية. يجب استخدامه فقط في بيئة موثوق بها وآمنة. | خالٍ | مطلوب للمصادقة غير التفاعلية، أو استخدم SecreteFile. |
ملف سري | يحفظ الملف البيانات السرية أو كلمة المرور للمصادقة غير التفاعلية. تأكد من الاحتفاظ به قابل للقراءة فقط من قبل المستخدم الحالي. | خالٍ | مطلوب للمصادقة غير التفاعلية، أو استخدم Secret. |
ملف CertFile | يحفظ الملف شهادة X.509 للمصادقة غير التفاعلية. الافتراضي هو استخدام مصادقة العميل السرية. | خالٍ | false |
JobPrefix | بادئة نشر قاعدة البيانات لوظيفة U-SQL DDL. | Deploy_ + DateTime.Now | false |