Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'te Data Factory'deki eşdeğer etkinlik için Lookup activity sayfasına bakınız.
Arama etkinliği, veri fabrikası ve Synapse işlem hatları tarafından desteklenen herhangi bir veri kaynağından veri kümesi alabilir. Nesne adını sabit kodlamak yerine sonraki bir etkinlikte hangi nesnelerin üzerinde çalışabileceğini dinamik olarak belirlemek için kullanabilirsiniz. Bazı nesne örnekleri dosyalar ve tablolardır.
Arama etkinliği bir yapılandırma dosyasının veya tablonun içeriğini okur ve döndürür. Ayrıca sorgunun veya saklı yordamın yürütülmesinin sonucunu döndürür. Çıktı, bir tekil değer veya ardından gelen kopyalama, dönüştürme veya ForEach etkinliği gibi denetim akışı etkinliklerinde kullanılabilen bir öznitelik dizisi olabilir.
Kullanıcı arabirimiyle Arama etkinliği oluşturma
İşlem hattında Arama etkinliğini kullanmak için aşağıdaki adımları tamamlayın:
İşlem hattı Etkinlikleri bölmesinde Arama'yı arayın ve bir Arama etkinliğini işlem hattı tuvaline sürükleyin.
Tuvalde henüz seçili değilse yeni Arama etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.
Yeni bir veri kümesi oluşturmak için mevcut bir kaynak veri kümesini seçin veya Yeni düğmesini seçin.
Kaynak veri kümesinden eklenecek satırları tanımlama seçenekleri, veri kümesi türüne göre değişir. Yukarıdaki örnekte sınırlandırılmış metin veri kümesinin yapılandırma seçenekleri gösterilmektedir. Aşağıda, Azure SQL tablo veri kümesi ve OData veri kümesi için yapılandırma seçenekleri örnekleri verilmiştir.
Desteklenen özellikler
Aşağıdakileri dikkate alın:
- Arama etkinliği en fazla 5000 satır döndürebilir; sonuç kümesi daha fazla kayıt içeriyorsa, ilk 5000 satır döndürülür.
- Arama etkinliği çıkışı en fazla 4 MB boyutunu destekler, boyut sınırı aşarsa etkinlik başarısız olur.
- Arama etkinliğinin zaman aşımından önceki en uzun süresi 24 saattir.
Not
Verileri ararken sorguyu veya saklı yordamı kullandığınızda, bir ve tam bir sonuç kümesi döndürdiğinizden emin olun. Aksi takdirde Arama etkinliği başarısız olur.
Arama etkinliği için aşağıdaki veri kaynakları desteklenir.
Not
Önizleme olarak işaretlenmiş bağlayıcıları deneyebilir ve bunlar hakkındaki görüşlerinizi bize bildirebilirsiniz. Çözümünüzde önizleme bağlayıcılarına bağımlılık oluşturmak istiyorsanız lütfen Azure desteği ile iletişime geçin.
Sözdizimi
{
"name":"LookupActivity",
"type":"Lookup",
"typeProperties":{
"source":{
"type":"<source type>"
},
"dataset":{
"referenceName":"<source dataset name>",
"type":"DatasetReference"
},
"firstRowOnly":<true or false>
}
}
Tür özellikleri
| Veri Akışı Adı | Açıklama | Tür | Gerekli mi? |
|---|---|---|---|
| veri kümesi | Arama işlemi için veri kümesi referansı sağlar. İlgili bağlayıcı makalelerinin Veri kümesi özellikleri bölümünden ayrıntıları alın. | Anahtar/değer çifti | Yes |
| kaynak | Kopyalama Etkinliği kaynağıyla aynı veri kümesine özgü kaynak özelliklerini içerir. İlgili bağlayıcı makalelerinin Kopyalama Etkinliği özellikleri bölümünden ayrıntıları alın. | Anahtar/değer çifti | Yes |
| firstRowOnly | Yalnızca ilk satırın mı yoksa tüm satırların mı döndürülmeyeceğini gösterir. | Boolean | Hayır Varsayılan değer: true. |
Not
- ByteArray türüne sahip kaynak sütunlar desteklenmez.
- Veri kümesi tanımlarında yapı desteklenmez. Metin biçimi dosyalarında, sütun adını sağlamak için üst bilgi satırını kullanın.
- Arama kaynağınız bir JSON dosyasıysa,
jsonPathDefinitionJSON nesnesini yeniden şekillendirme ayarı desteklenmez. Tüm nesneler alınacaktır.
Arama etkinliği sonucunu kullanma
Arama sonucu, etkinlik çalıştırma sonucunun output bölümünde döndürülür.
firstRowOnlyolaraktrue(varsayılan) ayarlandığında, çıkış biçimi aşağıdaki kodda gösterildiği gibidir. Arama sonucu sabitfirstRowbir anahtarın altındadır. Sonucu sonraki etkinlikte kullanmak için@{activity('LookupActivity').output.firstRow.table}kalıbını/desenini kullanın.{ "firstRow": { "Id": "1", "schema":"dbo", "table":"Table1" } }firstRowOnlyolarak ayarlandığındafalse, çıkış biçimi aşağıdaki kodda gösterildiği gibidir. Bircountalan, kaç kaydın döndürüldiğini gösterir. Ayrıntılı değerler sabitvaluebir dizi altında görüntülenir. Böyle bir durumda, Arama etkinliğini bir Foreach etkinliği izler. ForEach etkinliğininvaluealanına diziyiitems@activity('MyLookupActivity').output.valuedesenini kullanarak geçirirsiniz. Dizideki öğelerevalueerişmek için aşağıdaki söz dizimini kullanın:@{activity('lookupActivity').output.value[zero based index].propertyname}.@{activity('lookupActivity').output.value[0].schema}bunun bir örneğidir.{ "count": "2", "value": [ { "Id": "1", "schema":"dbo", "table":"Table1" }, { "Id": "2", "schema":"dbo", "table":"Table2" } ] }
Örnek
Bu örnekte işlem hattı iki etkinlik içerir: Arama ve Kopyalama. Kopyalama Etkinliği, verileri Azure SQL Veritabanı örneğinizdeki bir SQL tablosundan Azure Blob depolama alanına kopyalar. SQL tablosunun adı Blob depolamadaki bir JSON dosyasında depolanır. Arama etkinliği çalışma zamanında tablo adını arar. JSON, bu yaklaşım kullanılarak dinamik olarak değiştirilir. İşlem hatlarını veya veri kümelerini yeniden dağıtmanız gerekmez.
Bu örnekte yalnızca ilk satır için arama gösterilmektedir. Tüm satırlar için arama yapmak ve sonuçları ForEach etkinliğiyle zincirleme yapmak için Birden çok tabloyu toplu kopyalama bölümündeki örneklere bakın.
İşlem Hattı
- Arama etkinliği, Azure Blob depolamadaki bir konuma başvuran LookupDataset kullanacak şekilde yapılandırılır. Arama etkinliği, sql tablosunun adını bu konumdaki bir JSON dosyasından okur.
- Kopyalama Etkinliği, SQL tablosunun adı olan Arama etkinliğinin çıkışını kullanır. SourceDataset içindeki tableName özelliği, Arama etkinliğinden elde edilen çıkışı kullanacak şekilde yapılandırılır. Kopyalama Etkinliği verileri SQL tablosundan Azure Blob depolama alanındaki bir konuma kopyalar. Konum, SinkDataset özelliği tarafından belirtilir.
{
"name": "LookupPipelineDemo",
"properties": {
"activities": [
{
"name": "LookupActivity",
"type": "Lookup",
"dependsOn": [],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"source": {
"type": "JsonSource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
},
"formatSettings": {
"type": "JsonReadSettings"
}
},
"dataset": {
"referenceName": "LookupDataset",
"type": "DatasetReference"
},
"firstRowOnly": true
}
},
{
"name": "CopyActivity",
"type": "Copy",
"dependsOn": [
{
"activity": "LookupActivity",
"dependencyConditions": [
"Succeeded"
]
}
],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"source": {
"type": "AzureSqlSource",
"sqlReaderQuery": {
"value": "select * from [@{activity('LookupActivity').output.firstRow.schema}].[@{activity('LookupActivity').output.firstRow.table}]",
"type": "Expression"
},
"queryTimeout": "02:00:00",
"partitionOption": "None"
},
"sink": {
"type": "DelimitedTextSink",
"storeSettings": {
"type": "AzureBlobStorageWriteSettings"
},
"formatSettings": {
"type": "DelimitedTextWriteSettings",
"quoteAllText": true,
"fileExtension": ".txt"
}
},
"enableStaging": false,
"translator": {
"type": "TabularTranslator",
"typeConversion": true,
"typeConversionSettings": {
"allowDataTruncation": true,
"treatBooleanAsNumber": false
}
}
},
"inputs": [
{
"referenceName": "SourceDataset",
"type": "DatasetReference",
"parameters": {
"schemaName": {
"value": "@activity('LookupActivity').output.firstRow.schema",
"type": "Expression"
},
"tableName": {
"value": "@activity('LookupActivity').output.firstRow.table",
"type": "Expression"
}
}
}
],
"outputs": [
{
"referenceName": "SinkDataset",
"type": "DatasetReference",
"parameters": {
"schema": {
"value": "@activity('LookupActivity').output.firstRow.schema",
"type": "Expression"
},
"table": {
"value": "@activity('LookupActivity').output.firstRow.table",
"type": "Expression"
}
}
}
]
}
],
"annotations": [],
"lastPublishTime": "2020-08-17T10:48:25Z"
}
}
Arama veri kümesi
lookup veri kümesi, AzureBlobStorageLinkedService türü tarafından belirtilen Azure Depolama arama klasöründeki sourcetable.json dosyasıdır.
{
"name": "LookupDataset",
"properties": {
"linkedServiceName": {
"referenceName": "AzureBlobStorageLinkedService",
"type": "LinkedServiceReference"
},
"annotations": [],
"type": "Json",
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"fileName": "sourcetable.json",
"container": "lookup"
}
}
}
}
Kopyalama Etkinliği için kaynak veri kümesi
Kaynak veri kümesi, SQL tablosunun adı olan Arama etkinliğinin çıkışını kullanır. Kopyalama Etkinliği, verileri bu SQL tablosundan Azure Blob depolama alanındaki bir konuma kopyalar. Konum havuz veri kümesi tarafından belirtilir.
{
"name": "SourceDataset",
"properties": {
"linkedServiceName": {
"referenceName": "AzureSqlDatabase",
"type": "LinkedServiceReference"
},
"parameters": {
"schemaName": {
"type": "string"
},
"tableName": {
"type": "string"
}
},
"annotations": [],
"type": "AzureSqlTable",
"schema": [],
"typeProperties": {
"schema": {
"value": "@dataset().schemaName",
"type": "Expression"
},
"table": {
"value": "@dataset().tableName",
"type": "Expression"
}
}
}
}
Kopyalama Etkinliği için havuz veri kümesi
Kopyalama Etkinliği verileri SQL tablosundan Azure Depolama'daki csv klasöründeki filebylookup.csv dosyasına kopyalar. Dosya AzureBlobStorageLinkedService özelliği tarafından belirtilir.
{
"name": "SinkDataset",
"properties": {
"linkedServiceName": {
"referenceName": "AzureBlobStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"schema": {
"type": "string"
},
"table": {
"type": "string"
}
},
"annotations": [],
"type": "DelimitedText",
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"fileName": {
"value": "@{dataset().schema}_@{dataset().table}.csv",
"type": "Expression"
},
"container": "csv"
},
"columnDelimiter": ",",
"escapeChar": "\\",
"quoteChar": "\""
},
"schema": []
}
}
sourcetable.json
sourcetable.json dosyası için aşağıdaki iki biçim türünü kullanabilirsiniz.
Nesne kümesi
{
"Id":"1",
"schema":"dbo",
"table":"Table1"
}
{
"Id":"2",
"schema":"dbo",
"table":"Table2"
}
Nesneler dizisi
[
{
"Id": "1",
"schema":"dbo",
"table":"Table1"
},
{
"Id": "2",
"schema":"dbo",
"table":"Table2"
}
]
Sınırlamalar ve geçici çözümler
Arama etkinliğinin bazı sınırlamaları ve önerilen geçici çözümler aşağıdadır.
| Sınırlama | Geçici çözüm |
|---|---|
| Arama etkinliği en fazla 5.000 satıra ve en fazla 4 MB boyuta sahiptir. | Dış işlem hattının en yüksek satır veya boyutu aşmayan verileri alan bir iç işlem hattı üzerinde yinelendiği iki düzeyli bir işlem hattı tasarlayın. |
İlgili içerik
Azure Data Factory ve Synapse işlem hatları tarafından desteklenen diğer denetim akışı etkinliklerine bakın: