Azure Data Factory ve Azure Synapse Analytics arama etkinliği

Ş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:

  1. İşlem hattı Etkinlikleri bölmesinde Arama'yı arayın ve bir Arama etkinliğini işlem hattı tuvaline sürükleyin.

  2. Tuvalde henüz seçili değilse yeni Arama etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.

    Arama etkinliğinin kullanıcı arabirimini gösterir.

  3. Yeni bir veri kümesi oluşturmak için mevcut bir kaynak veri kümesini seçin veya Yeni düğmesini seçin.

  4. 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.

    Bir Azure SQL tablo veri kümesi için Arama etkinliğindeki yapılandırma seçeneklerini gösterir.

    OData veri kümesi için Arama etkinliğindeki yapılandırma seçeneklerini gösterir.

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.

Kategori Veri deposu
Azure Azure Blob Storage
  NoSQL için Azure Cosmos DB
  Azure Veri Gezgini (Kusto)
  1. Nesil Azure Data Lake Storage
  Azure Data Lake Storage 2. Nesil
  MariaDB için Azure Veritabanı
  MySQL için Azure Veritabanı
  PostgreSQL için Azure Veritabanı
  Azure Databricks Delta Lake
  Azure Dosyalar
  Azure SQL Veritabanı
  Azure SQL Yönetilen Örneği
  Azure Synapse Analytics
  Azure Tablo Depolama
Veritabanı Oracle için Amazon RDS
  SQL Server için Amazon RDS
  Amazon Redshift
  Apache Impala
  Azure SQL Yönetilen Örneği
  DB2
  Drill
  Google AdWords
  Google BigQuery
  Greenplum
  HBase
  Hive
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse Open Hub
  MDX aracılığıyla SAP Business Warehouse
  SAP HANA
  SAP Tablosu
  SQL Server
  Spark
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (Önizleme)
Dosya Amazon S3
  Amazon S3 Uyumlu Depolama
  Dosya Sistemi
  FTP
  Google Bulut Depolama
  HDFS
  Genel HTTP
  Microsoft Fabric Lakehouse
  Oracle Cloud Storage
  SFTP
Genel protokol Genel OData
  Genel ODBC
  SharePoint Çevrimiçi Listesi
Hizmetler ve uygulamalar Amazon Market Web Hizmeti (Kullanım Dışı)
  Concur (Önizleme)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  HubSpot
  Jira
  Azure Veri Gezgini (Kusto)
  Magento (Önizleme)
  Marketo (Önizleme)
  Oracle Eloqua (Önizleme)
  Oracle Responsys (Önizleme)
  Oracle Service Cloud (Önizleme)
  PayPal (Önizleme)
  QuickBooks (Önizleme)
  Müşteri için SAP Cloud (C4C)
  SAP ECC
  Salesforce
  Salesforce Pazarlama Bulutu
  Salesforce Service Cloud
  ServiceNow
  Shopify (Önizleme)
  Snowflake
  Square (Önizleme)
  Web Tablosu (HTML tablosu)
  Xero
  Zoho (Önizleme)

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, jsonPathDefinition JSON 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.

  • firstRowOnly olarak true (varsayılan) ayarlandığında, çıkış biçimi aşağıdaki kodda gösterildiği gibidir. Arama sonucu sabit firstRow bir 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"
        }
    }
    
  • firstRowOnly olarak ayarlandığındafalse, çıkış biçimi aşağıdaki kodda gösterildiği gibidir. Bir count alan, kaç kaydın döndürüldiğini gösterir. Ayrıntılı değerler sabit value bir dizi altında görüntülenir. Böyle bir durumda, Arama etkinliğini bir Foreach etkinliği izler. ForEach etkinliğinin value alanına diziyi items@activity('MyLookupActivity').output.value desenini kullanarak geçirirsiniz. Dizideki öğelere value eriş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.

Azure Data Factory ve Synapse işlem hatları tarafından desteklenen diğer denetim akışı etkinliklerine bakın: