Azure Data Factory ve Synapse Analytics ile Azure Data Lake Analytics'te U-SQL betikleri çalıştırarak verileri işleme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Azure Data Factory veya Synapse Analytics çalışma alanında işlem hattı, bağlı işlem hizmetlerini kullanarak bağlı depolama hizmetlerindeki verileri işler. Her etkinliğin belirli bir işleme işlemini gerçekleştirdiği bir etkinlik dizisi içerir. Bu makalede, Azure Data Lake Analytics işlem bağlı hizmetinde U-SQL betiği çalıştıran Data Lake Analytics U-SQL Etkinliği açıklanmaktadır.

Data Lake Analytics U-SQL Etkinliği ile işlem hattı oluşturmadan önce bir Azure Data Lake Analytics hesabı oluşturun. Azure Data Lake Analytics hakkında bilgi edinmek için bkz . Azure Data Lake Analytics'i kullanmaya başlama.

Kullanıcı arabirimiyle bir işlem hattına Azure Data Lake Analytics için U-SQL etkinliği ekleme

İşlem hattında Azure Data Lake Analytics için U-SQL etkinliği kullanmak için aşağıdaki adımları tamamlayın:

  1. İşlem hattı Etkinlikleri bölmesinde Data Lake'i arayın ve bir U-SQL etkinliğini işlem hattı tuvaline sürükleyin.

  2. Henüz seçili değilse tuvaldeki yeni U-SQL etkinliğini seçin.

  3. U-SQL etkinliğini yürütmek için kullanılacak yeni bir Azure Data Lake Analytics bağlı hizmeti seçmek veya oluşturmak için ADLA Hesabı sekmesini seçin.

    Shows the UI for a U-SQL activity.

  4. Yeni bir depolama bağlı hizmeti seçmek veya oluşturmak için Betik sekmesini ve betiği barındıracak depolama konumu içinde bir yol seçin.

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

Azure Data Lake Analytics bağlı hizmeti

Azure Data Lake Analytics işlem hizmetini bir Azure Data Factory veya Synapse Analytics çalışma alanına bağlamak için bir Azure Data Lake Analytics bağlı hizmeti oluşturursunuz. İşlem hattındaki Data Lake Analytics U-SQL etkinliği bu bağlı hizmeti ifade eder.

Aşağıdaki tabloda, JSON tanımında kullanılan genel özellikler için açıklamalar sağlanmaktadır.

Özellik Açıklama Gerekli
type type özelliği şu şekilde ayarlanmalıdır: AzureDataLakeAnalytics. Evet
Accountname Azure Data Lake Analytics Hesap Adı. Evet
dataLakeAnalyticsUri Azure Data Lake Analytics URI'si. No
subscriptionId Azure abonelik kimliği No
resourceGroupName Azure kaynak grubu adı No

Hizmet sorumlusu kimlik doğrulaması

Azure Data Lake Analytics bağlı hizmeti, Azure Data Lake Analytics hizmetine bağlanmak için hizmet sorumlusu kimlik doğrulaması gerektirir. Hizmet sorumlusu kimlik doğrulamasını kullanmak için bir uygulama varlığını Microsoft Entra Id'ye kaydedin ve hem Data Lake Analytics'e hem de kullandığı Data Lake Store'a erişim verin. Ayrıntılı adımlar için bkz . Hizmet-hizmet kimlik doğrulaması. Bağlı hizmeti tanımlamak için kullandığınız aşağıdaki değerleri not edin:

  • Uygulama Kimliği
  • Uygulama anahtarı
  • Kiracı kimliği

Kullanıcı Ekleme Sihirbazı'nı kullanarak Azure Data Lake Analytics'inize hizmet sorumlusu izni verin.

Aşağıdaki özellikleri belirterek hizmet sorumlusu kimlik doğrulamasını kullanın:

Özellik Açıklama Gerekli
servicePrincipalId Uygulamanın istemci kimliğini belirtin. Evet
servicePrincipalKey Uygulamanın anahtarını belirtin. Evet
tenant Uygulamanızın bulunduğu kiracı bilgilerini (etki alanı adı veya kiracı kimliği) belirtin. Fareyi Azure portalının sağ üst köşesine getirerek alabilirsiniz. Evet

Örnek: Hizmet sorumlusu kimlik doğrulaması

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

Bağlı hizmet hakkında daha fazla bilgi edinmek için bkz . Bağlı hizmetleri hesaplama.

Data Lake Analytics U-SQL Etkinliği

Aşağıdaki JSON kod parçacığı, Data Lake Analytics U-SQL Etkinliği ile bir işlem hattı tanımlar. Etkinlik tanımı, daha önce oluşturduğunuz Azure Data Lake Analytics bağlı hizmetine bir başvuru içerir. Data Lake Analytics U-SQL betiğini yürütmek için hizmet, belirttiğiniz betiği Data Lake Analytics'e gönderir ve Data Lake Analytics'in getirmesi ve çıkışı için gerekli girişler ve çıkışlar betikte tanımlanır.

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

Aşağıdaki tabloda, bu etkinliğe özgü özelliklerin adları ve açıklamaları açıklanmaktadır.

Özellik Açıklama Gerekli
name İşlem hattındaki etkinliğin adı Evet
açıklama Etkinliğin ne yaptığını açıklayan metin. No
type Data Lake Analytics U-SQL etkinliği için etkinlik türü DataLakeAnalyticsU-SQL'dir. Evet
linkedServiceName Azure Data Lake Analytics'e Bağlı Hizmet. Bu bağlı hizmet hakkında bilgi edinmek için bkz . Bağlı hizmetleri hesaplama makalesi. Evet
scriptPath U-SQL betiğini içeren klasörün yolu. Dosyanın adı büyük/küçük harfe duyarlıdır. Evet
scriptLinkedService Betiği içeren Azure Data Lake Store veya Azure Depolama bağlayan bağlı hizmet Evet
degreeOfParallelism İşi çalıştırmak için aynı anda kullanılan en fazla düğüm sayısı. No
Öncelik Kuyruğa alınan işlerden hangilerinin önce çalıştırılacak şekilde seçilmesi gerektiğini belirler. Sayı ne kadar düşükse öncelik de o kadar yüksektir. No
parametreler U-SQL betiğine geçirmek için parametreler. No
runtimeVersion Kullanılacak U-SQL altyapısının çalışma zamanı sürümü. No
Compilationmode

U-SQL derleme modu. Şu değerlerden biri olmalıdır: Semantik: Yalnızca anlam denetimleri ve gerekli gizlilik denetimleri gerçekleştirin, Tam: Söz dizimi denetimi, iyileştirme, kod oluşturma vb. dahil olmak üzere tam derlemeyi gerçekleştirin, SingleBox: TargetType ayarı singlebox olarak ayarlanır. Bu özellik için bir değer belirtmezseniz, sunucu en uygun derleme modunu belirler.

No

Betik tanımı için bkz . SearchLogProcessing.txt .

Örnek U-SQL betiği

@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);

Yukarıdaki betik örneğinde, betiğin girişi ve çıkışı @in ve @out parametrelerinde tanımlanır. U-SQL betiğindeki @in ve @out parametreleri için değerler hizmet tarafından 'parameters' bölümü kullanılarak dinamik olarak geçirilir.

Azure Data Lake Analytics hizmetinde çalışan işler için işlem hattı tanımınızda degreeOfParallelism ve priority gibi diğer özellikleri belirtebilirsiniz.

Dinamik parametreler

Örnek işlem hattı tanımında, in ve out parametreleri sabit kodlanmış değerlerle atanır.

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

Bunun yerine dinamik parametreler kullanmak mümkündür. Örneğin:

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

Bu durumda, giriş dosyaları /datalake/input klasöründen alınmaya devam edilir ve çıkış dosyaları /datalake/output klasöründe oluşturulur. Dosya adları, işlem hattı tetiklendiğinde geçirilen pencere başlangıç zamanına göre dinamiktir.

Verileri başka şekillerde dönüştürmeyi açıklayan aşağıdaki makalelere bakın: