Azure Data Factory ve Azure Synapse Analytics'te arama etkinliği

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!

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 tek değer veya sonraki bir kopya, 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 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.

    Shows the UI for a Lookup activity.

  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.

    Shows the configuration options in the Lookup activity for an Azure SQL table dataset.

    Shows the configuration options in the Lookup activity for an OData dataset.

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ışı boyutu 4 MB'a kadar 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 Depolama
  NoSQL için Azure Cosmos DB
  Azure Veri Gezgini (Kusto)
  Azure Data Lake Storage Gen1
  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 Örnek
  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 Örnek
  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 Cloud Storage
  HDFS
  Genel HTTP
  Microsoft Fabric Lakehouse
  Oracle Cloud Depolama
  SFTP
Genel protokol Genel OData
  Genel ODBC
  SharePoint Online Listesi
Hizmetler ve uygulamalar Amazon Marketplace Web Service
  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 Marketing Cloud
  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 bir önizleme bağlayıcısı bağımlılığı olmasını istiyorsanız lütfen Azure desteğine başvurun.

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çin veri kümesi başvurusu 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ınır.

Arama etkinliği sonucunu kullanma

Arama sonucu, etkinlik çalıştırması sonucunun bölümünde döndürülür output .

  • firstRowOnly(varsayılan) olarak ayarlandığında true , çıkış biçimi aşağıdaki kodda gösterildiği gibi olur. Arama sonucu sabit firstRow bir anahtarın altındadır. Sonucu sonraki etkinlikte kullanmak için desenini @{activity('LookupActivity').output.firstRow.table}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. Diziyi value ForEach etkinlik items alanına, desenini @activity('MyLookupActivity').output.valuekullanarak 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, Azure SQL Veritabanı örneğinizdeki bir SQL tablosundaki verileri 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'i 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

Arama veri kümesi, AzureBlob Depolama LinkedService 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'deki csv klasöründeki filebylookup.csv dosyasına kopyalar. Dosya AzureBlob Depolama LinkedService ö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: