Synapse not defterini çalıştırarak verileri dönüştürme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

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!

Synapse işlem hattındaki Azure Synapse not defteri etkinliği bir Synapse not defteri çalıştırır. Bu makale , veri dönüştürme ve desteklenen dönüştürme etkinliklerine genel bir genel bakış sunan veri dönüştürme etkinlikleri makalesini oluşturur. 

Synapse not defteri etkinliği oluşturma

Synapse not defteri etkinliğini doğrudan Synapse işlem hattı tuvalinden veya not defteri düzenleyicisinden oluşturabilirsiniz. Synapse not defteri etkinliği, Synapse not defterinde seçilen Spark havuzunda çalışır.

İşlem hattı tuvalinden Synapse not defteri etkinliği ekleme

Synapse not defterini Etkinlikler'in altına sürükleyip Synapse işlem hattı tuvaline bırakın. Synapse not defteri etkinlik kutusunu seçin ve ayarlardaki geçerli etkinlik için not defteri içeriğini yapılandırın. Geçerli çalışma alanından mevcut bir not defterini seçebilir veya yeni bir not defteri ekleyebilirsiniz.

Geçerli çalışma alanından mevcut bir not defterini seçerseniz, doğrudan not defterinin sayfasını açmak için Aç düğmesine tıklayabilirsiniz.

(İsteğe bağlı) Spark havuzunu\Yürütücü boyutu\Dinamik olarak yürütücüleri ayır\En düşük yürütücüler\En fazla yürütücü\Sürücü boyutu ayarlarını da yeniden yapılandırabilirsiniz. Burada yeniden yapılandırılan ayarların Not Defteri'nde yapılandırma oturumunun ayarlarını değiştireceği belirtilmelidir. Geçerli not defteri etkinliğinin ayarlarında hiçbir şey ayarlanmadıysa, bu not defterindeki yapılandırma oturumunun ayarlarıyla çalışır.

ekran görüntüsü-gösteren-oluşturma-not defteri-etkinliği

Özellik Açıklama Gerekli
Spark havuzu Spark havuzuna başvuru. Listeden Apache Spark havuzunu seçebilirsiniz. Bu ayar boşsa, not defterinin spark havuzunda çalışır. Hayır
Yürütücü boyutu Oturum için belirtilen Apache Spark havuzunda ayrılan yürütücüler için kullanılacak çekirdek ve bellek sayısı. Hayır
Yürütücüleri dinamik olarak ayırma Bu ayar, Spark Uygulaması yürütücüleri ayırması için Spark yapılandırmasındaki dinamik ayırma özelliğine eşler. Hayır
En düşük yürütücüler İş için belirtilen Spark havuzunda ayrılacak en az yürütücü sayısı. Hayır
En fazla yürütücü İş için belirtilen Spark havuzunda ayrılacak en fazla yürütücü sayısı. Hayır
Sürücü boyutu İş için belirtilen Apache Spark havuzunda verilen sürücü için kullanılacak çekirdek ve bellek sayısı. Hayır

Not

Azure Synapse işlem hatlarında paralel Spark Not Defterlerinin yürütülmesi bir FIFO biçiminde kuyruğa alınır ve yürütülür, kuyruktaki iş sırası zaman sırasına göredir, kuyruktaki bir işin süresi 3 gündür, not defteri kuyruğunun yalnızca synapse işlem hattında çalıştığına dikkat edin.

Synapse işlem hattına not defteri ekleme

Mevcut bir işlem hattına not defteri eklemek veya yeni bir işlem hattı oluşturmak için sağ üst köşedeki İşlem hattına ekle düğmesini seçin.

ekran görüntüsü-gösteren-add-notebook-to-pipeline

Parametreleri geçirme

Parametre hücresi belirleme

Not defterinizi parametreleştirmek için hücre araç çubuğundaki diğer komutlara erişmek için üç noktayı (...) seçin. Ardından Parametre hücresini değiştir'i seçerek hücreyi parametre hücresi olarak belirleyin.

screenshot-showing-azure-notebook-toggle-parameter

Bu hücrede parametrelerinizi tanımlayın. Şu kadar basit bir şey olabilir:

a = 1
b = 3
c = "Default Value"

Bu parametrelere diğer hücrelerde başvurabilir ve not defterini çalıştırdığınızda parametre hücresinde belirttiğiniz varsayılan değerleri kullanabilirsiniz.

Bu not defterini bir işlem hattından çalıştırdığınızda, Azure Data Factory parametreler hücresini arar ve yürütme sırasında geçirilen parametreler için varsayılan olarak sağladığınız değerleri kullanır. İşlem hattından parametre değerleri atarsanız, yürütme altyapısı varsayılan değerlerin üzerine yazmak için giriş parametreleriyle parametre hücresinin altına yeni bir hücre ekler.

İşlem hattından parametre değerleri atama

Parametreleri olan bir not defteri oluşturduktan sonra, Synapse not defteri etkinliğine sahip bir işlem hattından yürütebilirsiniz. etkinliği işlem hattı tuvalinize ekledikten sonra, Ayarlar sekmesindeki Temel parametreler bölümünde parametre değerlerini ayarlayabilirsiniz.

screenshot-showing-assign-a-parameter

İpucu

Data Factory parametreleri otomatik olarak doldurmaz. Bunları el ile eklemeniz gerekir. Hem not defterindeki parametreler hücrenizde hem de işlem hattındaki temel parametrede tam olarak aynı adı kullandığınızdan emin olun.

Parametrelerinizi etkinliğinize ekledikten sonra Data Factory etkinliğinizde belirttiğiniz değerleri not defterinize geçirir ve not defteriniz parametreler hücresinde belirttiğiniz varsayılan değerler yerine bu yeni parametre değerleriyle çalışır.

Parametre değerleri atarken işlem hattı ifade dilini veya sistem değişkenlerini kullanabilirsiniz.

Synapse not defteri hücre çıkış değerini okuma

Aşağıdaki adımları izleyerek sonraki etkinliklerde not defteri hücre çıkış değerini okuyabilirsiniz:

  1. Etkinlik çıkışında göstermek istediğiniz değeri döndürmek için Synapse not defteri etkinliğinizde mssparkutils.notebook.exit API'sini çağırın, örneğin:

    mssparkutils.notebook.exit("hello world") 
    

    Not defteri içeriğini kaydedip işlem hattını yeniden deneme, not defteri etkinlik çıkışı 2. adımda aşağıdaki etkinlikler için kullanılabilecek exitValue değerini içerir.

  2. Not defteri etkinlik çıkışından exitValue özelliğini okuyun. Not defteri etkinlik çıkışından getirilen exitValue değerinin "hello world" değerine eşit olup olmadığını denetlemek için kullanılan örnek ifade aşağıda verilmiştir:

    ekran görüntüsü-gösteren-okuma-çıkış-değeri

Başka bir Synapse not defteri çalıştırma

Synapse not defteri etkinliğindeki diğer not defterlerine başvurmak için %run magic veya mssparkutils not defteri yardımcı programlarını çağırabilirsiniz. her ikisi de iç içe işlev çağrılarını destekler. Senaryonuza göre göz önünde bulundurmanız gereken bu iki yöntemin temel farklılıkları şunlardır:

  • %run magic , başvuruda bulunan not defterindeki tüm hücreleri %run hücresine kopyalar ve değişken bağlamını paylaşır. Not defteri1 ile not defteri2'ye %run notebook2 başvurduğunda ve notebook2 bir mssparkutils.notebook.exit işlevini çağırdığında, not defteri1'deki hücre yürütme durdurulur. Not defteri dosyasını "eklemek" istediğinizde %run magic kullanmanızı öneririz.
  • mssparkutils not defteri yardımcı programları , başvuruda bulunan not defterini bir yöntem veya işlev olarak çağırır. Değişken bağlamı paylaşılmıyor. Not defteri1 aracılığıyla not defteri2'ye mssparkutils.notebook.run("notebook2") başvurduğunda ve notebook2 bir mssparkutils.notebook.exit işlevini çağırdığında, not defteri1'deki hücre yürütme devam eder. Not defterini "içeri aktarmak" istediğinizde mssparkutils not defteri yardımcı programlarını kullanmanızı öneririz.

Not defteri etkinliği çalıştırma geçmişine bakın

İzleyici sekmesinin altındaki İşlem hattı çalıştırmaları'na gidin, tetiklediğiniz işlem hattını görürsünüz. Çalıştırma geçmişini görmek için not defteri etkinliğini içeren işlem hattını açın.

Not defterini aç düğmesini seçerek hem hücre girişi hem de çıkışı dahil olmak üzere en son not defteri çalıştırma anlık görüntüsünü görebilirsiniz.

Not defteri etkinlik geçmişini gösteren ekran görüntüsü.

Not defteri anlık görüntüsünü açın:

Açık not defteri anlık görüntüsünü gösteren ekran görüntüsü.

Giriş veya Çıkış düğmesini seçerek not defteri etkinlik girişini veya çıkışını görebilirsiniz. İşlem hattınız bir kullanıcı hatasıyla başarısız olduysa, ayrıntılı kullanıcı hatası izlemesini görmek için sonuç alanını denetlemek için çıkışı seçin.

Kullanıcı hatası ayrıntılarını gösteren ekran görüntüsü.

Synapse not defteri etkinlik tanımı

Synapse not defteri etkinliğinin örnek JSON tanımı aşağıda verilmiştir:

{
    "name": "parameter_test",
    "type": "SynapseNotebook",
    "dependsOn": [],
    "policy": {
        "timeout": "7.00:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "notebook": {
            "referenceName": "parameter_test",
            "type": "NotebookReference"
        },
        "parameters": {
            "input": {
                "value": {
                    "value": "@pipeline().parameters.input",
                    "type": "Expression"
                }
            }
        }
    }
}

Synapse not defteri etkinlik çıkışı

Synapse not defteri etkinlik çıkışının örnek JSON'u aşağıda verilmiştir:

{
{
    "status": {
        "Status": 1,
        "Output": {
            "status": <livySessionInfo>
            },
            "result": {
                "runId": "<GUID>",
                "runStatus": "Succeed",
                "message": "Notebook execution is in Succeeded state",
                "lastCheckedOn": "2021-03-23T00:40:10.6033333Z",
                "errors": {
                    "ename": "",
                    "evalue": ""
                },
                "sessionId": 4,
                "sparkpool": "sparkpool",
                "snapshotUrl": "https://myworkspace.dev.azuresynapse.net/notebooksnapshot/{guid}",
                "exitCode": "abc" // return value from user notebook via mssparkutils.notebook.exit("abc")
            }
        },
        "Error": null,
        "ExecutionDetails": {}
    },

    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US 2)",
    "executionDuration": 234,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "ExternalActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.06666666666666667,
                "unit": "Hours"
            }
        ]
    }
}

Bilinen sorunlar

İşlem Hattı Not Defteri etkinliğinde not defteri adı parametreliyse, hata ayıklama çalıştırmalarında yayımlanmamış durumdaki not defteri sürümüne başvurulamazsınız.