Memproses data dengan menjalankan skrip U-SQL di Data Lake Analytics dengan Azure Data Factory dan Synapse Analytics

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Alur di Azure Data Factory atau ruang kerja Synapse Analytics memproses data di layanan penyimpanan tertaut dengan menggunakan layanan komputasi tertaut. Ini berisi urutan kegiatan yang setiap aktivitasnya melakukan operasi pemrosesan tertentu. Artikel ini menjelaskan Aktivitas Data Lake Analytics U-SQL yang menjalankan skrip U-SQL pada layanan komputasi tertaut Azure Data Lake Analytics.

Buat akun Azure Data Lake Analytics sebelum membuat alur dengan Aktivitas Data Lake Analytics U-SQL. Untuk mempelajari Azure Data Lake Analytics, lihat Mulai menggunakan Azure Data Lake Analytics.

Menambahkan aktivitas U-SQL untuk Azure Data Lake Analytics ke alur dengan UI

Untuk menggunakan aktivitas U-SQL untuk Azure Data Lake Analytics dalam alur, selesaikan langkah-langkah berikut:

  1. Cari Data Lake di panel Aktivitas alur, dan seret aktivitas U-SQL ke kanvas alur.

  2. Pilih aktivitas U-SQL baru di kanvas jika belum dipilih.

  3. Pilih tab Akun ADLA untuk memilih atau membuat layanan tertaut Azure Data Lake Analytics baru yang akan digunakan untuk menjalankan aktivitas U-SQL.

    Shows the UI for a U-SQL activity.

  4. Pilih tab Skrip untuk memilih atau membuat layanan tertaut penyimpanan baru, dan jalur di dalam lokasi penyimpanan, yang akan menghosting skrip.

    Shows the UI for the Script tab for a U-SQL activity.

Layanan tertaut Azure Data Lake Analytics

Anda dapat membuat layanan tertaut Data Lake Analytics untuk menautkan layanan komputasi Data Lake Analytics ke Azure Data Factory atau ruang kerja Synapse Analytics. Aktivitas Data Lake Analytics U-SQL dalam alur mengacu pada layanan tertaut ini.

Tabel berikut ini mendeskripsikan properti generik yang digunakan dalam definisi JSON.

Properti Deskripsi Wajib
jenis Properti jenis harus diatur ke: AzureDataLakeAnalytics. Ya
accountName Nama Akun Azure Data Lake Analytics. Ya
dataLakeAnalyticsUri URI Azure Data Lake Analytics. Tidak
subscriptionId ID langganan Azure Tidak
resourceGroupName Nama grup sumber daya Azure Tidak

Autentikasi perwakilan layanan

Layanan tertaut Azure Data Lake Analytics memerlukan autentikasi perwakilan layanan untuk menyambungkan ke layanan Azure Data Lake Analytics. Untuk menggunakan autentikasi perwakilan layanan, daftarkan entitas aplikasi di ID Microsoft Entra dan berikan akses ke Data Lake Analytics dan Data Lake Store yang digunakannya. Untuk langkah-langkah terperinci, lihat Autentikasi layanan ke layanan. Catat nilai berikut, yang Anda gunakan untuk menentukan layanan tertaut:

  • ID Aplikasi
  • Kunci Aplikasi
  • ID Penyewa

Beri izin layanan utama ke Azure Data Lake Analytics Anda menggunakan Panduan Tambahkan Pengguna.

Gunakan autentikasi perwakilan layanan dengan menentukan properti berikut:

Properti Deskripsi Wajib diisi
servicePrincipalId Menentukan ID klien aplikasi. Ya
servicePrincipalKey Tentukan kunci aplikasi. Ya
penyewa Tentukan informasi penyewa (nama domain atau ID penyewa) tempat aplikasi Anda berada. Anda dapat mengambilnya dengan mengarahkan mouse ke sudut kanan atas portal Microsoft Azure. Ya

Contoh: Autentikasi perwakilan layanan

{
    "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"
        }       
    }
}

Untuk mempelajari layanan tertaut ini, lihat Layanan tertaut komputasi.

Aktivitas Data Lake Analytics U-SQL

Cuplikan JSON berikut mendefinisikan alur dengan Aktivitas Data Lake Analytics U-SQL. Definisi aktivitas memiliki referensi ke layanan tertaut Azure Data Lake Analytics yang Anda buat sebelumnya. Untuk menjalankan skrip Data Lake Analytics U-SQL, Data Factory mengirimkan skrip yang Anda tentukan ke Data Lake Analytics, dan input dan output yang diperlukan didefinisikan dalam skrip untuk diambil dan di-output 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"
        }
    }   
}

Tabel berikut ini menjelaskan nama dan deskripsi properti yang spesifik untuk aktivitas ini.

Properti Deskripsi Wajib
nama Nama aktivitas di dalam alur Ya
description Teks yang menjelaskan apa yang dilakukan aktivitas. Tidak
jenis Untuk aktivitas U-SQL Data Lake Analytics, jenis aktivitasnya adalah DataLakeAnalyticsU-SQL. Ya
linkedServiceName Layanan Tertaut ke Azure Data Lake Analytics. Untuk mempelajari layanan tertaut ini, lihat artikel Layanan tertaut komputasi. Ya
scriptPath Jalur ke folder yang berisi skrip U-SQL. Nama berkas peka huruf besar/kecil. Ya
scriptLinkedService Layanan tertaut yang menautkan Azure Data Lake Store atau Azure Storage yang berisi skrip Ya
degreeOfParallelism Jumlah maksimum node yang digunakan secara bersamaan untuk menjalankan pekerjaan. Tidak
prioritas Menentukan pekerjaan mana dari semua yang diantrekan harus dipilih untuk dijalankan terlebih dahulu. Semakin rendah angkanya, semakin tinggi prioritasnya. Tidak
parameter Parameter untuk masuk ke skrip U-SQL. Tidak
runtimeVersion Versi runtime dari mesin U-SQL untuk digunakan. Tidak
compilationMode

Mode kompilasi U-SQL. Harus menjadi salah satu nilai ini: Semantik: Hanya lakukan pemeriksaan semantik dan pemeriksaan kewarasan yang diperlukan, Penuh: Lakukan kompilasi penuh, termasuk pemeriksaan sintaks, pengoptimalan, pembuatan kode, dll., SingleBox: Lakukan kompilasi lengkap, dengan pengaturan TargetType ke SingleBox. Jika Anda tidak menentukan nilai untuk properti ini, server menentukan mode kompilasi yang optimal.

Tidak

Lihat SearchLogProcessing.txt untuk definisi skrip.

Contoh skrip 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);

Dalam contoh skrip di atas, input dan output ke skrip ditentukan dalam parameter @in dan @out. Nilai untuk parameter @in dan @out dalam skrip U-SQL diteruskan secara dinamis oleh layanan menggunakan bagian 'parameter'.

Anda dapat menentukan properti lain seperti degreeOfParallelism dan prioritas serta dalam definisi jalur Anda untuk pekerjaan yang berjalan pada layanan Azure Data Lake Analytics.

Parameter dinamis

Dalam definisi jalur sampel, parameter masuk dan keluar ditetapkan dengan nilai yang dikodekan secara permanen.

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

Dimungkinkan untuk menggunakan parameter dinamis sebagai gantinya. Contohnya:

"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"
}

Dalam hal ini, file input masih diambil dari folder /datalake/input dan file output dihasilkan dalam folder /datalake/output. Nama file bersifat dinamis berdasarkan waktu mulai jendela yang diteruskan ketika alur dipicu.

Lihat artikel berikut yang menjelaskan cara mentransformasikan data dengan cara lain: