Azure Data Factory veya Synapse Analytics'te Betik etkinliğini kullanarak verileri dönüştürme

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Ham verileri tahminlere ve içgörülere dönüştürmek ve işlemek için Data Factory veya Synapse işlem hattında veri dönüştürme etkinliklerini kullanırsınız. Komut dosyası etkinliği, veri yollarının desteklediği dönüştürme etkinliklerinden biridir. Bu makale, veri dönüştürme ve desteklenen dönüştürme etkinliklerine genel bir genel bakış sunan dönüştürme verileri makalesini temel alır.

Betik etkinliğini kullanarak Veri İşleme Dili (DML) ve Veri Tanımlama Dili (DDL) ile yaygın işlemleri yürütebilirsiniz. INSERT, UPDATE, DELETE ve SELECT gibi DML deyimleri kullanıcıların veritabanına veri eklemesine, değiştirmesine, silmesine ve almasına izin verir. CREATE, ALTER ve DROP gibi DDL deyimleri, veritabanı yöneticisinin tablolar, dizinler ve kullanıcılar gibi veritabanı nesneleri oluşturmasına, değiştirmesine ve kaldırmasına olanak sağlar.

Betik etkinliğini kullanarak kuruluşunuzdaki veya Azure bir sanal makinedeki (VM) aşağıdaki veri depolarından birinde bir SQL betiği çağırabilirsiniz:

  • Azure Database for PostgreSQL (Sürüm 2.0)
  • Azure SQL Database
  • Azure Synapse Analytics
  • veritabanı SQL Server. SQL Server kullanıyorsanız, veritabanını barındıran makineye veya veritabanına erişimi olan ayrı bir makineye Self-hosted tümleştirme çalışma zamanı yükleyin. Self-Hosted tümleştirme çalışma zamanı, şirket içi/Azure VM'deki veri kaynaklarını bulut hizmetlerine güvenli ve yönetilen bir şekilde bağlayan bir bileşendir. Ayrıntılar için Öz barındırılan tümleştirme çalışma zamanı makalesine bakın.
  • Oracle
  • Snowflake

Betik tek bir SQL deyimi veya sıralı olarak çalışan birden çok SQL deyimi içerebilir. Script görevini aşağıdaki amaçlarla kullanabilirsiniz:

  • Veri ekleme hazırlığında bir tabloyu kesme.
  • Tablolar ve görünümler gibi veritabanı nesneleri oluşturun, değiştirin ve bırakın.
  • Veri yüklemeden önce olgu ve boyut tablolarını yeniden oluşturun.
  • Saklı yordamları çalıştırın. SQL deyimi geçici bir tablodan sonuç döndüren bir saklı yordam çağırırsa, sonuç kümesinin meta verilerini tanımlamak için WITH RESULT SETS seçeneğini kullanın.
  • Sorgudan döndürülen satır kümesini aşağı akış tüketimi için etkinlik çıkışı olarak kaydedin.

Söz dizimi ayrıntıları

Betik etkinliğini tanımlamaya yönelik JSON biçimi aşağıdadır:

{ 
   "name": "<activity name>", 
   "type": "Script", 
   "linkedServiceName": { 
      "referenceName": "<name>", 
      "type": "LinkedServiceReference" 
    }, 
   "typeProperties": { 
      "scripts" : [ 
         { 
            "text": "<Script Block>", 
            "type": "<Query> or <NonQuery>", 
            "parameters":[ 
               { 
                  "name": "<name>", 
                  "value": "<value>", 
                  "type": "<type>", 
                  "direction": "<Input> or <Output> or <InputOutput>", 
                  "size": 256 
               }, 
               ... 
            ] 
         }, 
         ... 
      ],     
         ... 
         ] 
      }, 
      "scriptBlockExecutionTimeout": "<time>",  
      "logSettings": { 
         "logDestination": "<ActivityOutput> or <ExternalStore>", 
         "logLocationSettings":{ 
            "linkedServiceName":{ 
               "referenceName": "<name>", 
               "type": "<LinkedServiceReference>" 
            }, 
            "path": "<folder path>" 
         } 
      } 
    } 
} 

Aşağıdaki tabloda bu JSON özellikleri açıklanmaktadır:

Özellik adı Açıklama Gerekli
Adı Etkinlik adı. Yes
Tip Etkinliğin türü , "Betik" olarak ayarlanır. Yes
typeProperties Betik Komutunu yapılandırmak için özellikleri tanımlayın. Yes
bağlantılıHizmetAdı Betiğin üzerinde çalıştığı hedef veritabanı. Bağlı bir hizmete referans olmalıdır. Yes
betikler Betiği temsil eden bir nesne dizisi. Hayır
betikler.metin Bir sorgu bloğunun düz metni. Hayır
scripts.type Sorgu bloğunun türü. Query veya NonQuery olabilir. Varsayılan: Sorgu. Hayır
betikler.parametre Betiğin parametre dizisi. Hayır
scripts.parameter.name Parametrenin adı. Hayır
scripts.parameter.value Parametre değeri. Hayır
betikler.parametre.tipi Parametresinin veri türü. Türü mantıksal türdür ve her bağlayıcının tür eşlemesini izler. Hayır
script.parametre.yön Parametrenin yönü. Giriş, Çıkış, InputOutput olabilir. Çıkış yönünde ise değer yoksayılır. ReturnValue türü desteklenmez. Dönüş değerini almak için SP'nin değerini bir çıkış parametresine ayarlayın. Hayır
script.parametre.boyut Parametrenin en büyük boyutu. Yalnızca dize/bayt[] türündeki Output/InputOutput yön parametresi için geçerlidir. Hayır
scriptBlockExecutionTimeout Betik bloğu yürütme işleminin zaman aşımına uğramadan önce tamamlanması için gereken bekleme süresi. Hayır
logSettings Çıkış günlüklerini depolama ayarları. Belirtilmezse, betik günlüğü devre dışı bırakılır. Hayır
logSettings.logDestination Log kaydı çıktısının hedefi. ActivityOutput veya ExternalStore olabilir. Varsayılan: ActivityOutput. Hayır
logSettings.logLocationSettings Eğer logDestination ExternalStore ise, hedef konumun ayarları. Hayır
logSettings.logLocationSettings.linkedServiceName Hedef konum ile ilgili bağlı hizmet. Yalnızca blob depolama desteklenir. Hayır
logSettings.logLocationSettings.path Günlüklerin depolandığı klasör yolu. Hayır

Etkinlik çıktısı

Örnek çıkış:

{ 
    "resultSetCount": 2, 
    "resultSets": [ 
        { 
            "rowCount": 10, 
            "rows":[ 
                { 
                    "<columnName1>": "<value1>", 
                    "<columnName2>": "<value2>", 
                    ... 
                } 
            ] 
        }, 
        ... 
    ], 
    "recordsAffected": 123, 
    "outputParameters":{ 
        "<parameterName1>": "<value1>", 
        "<parameterName2>": "<value2>" 
    }, 
    "outputLogs": "<logs>", 
    "outputLogsLocation": "<folder path>", 
    "outputTruncated": true, 
    ... 
} 
Özellik adı Açıklama Koşul
sonuç kümesi sayısı Betik tarafından döndürülen sonuç kümelerinin sayısı. Her zaman
sonuç kümeleri Tüm sonuç kümelerini içeren dizi. Her zaman
resultSets.rowCount (satır sayısı) Sonuç kümesindeki toplam satır sayısı. Her zaman
resultSets.rows Sonuç kümesindeki satır dizisi. Her zaman
etkilenen kayıtlar Betik tarafından etkilenen satırların satır sayısı. Eğer scriptType NonQuery ise
Çıkış Parametreleri Komut dosyasının çıkış parametreleri. Parametre türü Output veya InputOutput ise.
outputLogs Betik tarafından yazılan günlükler, örneğin print ifadesi. Bağlayıcı log deyimini destekliyorsa ve enableScriptLogs true ise ve logLocationSettings sağlanmadı.
outputLogsPath Günlük dosyasının tam yolu. enableScriptLogs true ise ve logLocationSettings sağlanıyorsa.
çıkış kesildi Çıkışın sınırları aşıp aşmadığını ve kırpılıp kesilmediğini gösteren gösterge. Çıkış sınırları aşarsa.

Not

  • Bir betik bloğu her seferinde yürütüldüğünde, çıkış toplanır. Son çıkış, tüm betik bloğu çıkışlarının birleştirilmiş sonucudur. Farklı betik bloğunda aynı ada sahip çıkış parametresinin üzerine yazılır.
  • Çıktının boyut/satır sınırı olduğundan, çıkış aşağıdaki sırayla kesilir: logs -> parameters -> rows. Bu, tek bir betik bloğu için geçerlidir. Sonraki betik bloğunun çıkış satırları, önceki günlükleri silmeyecektir.
  • Günlüğün neden olduğu herhangi bir hata, etkinliğin başarısız olmasına neden olmaz.
  • Aşağı akış etkinliğinde etkinlik çıktısı kümelerini kullanmak için Arama etkinliği sonucu belgelerine bakın.
  • 'PRINT' deyimlerini özellikle günlüğe kaydetme amacıyla kullanırken outputLogs kullanın. Sorgu resultSets döndürürse, etkinlik çıkışında kullanılabilir ve 5000 satır/4 MB boyut sınırıyla sınırlandırılır.

Kullanıcı arabirimini kullanarak Betik etkinliğini yapılandırma

Satır içi betik

Satır içi betiği yapılandırma arayüzünü gösteren ekran görüntüsü.

Satır içi betikler, işlem hattı meta verilerinin bir parçası olarak depolandığından İşlem Hattı CI/CD ile iyi tümleşir.

Loglama

Bir betiğin günlük ayarlarının kullanıcı arabirimini gösteren ekran görüntüsü.

Kayıt tutma seçenekleri:

  • Disable - Hiçbir yürütme çıkışı günlüğe kaydedilmedi.
  • Etkinlik çıktısı - Betik yürütme çıkışı etkinlik çıkışına eklenir. Aşağı akış etkinlikleri bunu tüketebilir. Çıkış boyutu 4 MB ile sınırlıdır.
  • Dış depolama - Çıkışı depolamada kalıcı hale döndürür. Çıkış boyutu 2 MB'tan büyükse veya çıkışı depolama hesabınızda açıkça kalıcı hale getirmek istiyorsanız bu seçeneği kullanın.

Not

Faturalama - Betik etkinliği, İşlem Hattı etkinlikleri olarak faturalandırılır.

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