معالجة البيانات عن طريق تشغيل البرامج النصية U-SQL على تحليلات Azure Data Lake مع Azure Data Factory وتحليلات Synapse

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

تلميح

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

يعالج خط الأنابيب في Azure Data Factory أو مساحة عمل Synapse Analytics البيانات في خدمات التخزين المرتبطة باستخدام خدمات الحوسبة المرتبطة. وهو يحتوي على تسلسل من الأنشطة حيث يقوم كل نشاط بعملية معالجة محددة. توضح هذه المقالة نشاط U-SQL Data Lake Analytics الذي يقوم بتشغيل البرنامج النصي U-SQL على خدمة مرتبطة بحساب Azure Data Lake Analytics.

قم بإنشاء حساب Azure Data Lake Analytics قبل إنشاء مسارات باستخدام نشاط Data Lake Analytics U-SQL. لمعرفة المزيد حول Azure Data Lake Analytics، راجع بدء استخدام Azure Data Lake Analytics.

أضف نشاط U-SQL لـ Azure Data Lake Analytics إلى البنية الأساسية لبرنامج ربط العمليات التجارية مع واجهة المستخدم

لاستخدام نشاط U-SQL لتحليلات Azure Data Lake في البنية الأساسية لبرنامج ربط العمليات التجارية، أكمل الخطوات الموضحة أدناه:

  1. ابحث عن Data Lake في جزء أنشطة البنية الأساسية لبرنامج ربط العمليات التجارية، واسحب نشاط U-SQL إلى لوحة خطوط الأنابيب.

  2. حدد نشاط U-SQL الجديد على اللوحة القماشية إذا لم يكن محددًا بالفعل.

  3. حدد علامة التبويب ADLA Account لتحديد أو إنشاء خدمة مرتبطة جديدة Azure Data Lake Analytics التي ستستخدم لتنفيذ نشاط U-SQL.

    يعرض واجهة المستخدم لنشاط U-SQL.

  4. حدد علامة التبويب Script لتحديد أو إنشاء خدمة جديدة مرتبطة بالتخزين، ومسار داخل موقع التخزين، والذي سيستضيف البرنامج النصي.

    يعرض واجهة المستخدم لعلامة تبويب البرنامج النصي لنشاط U-SQL.

خدمة مرتبطة بـ Azure Data Lake Analytics

إنشاء خدمة مرتبطة بـ Azure Data Lake Analytics لربط خدمة حساب Azure Data Lake Analytics بمصنع بيانات أو مساحة عمل Synapse. يشير نشاط Data Lake Analytics U-SQL في المسار إلى هذه الخدمة المرتبطة.

يوفر الجدول التالي أوصافًا للخصائص العامة المستخدمة في تعريف JSON.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: AzureDataLakeAnalytics. ‏‏نعم‬
accountName اسم حساب Data Lake Analytics. ‏‏نعم‬
dataLakeAnalyticsUri Azure Data Lake Analytics URI. لا
subscriptionId مُعرف اشتراكك في Azure لا
resourceGroupName اسم مجموعة موارد Azure لا

المصادقة الأساسية للخدمة

تتطلب الخدمة المرتبطة ب Azure Data Lake Analytics مصادقة أساسية للخدمة للاتصال بخدمة تحليلات بحيرة البيانات Azure. لاستخدام المصادقة الأساسية للخدمة، سجل كيان تطبيق في معرف Microsoft Entra وامنحه حق الوصول إلى كل من Data Lake Analytics وData Lake Store الذي يستخدمه. للحصول على خطوات تفصيلية، راجع مصادقة الخدمة إلى الخدمة. دون القيم التالية التي تستخدمها لتعريف الخدمة المرتبطة:

  • مُعرّف التطبيق
  • مفتاح التطبيق
  • معرف المستأجر

منح الإذن الأساسي لخدمة تحليلات Azure Data Lake باستخدام معالج إضافة مستخدم.

استخدام مصادقة كيان الخدمة عن طريق تحديد الخصائص التالية:

الخاصية الوصف مطلوب
servicePrincipalId حدد معرّف عميل التطبيق. ‏‏نعم‬
servicePrincipalKey حدِّد مفتاح التطبيق. ‏‏نعم‬
tenant حدد معلومات المستأجر (اسم المجال أو معرف المستأجر) التي يوجد داخلها التطبيق. يمكنك استرداده عن طريق تمرير الماوس في الزاوية العلوية اليمنى من مدخل Microsoft Azure. ‏‏نعم‬

مثال: مصادقة كيان الخدمة

{
    "name": "AzureDataLakeAnalyticsLinkedService",
    "properties": {
        "type": "AzureDataLakeAnalytics",
        "typeProperties": {
            "accountName": "<account name>",
            "dataLakeAnalyticsUri": "<azure data lake analytics URI>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "value": "<service principal key>",
                "type": "SecureString"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<optional, subscription id of ADLA>",
            "resourceGroupName": "<optional, resource group name of ADLA>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }       
    }
}

للتعرف على هذه الخدمة المرتبطة، راجع مقالة حساب الخدمات المرتبطة.

نشاط Data Lake Analytics U-SQL

تحدد القصاصة البرمجية لـ JSON التالي المسار مع نشاط Data Lake Analytics U-SQL Activity. يحتوي تعريف النشاط على مرجع إلى خدمة Azure Data Lake Analytics المرتبطة التي أنشأتها مسبقًا. لتنفيذ برنامج نصي U-SQL ل Data Lake Analytics، تقدم الخدمة البرنامج النصي الذي حددته إلى Data Lake Analytics، ويتم تعريف المدخلات والمخرجات المطلوبة في البرنامج النصي لتحليلات بحيرة البيانات لجلبها وإخراجها.

{
    "name": "ADLA U-SQL Activity",
    "description": "description",
    "type": "DataLakeAnalyticsU-SQL",
    "linkedServiceName": {
        "referenceName": "<linked service name of Azure Data Lake Analytics>",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "scriptLinkedService": {
            "referenceName": "<linked service name of Azure Data Lake Store or Azure Storage which contains the U-SQL script>",
            "type": "LinkedServiceReference"
        },
        "scriptPath": "scripts\\kona\\SearchLogProcessing.txt",
        "degreeOfParallelism": 3,
        "priority": 100,
        "parameters": {
            "in": "/datalake/input/SearchLog.tsv",
            "out": "/datalake/output/Result.tsv"
        }
    }   
}

يصف الجدول التالي أسماء وأوصاف الخصائص الخاصة بهذا النشاط.

الخاصية الوصف مطلوب
الاسم اسم النشاط في المسار ‏‏نعم‬
الوصف نص يصف ما يفعله النشاط. لا
النوع فيما يتعلق بنشاط Data Lake Analytics U-SQL، فإن نوع النشاط هو DataLakeAnalyticsU-SQL. ‏‏نعم‬
linkedServiceName خدمة مرتبطة بـ Azure Data Lake Analytics للتعرف على هذه الخدمة المرتبطة، راجع مقالة خدمات الحوسبة المرتبطة. ‏‏نعم‬
سكربت المسار إلى المجلد الذي يحتوي على البرنامج النصي U-SQL. اسم الملف حساس لحالة الأحرف. ‏‏نعم‬
scriptLinkedService خدمة مرتبطة تربط Azure Data Lake Store أو تخزين Azure الذي يحتوي على البرنامج النصي ‏‏نعم‬
درجة التوازي الحد الأقصى لعدد العقد المستخدمة في وقت واحد لتشغيل المهمة. لا
أولوية يحدد أي وظائف من بين كل المهام التي يتم وضعها في قائمة الانتظار والتي يجب تحديدها للتشغيل أولاً. كلما انخفض العدد، كانت الأولوية أعلى. لا
المعلمات المعلمات لتمريرها إلى البرنامج النصي U-SQL. لا
runtimeVersion lصدار وقت التشغيل لمحرك U-SQL المطلوب استخدامه. لا
compilationMode

طريقة تجميع U-SQL. يجب أن تكون واحدة من هذه القيم: الدلالي: فقط إجراء الشيكات الدلالية والشيكات التعقل اللازمة، كامل: تنفيذ التحويل البرمجي الكامل، بما في ذلك التحقق من بناء الجملة، والتحسين، وتوليد التعليمات البرمجية، وما إلى ذلك، SingleBox: تنفيذ التحويل البرمجي الكامل، مع إعداد TargetType إلى SingleBox. إذا لم تحدد قيمة لهذه الخاصية، يحدد الخادم وضع الترجمة الأمثل.

لا

راجع تعريف البرنامج النصي SearchLogProcessing.txt لتعريف البرنامج النصي.

عينة البرنامج النصي U-SQL

@searchlog =
    EXTRACT UserId          int,
            Start           DateTime,
            Region          string,
            Query           string,
            Duration        int,
            Urls            string,
            ClickedUrls     string
    FROM @in
    USING Extractors.Tsv(nullEscape:"#NULL#");

@rs1 =
    SELECT Start, Region, Duration
    FROM @searchlog
WHERE Region == "en-gb";

@rs1 =
    SELECT Start, Region, Duration
    FROM @rs1
    WHERE Start <= DateTime.Parse("2012/02/19");

OUTPUT @rs1   
    TO @out
      USING Outputters.Tsv(quoting:false, dateTimeFormat:null);

في المثال المذكور أعلاه البرنامج النصي، يعرف الإدخال والإخراج إلى البرنامج النصي علي شكل معلمات @in و @out. تمرر قيم معلمات @inو @out في البرنامج النصي U-SQL ديناميكيًا عن طريق الخدمة باستخدام قسم «المعلمات».

يمكنك تحديد خصائص أخرى مثل درجة التوازي والأولوية أيضًا في تعريف المسار للوظائف التي تعمل على خدمة Azure Data Lake Analytics.

المعلمات الديناميكية

في تعريف مسار العينة، يتم تخصيص المعلمات الداخلة والخارجة بقيم مشفرة.

"parameters": {
    "in": "/datalake/input/SearchLog.tsv",
    "out": "/datalake/output/Result.tsv"
}

من الممكن استخدام المعلمات الديناميكية بدلاً من ذلك. على سبيل المثال:

"parameters": {
    "in": "/datalake/input/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/data.tsv",
    "out": "/datalake/output/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/result.tsv"
}

في هذه الحالة، لا يزال يتم التقاط ملفات الإدخال من مجلد /datalake/input ويتم إنشاء ملفات الإخراج في مجلد /datalake/output. أسماء الملفات حيوية استنادا إلى وقت بدء الإطار الذي يتم تمريره في عندما يتم تشغيل خط أنابيب.

راجع المقالات التالية التي تشرح كيفية تحويل البيانات بطرق أخرى: