Azure Data Factory veya Synapse Analytics'te Betik etkinliğini kullanarak 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!

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. Betik etkinliği, işlem hatları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 sanal makinesindeki (VM) aşağıdaki veri depolarından birinde bir SQL betiği çağırabilirsiniz:

  • Azure SQL Veritabanı
  • Azure Synapse Analytics
  • SQL Server Veritabanı. SQL Server kullanıyorsanız, veritabanını barındıran makineye veya veritabanına erişimi olan ayrı bir makineye Şirket içinde barındırılan tümleştirme çalışma zamanı yükleyin. Şirket İçinde Barındırılan tümleştirme çalışma zamanı, şirket içindeki/Azure VM'deki veri kaynaklarını bulut hizmetleriyle güvenli ve yönetilen bir şekilde bağlayan bir bileşendir. Ayrıntılar için Şirket içinde 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. Betik 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ği tanımlamak için 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
Tür Etkinliğin türü , "Betik" olarak ayarlanır. Yes
typeProperties Betik Etkinliğini yapılandırmak için özellikleri belirtin. Yes
linkedServiceName Betiğin çalıştığı hedef veritabanı. Bağlı bir hizmete başvuru olmalıdır. Yes
betikler Betiği temsil eden bir nesne dizisi. Hayır
scripts.text 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
scripts.parameter Betiğin parametre dizisi. Hayır
scripts.parameter.name Parametrenin adı. Hayır
scripts.parameter.value Parametre değeri. Hayır
scripts.parameter.type 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
scripts.parameter.direction Parametresinin yönü. Giriş, Çıkış, InputOutput olabilir. Yön Çıkış ise değer yoksayılır. ReturnValue türü desteklenmiyor. SP'nin dönüş değerini almak için bir çıkış parametresine ayarlayın. Hayır
scripts.parameter.size 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 bekleme süresi. Hayır
günlük Ayarlar Çıkış günlüklerini depolama ayarları. Belirtilmezse, betik günlüğü devre dışı bırakılır. Hayır
log Ayarlar.logDestination Günlük çıkışının hedefi. ActivityOutput veya ExternalStore olabilir. Varsayılan: ActivityOutput. Hayır
log Ayarlar.logLocation Ayarlar logDestination ExternalStore ise hedef konumun ayarları. Hayır
logSettiongs.logLocation Ayarlar.linkedServiceName Hedef konumun bağlı hizmeti. Yalnızca blob depolama desteklenir. Hayır
log Ayarlar.logLocation Ayarlar.path Günlüklerin depolanacağı klasör yolu. Hayır

Etkinlik çıkışı

Ö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
resultSetCount Betik tarafından döndürülen sonuç kümelerinin sayısı. Her zaman
resultSets Tüm sonuç kümelerini içeren dizi. Her zaman
resultSets.rowCount Sonuç kümesindeki toplam satır sayısı. Her zaman
resultSets.rows Sonuç kümesindeki satır dizisi. Her zaman
Recordsaffected Betik tarafından etkilenen satırların satır sayısı. ScriptType NonQuery ise.
Outputparameters Betiğin çıkış parametreleri. Parametre türü Output veya InputOutput ise.
outputLogs Betik tarafından yazılan günlükler, örneğin print deyimi. Bağlayıcı log deyimini destekliyorsa ve enableScriptLogs true ise ve logLocation Ayarlar sağlanmaz.
outputLogsPath Günlük dosyasının tam yolu. enableScriptLogs true ve logLocation ise Ayarlar sağlanır.
outputTruncated Çı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 yürütülürken çı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ırlaması olduğundan, çıkış şu sırada kesilir: günlükler -> parametreler -> satırlar. Bu, tek bir betik bloğu için geçerlidir. Bu, sonraki betik bloğunun çıkış satırlarının önceki günlükleri çıkarmayacağı anlamına gelir.
  • Günlüğün neden olduğu herhangi bir hata etkinlikte başarısız olmaz.
  • Aşağı akış etkinliğinde etkinlik çıktısı sonuç Kümelerini kullanmak için lütfen Arama etkinliği sonucu belgelerine bakın.
  • Günlüğe kaydetme amacıyla 'PRINT' deyimlerini 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

Screenshot showing the UI to configure an inline script.

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.

Günlük Kaydı

Screenshot showing the UI for the logging settings for a script.

Günlük 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 tarafından kullanılabilir. Çıkış boyutu 4 MB ile sınırlıdır.
  • Dış depolama - Çıkışı depolamada kalıcı hale döndürür. Çıktı 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: