Pipelines ve çalışma Azure Data Factory etkinlikler Azure Synapse Analytics
Uygulama hedefi:
Azure SYNAPSE Analytics 'i Azure Data Factory
Önemli
Machine Learning Studio (klasik) desteği 31 Ağustos 2024'te sona erecek. Bu tarihe kadar Azure Machine Learning öneririz.
1 Aralık 2021'den itibaren yeni Machine Learning Studio (klasik) kaynakları oluşturamayacak. 31 Ağustos 2024'e kadar mevcut Machine Learning Studio (klasik) kaynaklarını kullanmaya devam edersiniz.
- makine öğrenmesi projelerini ML Studio'dan (klasik)Azure Machine Learning.
- Daha fazla bilgi Azure Machine Learning
ML Studio (klasik) belgeleri kaldır ediliyor ve gelecekte güncelleştirilenene kadar güncelleştirilemiyor.
Bu makale, Azure Data Factory ve Azure Synapse Analytics'daki işlem hatlarını ve etkinlikleri anlamanıza yardımcı olur ve bunları veri taşıma ve veri işleme senaryolarınız için uz- uç veri odaklı iş akışları oluşturmak için kullanır.
Genel Bakış
Bir Data Factory veya Synapse Çalışma Alanı'nın bir veya daha fazla işlem hattı olabilir. İşlem hattı, bir görevi gerçekleştiren etkinliklerden oluşan mantıksal gruptur. Örneğin bir işlem hattında günlük verilerini alıp temizleyen ve ardından bu verilerin analiz edilmesi için bir eşleme veri akışı başlatan etkinlikler bulunabilir. İşlem hattı, etkinlikleri ayrı ayrı değil küme halinde yönetmenizi sağlar. Etkinlikleri tek tek zamanlamak yerine işlem hattını dağıtabilir ve zamanlayabilirsiniz.
İşlem hattındaki etkinlikler, verilerinizde gerçekleştirilecek eylemleri tanımlar. Örneğin, verileri bir Azure Blob depolama SQL Server kopyalamak için kopyalama etkinliği Depolama. Ardından bir veri akışı etkinliği veya Databricks Not Defteri etkinliği kullanarak verileri blob depolamadan iş zekası raporlama çözümlerinin der Azure Synapse Analytics bir havuza iş akışından dönüştürebilirsiniz.
Azure Data Factory Azure Synapse Analytics üç etkinlik grubu vardır: veri taşıma etkinlikleri,veri dönüştürme etkinliklerive denetim etkinlikleri. Bir etkinlik sıfır veya daha fazla giriş veri kümesi alıp bir veya daha fazla çıkış veri kümesi üretebilir. Aşağıdaki diyagramda işlem hattı, etkinlik ve veri kümesi arasındaki ilişki gösterir:
Giriş veri kümesi işlem hattında bir etkinliğin girişini, çıktı veri kümesi ise etkinliğin çıktısını temsil eder. Veri kümeleri tablolar, dosyalar, klasörler ve belgeler gibi farklı veri depolarındaki verileri tanımlar. Bir veri kümesi oluşturduktan sonra, bu kümeyi bir işlem hattındaki etkinliklerle birlikte kullanabilirsiniz. Örneğin, veri kümesi bir Kopyalama Etkinliğinin veya HDInsightHive Etkinliğinin giriş/çıkış veri kümesi olabilir. Veri kümeleri hakkında daha fazla bilgi için Azure Data Factory'de Veri Kümeleri makalesine bakın.
Veri taşıma etkinlikleri
Data Factory’deki Kopyalama Etkinliği bir kaynak veri deposundan havuz veri deposuna verileri kopyalar. Data Factory bu bölümdeki tabloda listelenen veri depolarını destekler. Herhangi bir kaynaktan gelen veriler herhangi bir havuza yazılabilir. Bir depoya veya depodan veri kopyalama hakkında bilgi edinmek için veri deposuna tıklayın.
Not
Bir bağlayıcı Önizleme olarak işaretlendiyse bu bağlayıcıyı deneyip bunun hakkındaki görüşlerinizi bize bildirebilirsiniz. Çözümünüzde bir önizleme bağlayıcısı bağımlılığı olmasını istiyorsanız Azure desteğine başvurun.
Daha fazla bilgi için Kopyalama Etkinliği - Genel Bakış makalesine bakın.
Veri dönüştürme etkinlikleri
Azure Data Factory ve Azure Synapse Analytics tek eklensin veya başka bir etkinlikle zincirleme aşağıdaki dönüştürme etkinliklerini destekler.
| Veri dönüştürme etkinliği | İşlem ortamı |
|---|---|
| Veri Akışı | Apache Spark yönetilen kümeler Azure Data Factory |
| Azure İşlevi | Azure İşlevleri |
| Hive | HDInsight [Hadoop] |
| Domuz | HDInsight [Hadoop] |
| MapReduce | HDInsight [Hadoop] |
| Hadoop Akışı | HDInsight [Hadoop] |
| Spark | HDInsight [Hadoop] |
| ML Studio (klasik) etkinlikleri: Batch Yürütme ve Güncelleştirme Kaynağı | Azure VM |
| Saklı Yordam | Azure SQL, Azure Synapse Analytics veya SQL Server |
| U-SQL | Azure Data Lake Analytics |
| Özel Etkinlik | Azure Batch |
| Databricks Not Defteri | Azure Databricks |
| Databricks Jar Etkinliği | Azure Databricks |
| Databricks Python Etkinliği | Azure Databricks |
Daha fazla bilgi için veri dönüştürme etkinlikleri makalesine bakın.
Denetim akışı etkinlikleri
Aşağıdaki denetim akışı etkinlikleri desteklenir:
| Denetim etkinliği | Description |
|---|---|
| Değişken Ekleme | Var olan bir dizi değişkenine değer ekleyin. |
| İşlem Hattını Yürütme | İşlem Hattı Yürütme etkinliği işlem hattı Data Factory synapse işlem hattının çağrılmalarını sağlar. |
| Filtrele | Giriş dizisine filtre ifadesi uygulama |
| Her biri için | ForEach Etkinliği, işlem hattınızda yinelenen bir denetim akışını tanımlar. Bu etkinlik bir koleksiyon üzerinde yinelemek için kullanılır ve bir döngüde belirtilen etkinlikleri yürütür. Bu etkinliğin döngü uygulaması, programlama dillerindeki Foreach döngü yapısına benzer. |
| Meta Verileri Al | GetMetadata etkinliği, bir veri işlem hattında veya Synapse işlem hattında Data Factory verileri almak için kullanılabilir. |
| If Condition Etkinliği | If Koşulu, doğru veya yanlış sonucunu vermesi temelinde dallanmak için kullanılabilir. If Koşulu etkinliği, programlama dilerindeki If deyimiyle aynı işlevselliği sağlar. Koşulun değerlendirmesi olduğunda bir dizi etkinlik ve koşul değerlendiriken başka bir etkinlik true kümesi değerlendirilir false. |
| Arama Etkinliği | Arama Etkinliği herhangi bir dış kaynaktan bir record/ table name/ değerini okumak veya aramak için kullanılabilir. Sonraki etkinliklerde bu çıktıya daha fazla başvurulabilir. |
| Set Variable | Var olan bir değişkenin değerini ayarlayın. |
| Until Etkinliği | Programlama dillerindeki Do-Until döngü yapısına benzer bir Do-Until döngüsü uygular. Etkinlikle ilişkilendirilmiş olan koşul doğru sonucunu verene kadar bir dizi etkinliği döngüsel olarak yürütür. Until etkinliği için bir zaman aşımı değeri belirtabilirsiniz. |
| Doğrulama Etkinliği | İşlem hattının yalnızca bir başvuru veri kümesi varsa, belirtilen ölçütleri karşılarsa veya bir zaman aşımına ulaşıldı ise yürütmeye devam ettiğine emin olun. |
| Wait Etkinliği | İşlem hattında Bekleme etkinliği kullanırken, işlem hattı sonraki etkinliklerin yürütülmesine devam etmeden önce belirtilen süre bekler. |
| Web Etkinliği | Web Etkinliği, bir işlem hattından özel bir REST uç noktasını çağırma için kullanılabilir. Etkinlik tarafından kullanılacak ve erişilecek veri kümelerini ve bağlı hizmetleri geçirebilirsiniz. |
| Web Kancası Etkinliği | Web kancası etkinliğini kullanarak bir uç nokta çağırın ve bir geri çağırma URL 'SI geçirin. İşlem hattı çalıştırması, bir sonraki etkinliğe devam etmeden önce geri aramanın çağrılmasını bekler. |
İşlem Hattı JSON
JSON biçiminde işlem hattı şöyle tanımlanır:
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities":
[
],
"parameters": {
},
"concurrency": <your max pipeline concurrency>,
"annotations": [
]
}
}
| Etiket | Açıklama | Tür | Gerekli |
|---|---|---|---|
| name | İşlem hattının adı. İşlem hattının gerçekleştirdiği eylemi temsil eden bir ad belirtin.
|
Dize | Yes |
| açıklama | İşlem hattının ne için kullanıldığını açıklayan metni belirtin. | Dize | No |
| etkinlikler | Etkinlikler bölümünde tanımlanmış bir veya daha fazla etkinlik olabilir. Etkinliklerin JSON öğesi hakkında ayrıntılı bilgi için Etkinlik JSON bölümüne bakın. | Dizi | Yes |
| parameters | Parametreler bölümü, işlem hattınızı yeniden kullanım için esnek hale getiren, işlem hattında tanımlanmış bir veya daha fazla parametreyi içerebilir. | Liste | No |
| eşzamanlılık | İşlem hattının sahip olduğu en fazla eşzamanlı çalıştırma sayısı. Varsayılan olarak, en fazla bir değer yoktur. Eşzamanlılık sınırına ulaşıldığında, ek işlem hattı çalıştırmaları daha önce tamamlanana kadar sıraya alınır | Sayı | No |
| açıklamaları | İşlem hattı ile ilişkili etiketlerin listesi | Dizi | No |
Etkinlik JSON
Etkinlikler bölümünde tanımlanmış bir veya daha fazla etkinlik olabilir. İki temel etkinlik türü vardır: Yürütme ve Denetim Etkinlikleri.
Yürütme etkinlikleri
Yürütme etkinlikleri veri taşıma ve veri dönüştürme etkinliklerini içerir. Aşağıdaki üst düzey yapıya sahiptir:
{
"name": "Execution Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"linkedServiceName": "MyLinkedService",
"policy":
{
},
"dependsOn":
{
}
}
Aşağıdaki tabloda, etkinlik JSON tanımındaki özellikler açıklamaktadır:
| Etiket | Açıklama | Gerekli |
|---|---|---|
| name | Etkinliğin adı. Etkinliğin gerçekleştirdiği eylemi temsil eden bir ad belirtin.
|
Yes |
| açıklama | Etkinliğin ne olduğunu veya ne için kullanıldığını açıklayan metin | Yes |
| tür | Etkinliğin türü. Farklı etkinlik türleri için veri taşıma etkinlikleri, veri dönüştürme etkinliklerive Denetim etkinlikleri bölümlerine bakın. | Yes |
| linkedServiceName | Etkinlik tarafından kullanılan bağlı hizmetin adı. Bir etkinlik için gerekli işlem ortamına bağlanan bağlı hizmeti belirtmeniz gerekebilir. |
hdınsight etkinliği için evet, ML Studio (klasik) toplu puanlama etkinliği, saklı yordam etkinliği. Diğer tümü için hayır |
| typeProperties | typeProperties bölümündeki özellikler her bir etkinlik türüne bağlıdır. Bir etkinliğin tür özelliklerini görmek için önceki bölümde verilen etkinlik bağlantılarına tıklayın. | No |
| ilke | Etkinliğin çalışma zamanı davranışını etkileyen ilkeler. Bu özellik bir zaman aşımı ve yeniden deneme davranışı içerir. Belirtilmemişse, varsayılan değerler kullanılır. Daha fazla bilgi için Etkinlik İlkesi bölümüne bakın. | No |
| dependsOn | Bu özellik etkinlik bağımlılıklarını ve sonraki etkinliklerin önceki etkinliklere ne kadar bağımlı olduğunu tanımlamak için kullanılır. Daha fazla bilgi için bkz. Etkinlik bağımlılığı | No |
Etkinlik ilkesi
İlkeler bir etkinliğin çalışma zamanı davranışını etkiler ve yapılandırma seçenekleri sunar. Etkinlik İlkeleri yalnızca yürütme etkinlikleri için kullanılabilir.
Etkinlik ilkesi JSON tanımı
{
"name": "MyPipelineName",
"properties": {
"activities": [
{
"name": "MyCopyBlobtoSqlActivity",
"type": "Copy",
"typeProperties": {
...
},
"policy": {
"timeout": "00:10:00",
"retry": 1,
"retryIntervalInSeconds": 60,
"secureOutput": true
}
}
],
"parameters": {
...
}
}
}
| JSON adı | Description | İzin Verilen Değerler | Gerekli |
|---|---|---|---|
| timeout | Çalıştırılacak etkinliğinin zaman aşımını belirtir. | Timespan | Hayır. Varsayılan zaman aşımı süresi 7 gündür. |
| retry | En fazla yeniden deneme sayısı | Tamsayı | Hayır. Varsayılan değer 0'dır |
| retryIntervalInSeconds | Yeniden deneme girişimleri arasında saniye cinsinden gecikme | Tamsayı | Hayır. Varsayılan değer 30 saniyedir |
| secureOutput | True olarak ayarlanırsa etkinlik çıkışı güvenli olarak kabul edilir ve izleme için günlüğe kaydedilmez. | Boole | Hayır. Varsayılan değer false’tur. |
Denetim etkinliği
Denetim etkinlikleri aşağıdaki üst düzey yapıya sahiptir:
{
"name": "Control Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"dependsOn":
{
}
}
| Etiket | Açıklama | Gerekli |
|---|---|---|
| name | Etkinliğin adı. Etkinliğin gerçekleştirdiği eylemi temsil eden bir ad belirtin.
|
Yes |
| açıklama | Etkinliğin ne olduğunu veya ne için kullanıldığını açıklayan metin | Yes |
| tür | Etkinliğin türü. Farklı etkinlik türleri için veri taşıma etkinlikleri, veri dönüştürme etkinlikleri ve denetim etkinlikleri bölümlerine bakın. | Yes |
| typeProperties | typeProperties bölümündeki özellikler her bir etkinlik türüne bağlıdır. Bir etkinliğin tür özelliklerini görmek için önceki bölümde verilen etkinlik bağlantılarına tıklayın. | No |
| dependsOn | Bu özellik Etkinlik Bağımlılığını ve sonraki etkinliklerin önceki etkinliklere ne kadar bağımlı olduğunu tanımlamak için kullanılır. Daha fazla bilgi için bkz. etkinlik bağımlılığı. | No |
Etkinlik bağımlılığı
Etkinlik Bağımlılığı, sonraki etkinliklerin önceki etkinliklere nasıl bağımlı olduğunu tanımlar ve sonraki görevi yürütmeye devam edip olmadığı koşullarını belirler. Bir etkinlik farklı bağımlılık koşullarıyla daha önceki bir veya birden çok etkinliğe bağımlı olabilir.
Farklı bağımlılık koşulları şunlardır: Başarılı, Başarısız, Atlandı, Tamamlandı.
Örneğin, bir işlem hattında Etkinlik A -> Etkinlik B ise oluşabilecek farklı senaryolar şunlardır:
- Etkinlik B, Etkinlik A’ya başarılı koşuluyla bağımlıdır: Etkinlik B yalnızca Etkinlik A’nın son durumu başarılı ise çalışır
- Etkinlik B, Etkinlik A’ya başarısız koşuluyla bağımlıdır: Etkinlik B yalnızca Etkinlik A’nın son durumu başarısız ise çalışır
- Etkinlik B, Etkinlik A’ya tamamlandı koşuluyla bağımlıdır: Etkinlik B yalnızca Etkinlik A’nın son durumu başarılı veya başarısız ise çalışır
- Etkinlik B, Etkinlik A'da atlanan bir bağımlılık koşuluna sahip: Etkinlik B, Etkinlik A'nın son durumu atlandı ise çalışır. Atlandı koşulu, her bir etkinliğin yalnızca önceki etkinlik başarılı olursa çalıştığı Etkinlik X -> Etkinlik Y -> Etkinlik Z senaryosunda gerçekleşir. Etkinlik X başarısız olursa, Etkinlik Y hiçbir zaman yürütülmezse "Atlandı" durumuna sahip olur. Benzer şekilde, Z Etkinliği de "Atlandı" durumuna sahip.
Örnek: Etkinlik 2, Etkinlik 1’in başarılı olmasına bağlıdır
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities": [
{
"name": "MyFirstActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
}
},
{
"name": "MySecondActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
},
"dependsOn": [
{
"activity": "MyFirstActivity",
"dependencyConditions": [
"Succeeded"
]
}
]
}
],
"parameters": {
}
}
}
Örnek kopyalama işlem hattı
Aşağıdaki örnek işlem hattında, Etkinlikler bölümünde Kopyalama türünde olan bir etkinlik vardır. Bu örnekte kopyalama etkinliği, verileri Azure Blob depolamadan azure blob depolama Azure SQL Veritabanı.
{
"name": "CopyPipeline",
"properties": {
"description": "Copy data from a blob to Azure SQL table",
"activities": [
{
"name": "CopyFromBlobToSQL",
"type": "Copy",
"inputs": [
{
"name": "InputDataset"
}
],
"outputs": [
{
"name": "OutputDataset"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 10000,
"writeBatchTimeout": "60:00:00"
}
},
"policy": {
"retry": 2,
"timeout": "01:00:00"
}
}
]
}
}
Aşağıdaki noktalara dikkat edin:
- Etkinlikler bölümünde, türü****Copy olarak ayarlanmış yalnızca bir etkinlik vardır.
- Etkinlik girdisi InputDataset olarak, etkinlik çıktısı ise OutputDataset olarak ayarlanmıştır. JSON biçiminde veri kümeleri tanımlamak için Veri Kümeleri makalesine bakın.
- typeProperties bölümünde BlobSource kaynak türü, SqlSink de havuz türü olarak belirtilir. Veri taşıma etkinlikleri bölümünde, verileri veri deposuna/veri deposundan taşıma hakkında daha fazla bilgi almak için kaynak veya havuz olarak kullanmak istediğiniz veri deposuna tıklayın.
Bu işlem hattını oluşturma işleminin eksiksiz bir yolu için bkz. Hızlı Başlangıç: Data Factory.
Örnek dönüştürme işlem hattı
Aşağıdaki örnek işlem hattında, etkinlikler bölümünde HDInsightHive türünde olan bir etkinlik vardır. Bu örnekte HDInsight Hive etkinliği, bir Azure HDInsight Hadoop kümesinde Hive betik dosyası çalıştırarak verileri bir Azure Blob depolamadan dönüştürür.
{
"name": "TransformPipeline",
"properties": {
"description": "My first Azure Data Factory pipeline",
"activities": [
{
"type": "HDInsightHive",
"typeProperties": {
"scriptPath": "adfgetstarted/script/partitionweblogs.hql",
"scriptLinkedService": "AzureStorageLinkedService",
"defines": {
"inputtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/inputdata",
"partitionedtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/partitioneddata"
}
},
"inputs": [
{
"name": "AzureBlobInput"
}
],
"outputs": [
{
"name": "AzureBlobOutput"
}
],
"policy": {
"retry": 3
},
"name": "RunSampleHiveActivity",
"linkedServiceName": "HDInsightOnDemandLinkedService"
}
]
}
}
Aşağıdaki noktalara dikkat edin:
- Etkinlikler bölümünde türü****HDInsightHive olarak ayarlanmış yalnızca bir etkinlik vardır.
- partitionweblogs.hql Hive betik dosyası Azure Depolama hesabında (scriptLinkedService tarafından belirtilen AzureStorageLinkedService olarak adlandırılan) ve kapsayıcının betik klasöründe
adfgetstarteddepolanır. definesbölümü, hive betiğine Hive yapılandırma değerleri olarak (örn{hiveconf:inputtable},${hiveconf:partitionedtable}) geçirilen çalışma zamanı ayarlarını belirtmek için kullanılır.
TypeProperties bölümü her bir dönüştürme etkinliği için farklıdır. Bir dönüştürme etkinliği için desteklenen tür özellikleri hakkında bilgi edinmek için Veri dönüştürme etkinlikleri içindeki dönüştürme etkinliklerine tıklayın.
Bu işlem hattını oluşturmak üzere izlenecek tam yol için bkz. Öğretici: Spark kullanarak veri dönüştürme.
Bir işlem hattında birden çok etkinlik
Önceki iki örnekte işlem hatları yalnızca bir etkinlik içeriyordu. Bir işlem hattında birden fazla etkinliğiniz olabilir. Bir işlem hattında birden fazla etkinlik varsa ve sonraki etkinlikler önceki etkinliklere bağımlı değilse, etkinlikler paralel olarak çalışabilir.
Sonraki etkinliklerin önceki etkinliklere nasıl bağımlı olduğunu tanımlayan ve sonraki görevi yürütmeye devam edilip edilmeyeceğine yönelik koşulu belirleyen etkinlik bağımlılığını kullanarak iki etkinliği zincirleyebilirsiniz. Bir etkinlik farklı bağımlılık koşullarıyla daha önceki bir veya daha çok etkinliğe bağımlı olabilir.
İşlem hatlarını zamanlama
İşlem hatları tetikleyiciler tarafından zamanlanır. Farklı türlerde tetikleyiciler vardır (İşlem hatlarının duvar saati zamanlaması ile tetiklenen zamanlayıcı tetikleyicisi ve işlem hatlarını isteğe bağlı olarak tetikleyen el ile tetikleyici). Tetikleyiciler hakkında daha fazla bilgi için işlem hattı yürütme ve tetikleyicileri makalesine bakın.
Tetikleyicinizin bir işlem hattı çalıştırmasını başlatması için tetikleyici tanımındaki belirli işlem hattının işlem hattı başvurusunu eklemeniz gerekir. İşlem hatları ve tetikleyiciler n-m ilişkisine sahiptir. Birden çok tetikleyici tek bir işlem hattını, bir tetikleyici de birden fazla işlem hattını başlatabilir. Tetikleyici tanımlandıktan sonra işlem hattını tetiklemesini başlatmak için tetikleyiciyi başlatmanız gerekir. Tetikleyiciler hakkında daha fazla bilgi için işlem hattı yürütme ve tetikleyicileri makalesine bakın.
Örneğin, "MyCopyPipeline" işlem hattımı tetiklemek istediğiniz "Tetikleyici A" zamanlayıcı tetikleyicisi olduğunu diyelim. Tetikleyiciyi aşağıdaki örnekte gösterildiği gibi tanımlarsiniz:
Tetikleyici A tanımı
{
"name": "TriggerA",
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
...
}
},
"pipeline": {
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "MyCopyPipeline"
},
"parameters": {
"copySourceName": "FileSource"
}
}
}
}
Sonraki adımlar
Etkinliklerle işlem hatları oluşturmaya yönelik adım adım yönergeler için aşağıdaki öğreticilere bakın:
- Kopyalama etkinliği içeren işlem hattı oluşturma
- Veri dönüştürme etkinliğine sahip işlem hattı oluşturma
Azure Data Factory kullanarak CI/CD (sürekli tümleştirme ve teslim) Azure Data Factory