كيفية إعداد مسار 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.

مهمة MSBuild لمشروع U-SQL

  1. أضف مهمة استعادة NuGet للحصول على حزمة NuGet المشار إليها بالحل والتي تتضمن Azure.DataLake.USQL.SDK، بحيث يمكن ل MSBuild العثور على أهداف لغة U-SQL. قم بتعييندليل الوجهةالمتقدمة> إلى $(Build.SourcesDirectory)/packages إذا كنت تريد استخدام نموذج وسيطات MSBuild مباشرة في الخطوة 2.

    مهمة استعادة NuGet لمشروع U-SQL

  2. قم بتعيين وسيطات MSBuild في أدوات إنشاء Visual Studio أو في مهمة MSBuild كما هو موضح في المثال التالي. أو يمكنك تحديد متغيرات لهذه الوسيطات في البنية الأساسية لبرنامج ربط العمليات التجارية لبناء البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure.

    تعريف متغيرات CI/CD MSBuild لمشروع U-SQL

    /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

بعد التحقق من التعليمات البرمجية من خلال عملية الإنشاء والاختبار، يمكنك إرسال مهام 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.

مهمة CI/CD MSBuild لمشروع U-SQL

  1. أضف مهمة استعادة NuGet للحصول على حزمة NuGet المشار إليها بالحل، والتي تتضمن Azure.DataLake.USQL.SDK، بحيث يمكن ل MSBuild العثور على أهداف لغة U-SQL. قم بتعييندليل الوجهةالمتقدمة> إلى $(Build.SourcesDirectory)/packages إذا كنت تريد استخدام نموذج وسيطات MSBuild مباشرة في الخطوة 2.

    مهمة CI/CD NuGet لمشروع U-SQL

  2. تعيين وسيطات MSBuild في أدوات إنشاء Visual Studio أو في مهمة MSBuild كما هو موضح في المثال التالي. أو يمكنك تحديد متغيرات لهذه الوسيطات في البنية الأساسية لبرنامج ربط العمليات التجارية لبناء البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure.

    تعريف متغيرات CI/CD MSBuild لمشروع قاعدة بيانات U-SQL

    /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:

  1. إنشاء مشروع U-SQL لأغراض الاختبار وكتابة البرامج النصية U-SQL التي تستدعي الوظائف ذات القيمة الجدولية والإجراءات المخزنة.

  2. أضف مرجع قاعدة بيانات إلى مشروع U-SQL. للحصول على الدالة ذات القيمة الجدولية وتعريف الإجراء المخزن، تحتاج إلى الرجوع إلى مشروع قاعدة البيانات الذي يحتوي على عبارة DDL. تعرف على المزيد حول مراجع قاعدة البيانات.

  3. أضف حالات اختبار لنصوص 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:

  1. أضف مهمة برنامج 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
    
  2. أضف مهمة سطر الأوامر في البنية الأساسية لبرنامج ربط العمليات التجارية للبناء أو الإصدار واملأ البرنامج النصي عن طريق استدعاء 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

الخطوات التالية