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ü desteklenmez. 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 |
logSettings | Çıkış günlüklerini depolama ayarları. Belirtilmezse, betik günlüğü devre dışı bırakılır. | Hayır |
logSettings.logDestination | Günlük çıkışının hedefi. ActivityOutput veya ExternalStore olabilir. Varsayılan: ActivityOutput. | Hayır |
logSettings.logLocationSettings | logDestination ExternalStore ise hedef konumun ayarları. | Hayır |
logSettings.logLocationSettings.linkedServiceName | Hedef konumun bağlı hizmeti. Yalnızca blob depolama desteklenir. | Hayır |
logSettings.logLocationSettings.path | Günlüklerin depolandığı 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 |
kayıtlar Etkilendi | 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 logLocationSettings sağlanmadı. |
outputLogsPath | Günlük dosyasının tam yolu. | enableScriptLogs true ise ve logLocationSettings sağlanıyorsa. |
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
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ı
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 bunu kullanabilir. Çı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.
İlgili içerik
Verileri başka şekillerde dönüştürmeyi açıklayan aşağıdaki makalelere bakın: