Azure Data Factory kullanarak verileri Azure Bilişsel Arama dizinine gönderme

Not

Bu makale, Data Factory’nin 1. sürümü için geçerlidir. Data Factory hizmetinin geçerli sürümünü kullanıyorsanız bkz. V2'de Azure Bilişsel Arama bağlayıcısı.

Bu makalede, desteklenen bir kaynak veri deposundan Azure Bilişsel Arama dizinine veri göndermek için Kopyalama Etkinliği'nin nasıl kullanılacağı açıklanır. Desteklenen kaynak veri depoları, desteklenen kaynaklar ve havuzlar tablosunun Kaynak sütununda listelenir. Bu makale, Kopyalama Etkinliği ve desteklenen veri deposu birleşimleriyle veri taşımaya genel bir genel bakış sunan veri taşıma etkinlikleri makalesini oluşturur.

Bağlantıyı etkinleştirme

Data Factory hizmetinin şirket içi veri deposuna bağlanmasına izin vermek için Veri Yönetimi Ağ Geçidi'ni şirket içi ortamınıza yüklersiniz. Kaynak veri deposuyla kaynaklarla rekabet etmekten kaçınmak için ağ geçidini kaynak veri depoyu barındıran makineye veya ayrı bir makineye yükleyebilirsiniz.

Veri Yönetimi Ağ Geçidi, şirket içi veri kaynaklarını bulut hizmetlerine güvenli ve yönetilen bir şekilde bağlar. Veri Yönetimi Gateway hakkında ayrıntılı bilgi için şirket içi ile bulut arasında veri taşıma makalesine bakın.

Başlarken

Farklı araçlar/API'ler kullanarak bir kaynak veri deposundan arama dizinine veri gönderen kopyalama etkinliğine sahip bir işlem hattı oluşturabilirsiniz.

İşlem hattı oluşturmanın en kolay yolu Kopyalama Sihirbazı'nı kullanmaktır. Veri kopyalama sihirbazını kullanarak işlem hattı oluşturma hakkında hızlı bir kılavuz için bkz. Öğretici: Kopyalama Sihirbazı'nı kullanarak işlem hattı oluşturma.

İşlem hattı oluşturmak için aşağıdaki araçları da kullanabilirsiniz: Visual Studio, Azure PowerShell, Azure Resource Manager şablonu, .NET API ve REST API. Kopyalama etkinliğiyle işlem hattı oluşturmaya yönelik adım adım yönergeler için Kopyalama etkinliği öğreticiye bakın.

İster araçları ister API'leri kullanın, bir kaynak veri deposundan havuz veri deposuna veri taşıyan bir işlem hattı oluşturmak için aşağıdaki adımları gerçekleştirirsiniz:

  1. Giriş ve çıkış veri depolarını veri fabrikanıza bağlamak için bağlı hizmetler oluşturun.
  2. Kopyalama işlemi için giriş ve çıkış verilerini temsil eden veri kümeleri oluşturun.
  3. Veri kümesini giriş ve veri kümesini çıkış olarak alan kopyalama etkinliğine sahip bir işlem hattı oluşturun.

Sihirbazı kullandığınızda, bu Data Factory varlıkları (bağlı hizmetler, veri kümeleri ve işlem hattı) için JSON tanımları sizin için otomatik olarak oluşturulur. Araçları/API'leri (.NET API hariç) kullandığınızda, JSON biçimini kullanarak bu Data Factory varlıklarını tanımlarsınız. Arama dizinine veri kopyalamak için kullanılan Data Factory varlıklarına yönelik JSON tanımlarına sahip bir örnek için bkz. JSON örneği: SQL Server'dan Azure Bilişsel Arama dizin bölümüne veri kopyalama.

Aşağıdaki bölümlerde, bir arama dizinine özgü Data Factory varlıklarını tanımlamak için kullanılan JSON özellikleri hakkında ayrıntılar sağlanır:

Bağlı hizmet özellikleri

Aşağıdaki tabloda, Azure Bilişsel Arama bağlı hizmetine özgü JSON öğeleri için açıklamalar sağlanır.

Özellik Açıklama Gerekli
tür tür özelliği şu şekilde ayarlanmalıdır: AzureSearch. Yes
url Arama hizmetinin URL'si. Yes
anahtar Arama hizmetinin yönetici anahtarı. Yes

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Veri kümeleri oluşturma makalesine bakın. Veri kümesi JSON'un yapısı, kullanılabilirliği ve ilkesi gibi bölümler tüm veri kümesi türleri için benzerdir. typeProperties bölümü her veri kümesi türü için farklıdır. AzureSearchIndex türünde bir veri kümesinin typeProperties bölümü aşağıdaki özelliklere sahiptir:

Özellik Açıklama Gerekli
tür tür özelliği AzureSearchIndex olarak ayarlanmalıdır. Yes
indexName Arama dizininin adı. Data Factory dizini oluşturmaz. Dizin Azure Bilişsel Arama içinde bulunmalıdır. Yes

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem hatları oluşturma makalesine bakın. Ad, açıklama, giriş ve çıkış tabloları ve çeşitli ilkeler gibi özellikler tüm etkinlik türleri için kullanılabilir. Öte yandan typeProperties bölümünde kullanılabilen özellikler her etkinlik türüne göre değişir. Kopyalama Etkinliği için, kaynak ve havuz türlerine bağlı olarak değişir.

Kopyalama Etkinliği için havuz AzureSearchIndexSink türünde olduğunda typeProperties bölümünde aşağıdaki özellikler kullanılabilir:

Özellik Açıklama İzin verilen değerler Gerekli
WriteBehavior Bir belge dizinde zaten mevcut olduğunda birleştirilip birleştirilmeyeceğini veya değiştirilmeyeceğini belirtir. Bkz. WriteBehavior özelliği. Birleştir (varsayılan)
Karşıya Yükleme
No
WriteBatchSize Arabellek boyutu writeBatchSize değerine ulaştığında verileri arama dizinine yükler. Ayrıntılar için bkz. WriteBatchSize özelliği . 1-1,000. Varsayılan değer 1000'dir. No

WriteBehavior özelliği

Veri yazarken AzureSearchSink upserts. Başka bir deyişle, belge yazarken, belge anahtarı arama dizininde zaten varsa, Azure Bilişsel Arama çakışma özel durumu oluşturmak yerine var olan belgeyi güncelleştirir.

AzureSearchSink aşağıdaki iki upsert davranışını sağlar (AzureSearch SDK'sını kullanarak):

  • Birleştir: Yeni belgedeki tüm sütunları var olan sütunla birleştirin. Yeni belgedeki null değere sahip sütunlar için, var olandaki değer korunur.
  • Upload: Yeni belge, var olan belgenin yerini alır. Yeni belgede belirtilmeyen sütunlar için, var olan belgede null olmayan bir değer olsa da olmasa da değer null olarak ayarlanır.

Varsayılan davranış Birleştir'dir.

WriteBatchSize Özelliği

Azure Bilişsel Arama hizmeti, belgeleri toplu iş olarak yazmayı destekler. Toplu işlem 1 ile 1.000 Eylem içerebilir. Eylem, karşıya yükleme/birleştirme işlemini gerçekleştirmek için bir belgeyi işler.

Veri türü desteği

Aşağıdaki tabloda bir Azure Bilişsel Arama veri türünün desteklenip desteklenmediği belirtiliyor.

veri türünü Azure Bilişsel Arama Azure Bilişsel Arama Havuzu'nda desteklenir
Dize Y
Int32 Y
Int64 Y
Çift Y
Boole Y
DataTimeOffset Y
Dize Dizisi N
GeographyPoint N

JSON örneği: SQL Server Azure Bilişsel Arama dizinine veri kopyalama

Aşağıdaki örnek şunları gösterir:

  1. AzureSearch türünde bir bağlı hizmet.
  2. OnPremisesSqlServer türünde bir bağlı hizmet.
  3. SqlServerTable türünde bir giriş veri kümesi.
  4. AzureSearchIndex türünde bir çıkış veri kümesi.
  5. SqlSource ve AzureSearchIndexSink kullanan bir Kopyalama etkinliği içeren işlem hattı.

Örnek, zaman serisi verilerini SQL Server veritabanından dizinde saatlik arama yapmak için kopyalar. Bu örnekte kullanılan JSON özellikleri, örnekleri izleyen bölümlerde açıklanmıştır.

İlk adım olarak, şirket içi makinenizde veri yönetimi ağ geçidini ayarlayın. Yönergeler, şirket içi konumlar ile bulut arasında veri taşıma makalesinde verilmiştir .

bağlı hizmeti Azure Bilişsel Arama:

{
    "name": "AzureSearchLinkedService",
    "properties": {
        "type": "AzureSearch",
        "typeProperties": {
            "url": "https://<service>.search.windows.net",
            "key": "<AdminKey>"
        }
    }
}

bağlı hizmeti SQL Server

{
  "Name": "SqlServerLinkedService",
  "properties": {
    "type": "OnPremisesSqlServer",
    "typeProperties": {
      "connectionString": "Data Source=<servername>;Initial Catalog=<databasename>;Integrated Security=False;User ID=<username>;Password=<password>;",
      "gatewayName": "<gatewayname>"
    }
  }
}

Giriş veri kümesini SQL Server

Örnekte, SQL Server'de "MyTable" tablosu oluşturduğunuz varsayılır ve zaman serisi verileri için "timestampcolumn" adlı bir sütun bulunur. Tek bir veri kümesi kullanarak aynı veritabanındaki birden çok tablo üzerinde sorgu yapabilirsiniz, ancak veri kümesinin tableName typeProperty değeri için tek bir tablo kullanılmalıdır.

"dış": "true" ayarı Data Factory hizmetine veri kümesinin veri fabrikasının dışında olduğunu ve veri fabrikasındaki bir etkinlik tarafından üretilmediğini bildirir.

{
  "name": "SqlServerDataset",
  "properties": {
    "type": "SqlServerTable",
    "linkedServiceName": "SqlServerLinkedService",
    "typeProperties": {
      "tableName": "MyTable"
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    },
    "policy": {
      "externalData": {
        "retryInterval": "00:01:00",
        "retryTimeout": "00:10:00",
        "maximumRetry": 3
      }
    }
  }
}

Çıktı veri kümesini Azure Bilişsel Arama:

Örnek, verileri products adlı bir Azure Bilişsel Arama dizinine kopyalar. Data Factory dizini oluşturmaz. Örneği test etmek için bu ada sahip bir dizin oluşturun. Arama dizinini giriş veri kümesindekiyle aynı sayıda sütunla oluşturun. Arama dizinine saatte bir yeni girdiler eklenir.

{
    "name": "AzureSearchIndexDataset",
    "properties": {
        "type": "AzureSearchIndex",
        "linkedServiceName": "AzureSearchLinkedService",
        "typeProperties" : {
            "indexName": "products",
        },
        "availability": {
            "frequency": "Minute",
            "interval": 15
        }
    }
}

SQL kaynağı ve Azure Bilişsel Arama Dizin havuzu olan bir işlem hattında Kopyalama etkinliği:

İşlem hattı, giriş ve çıkış veri kümelerini kullanacak şekilde yapılandırılmış ve saatte bir çalışacak şekilde zamanlanmış bir Kopyalama Etkinliği içerir. İşlem hattı JSON tanımında kaynak türü SqlSource , havuz türü ise AzureSearchIndexSink olarak ayarlanır. SqlReaderQuery özelliği için belirtilen SQL sorgusu, kopyalanacak son bir saat içindeki verileri seçer.

{
  "name":"SamplePipeline",
  "properties":{
    "start":"2014-06-01T18:00:00",
    "end":"2014-06-01T19:00:00",
    "description":"pipeline for copy activity",
    "activities":[
      {
        "name": "SqlServertoAzureSearchIndex",
        "description": "copy activity",
        "type": "Copy",
        "inputs": [
          {
            "name": " SqlServerInput"
          }
        ],
        "outputs": [
          {
            "name": "AzureSearchIndexDataset"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "SqlSource",
            "SqlReaderQuery": "$$Text.Format('select * from MyTable where timestampcolumn >= \\'{0:yyyy-MM-dd HH:mm}\\' AND timestampcolumn < \\'{1:yyyy-MM-dd HH:mm}\\'', WindowStart, WindowEnd)"
          },
          "sink": {
            "type": "AzureSearchIndexSink"
          }
        },
        "scheduler": {
          "frequency": "Hour",
          "interval": 1
        },
        "policy": {
          "concurrency": 1,
          "executionPriorityOrder": "OldestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
    ]
  }
}

Bir bulut veri deposundan Azure Bilişsel Arama'a executionLocation veri kopyaladığınızda özellik gereklidir. Aşağıdaki JSON kod parçacığı, örnek olarak Kopyalama Etkinliği typeProperties altında gereken değişikliği gösterir. Desteklenen değerler ve diğer ayrıntılar için Bulut veri depoları arasında veri kopyalama bölümüne bakın.

"typeProperties": {
  "source": {
    "type": "BlobSource"
  },
  "sink": {
    "type": "AzureSearchIndexSink"
  },
  "executionLocation": "West US"
}

Bulut kaynağından kopyalama

Bir bulut veri deposundan Azure Bilişsel Arama'a executionLocation veri kopyaladığınızda özellik gereklidir. Aşağıdaki JSON kod parçacığı, örnek olarak Kopyalama Etkinliği typeProperties altında gereken değişikliği gösterir. Desteklenen değerler ve diğer ayrıntılar için Bulut veri depoları arasında veri kopyalama bölümüne bakın.

"typeProperties": {
  "source": {
    "type": "BlobSource"
  },
  "sink": {
    "type": "AzureSearchIndexSink"
  },
  "executionLocation": "West US"
}

Ayrıca, kaynak veri kümesindeki sütunları kopyalama etkinliği tanımındaki havuz veri kümesindeki sütunlara eşleyebilirsiniz. Ayrıntılar için bkz. Azure Data Factory'de veri kümesi sütunlarını eşleme.

Performans ve ayar

Veri taşıma performansını etkileyen önemli faktörler (Kopyalama Etkinliği) ve bunu iyileştirmenin çeşitli yolları hakkında bilgi edinmek için Kopyalama Etkinliği performansı ve ayarlama kılavuzuna bakın.

Sonraki adımlar

Aşağıdaki makalelere bakın:

  • Kopyalama Etkinliği ile işlem hattı oluşturmaya yönelik adım adım yönergeler için Kopyalama Etkinliği öğreticisi.