MySQL için Azure Veritabanı Esnek Sunucu'dan verileri dizine ekleme (önizleme)

Not

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Not

Bu özellik şu anda önizleme sürümündedir. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Önemli

Bu özellikler ve işlevler, diğer Microsoft hizmetleri ve üçüncü taraf hizmetlerle bağlantıları destekler. Bu hizmetlerin kullanımı ilgili koşullara tabidir ve Azure uyumluluk sınırının dışında veri işleme veya depolamanın yanı sıra Azure uyumluluk sınırına akan verilere neden olabilir.

Verilerinizin kuruluşunuzun uyumluluk ve coğrafi sınırları dışında akıp akmayacağını ve ilgili etkileri ve uygun izinlerin, sınırların ve onayların sağlanıp sağlanmayacağını yönetmek sizin sorumluluğunuzdadır.

Özel kullanım örnekleriniz bağlamında oluşturduğunuz uygulamaları dikkatle gözden geçirmek ve test etmek ve tüm uygun kararları ve özelleştirmeleri yapmak sizin sorumluluğunuzdadır. Bu, metapromptlar, içerik filtreleri veya diğer güvenlik sistemleri gibi sorumlu yapay zeka risk azaltmalarınızı uygulamayı ve uygulamalarınızın uygun kalite, güvenilirlik, güvenlik ve güvenilirlik standartlarını karşılamasını sağlamayı içerir. Daha fazla bilgi için bkz. Azure Yapay Zeka Arama Saydamlık Notu.

Bu makalede, bir indexer yapılandırmasının MySQL için Azure Veritabanı'den içerik alarak Azure AI Arama'da aranabilir hale nasıl getirildiğini öğrenin. Dizin oluşturucuya girişler, tek bir tablo veya görünümdeki satırlardır. Çıkış, tek tek alanlarda aranabilir içeriğe sahip bir arama dizinidir.

Bu makale, MySQL için Azure Veritabanı Esnek Sunucu'ya özgü dizin oluşturma bilgileri ile Dizin Oluşturucu Yarat adlı makaleyi tamamlar. Rest API'lerini kullanarak tüm dizin oluşturucular için ortak olan üç parçalı bir iş akışını gösterir: veri kaynağı oluşturma, dizin oluşturma, dizin oluşturucu oluşturma. Dizin Oluşturucu Oluştur isteğini gönderdiğinizde veri ayıklama gerçekleşir.

Dizin oluşturucu, yüksek seviye işareti ve yumuşak silme içerecek şekilde yapılandırıldığında, MySQL veritabanınız için tüm değişiklikleri, yüklemeleri ve silmeleri yönetir. Bu değişiklikleri arama dizininize yansıtır. Dizin Oluşturucu Oluştur isteğini gönderdiğinizde veri ayıklama gerçekleşir.

Önkoşullar

  • Senaryo geri bildirimi sağlamak için önizlemeye kaydolun. Bu özelliğe form gönderildikten sonra otomatik olarak erişebilirsiniz.

  • MySQL için Azure Veritabanı Esnek Sunucu ve örnek veriler. Verilerin bir tabloda veya görünümde bulunması gerekir. Birincil anahtar gereklidir. Görünüm kullanıyorsanız, yüksek su işareti sütununa sahip olmalıdır.

  • Okuma izinleri. tam erişim bağlantı dizesi, içeriğe erişim veren bir anahtar içerir, ancak Azure rolleri kullanıyorsanız arama hizmeti yönetilen kimliğinin MySQL üzerinde Reader izinlerine sahip olduğundan emin olun.

  • Veri kaynağını, dizini ve dizin oluşturucuyu oluşturmak için bir REST istemcisi .

    .NET için Azure SDK de kullanabilirsiniz. dizin oluşturucu oluşturma için Azure portalını kullanamazsınız, ancak dizin oluşturucuları ve veri kaynaklarını oluşturulduktan sonra yönetebilirsiniz.

Önizleme sınırlamaları

Tarih veya zaman damgası tüm satırlar için tekdüzense, değişiklik izleme ve silme algılaması şu anda çalışmıyordur. Bu sınırlama, önizleme güncelleştirmesinde ele alınması gereken bilinen bir sorundur. Bu sorun giderilene kadar MySQL dizin oluşturucusna beceri kümesi eklemeyin.

Önizleme geometri türlerini ve blobları desteklemez.

Belirtildiği gibi, dizin oluşturucu oluşturma için portal desteği yoktur, ancak MySQL dizin oluşturucu ve veri kaynağı Azure portalda oluşturulduktan sonra yönetilebilir. Örneğin, tanımları düzenleyebilir ve dizin oluşturucuyu sıfırlayabilir, çalıştırabilir veya zamanlayabilirsiniz.

Veri kaynağını tanımlama

Veri kaynağı tanımı, verilerdeki değişiklikleri tanımlamak için dizine eklenecek verileri, kimlik bilgilerini ve ilkeleri belirtir. Veri kaynağı, birden çok dizin oluşturucu tarafından kullanılabilmesi için bağımsız bir kaynak olarak tanımlanır.

Veri Kaynağı Oluştur veya Güncelleştir tanımı belirtir. Veri kaynağını oluştururken önizleme REST API'sini kullandığınızdan emin olun.

{   
    "name" : "hotel-mysql-ds",
    "description" : "[Description of MySQL data source]",
    "type" : "mysql",
    "credentials" : { 
        "connectionString" : 
            "Server=[MySQLServerName].MySQL.database.azure.com; Port=3306; Database=[DatabaseName]; Uid=[UserName]; Pwd=[Password]; SslMode=Preferred;" 
    },
    "container" : { 
        "name" : "[TableName]" 
    },
    "dataChangeDetectionPolicy" : { 
        "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
        "highWaterMarkColumnName": "[HighWaterMarkColumn]"
    }
}

Önemli noktalar:

  • type öğesini "mysql" olarak ayarlayın (gerekli).

  • credentials'yi ADO.NET bağlantı dizesi olarak ayarlayın. Bağlantı dizelerini Azure portalında, MySQL için Bağlantı dizeleri sayfasında bulabilirsiniz.

  • container öğesini tablonun adı olarak ayarlayın.

  • Verilerin geçici olup olmadığını ve dizin oluşturucunun sonraki çalıştırmalarda yalnızca yeni ve güncelleştirilmiş öğeleri almasını isteyip istemediğinizi ayarlayın dataChangeDetectionPolicy .

  • Kaynak öğe silindiğinde arama belgelerini bir arama dizininden kaldırmak istiyorsanız ayarlayın dataDeletionDetectionPolicy .

Not

Kapsayıcı adı özelliği için değer yalnızca harflere, sayılara, alt çizgilere (_), noktalara (.), tek tirelere (-) ve köşeli ayraçlara ([]) izin verecek şekilde kısıtlanır

Dizin oluşturma

Dizin Oluştur veya Güncelleştir dizin şemasını belirtir:

{
    "name" : "hotels-mysql-ix",
    "fields": [
        { "name": "ID", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false },
        { "name": "Category", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true  },
        { "name": "City", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true },
        { "name": "Description", "type": "Edm.String", "searchable": false, "filterable": false, "sortable": false  }     
    ]
}

Kaynak tablodaki birincil anahtar belge anahtarıyla (bu örnekte "Kimlik") eşleşiyorsa, dizin oluşturucu birincil anahtarı belge anahtarı olarak içeri aktarır.

Veri türlerini eşleme

Aşağıdaki tablo MySQL veritabanını Azure Yapay Zeka Arama eşdeğerleriyle eşler. Daha fazla bilgi için bkz. Supported data types (Azure Yapay Zeka Arama).

Not

Önizleme geometri türlerini ve blobları desteklemez.

MySQL veri türleri Azure Yapay Zeka Arama alan türleri
bool, boolean Edm.Boolean, Edm.String
tinyint, smallint, mediumint, , int, integer, year Edm.Int32, Edm.Int64, Edm.String
bigint Edm.Int64, Edm.String
float, double, real Edm.Double, Edm.String
date, datetime, timestamp Edm.DateTimeOffset, Edm.String
char, varchar, tinytext, , mediumtext, text, longtext, enum, set, time Edm.String
işaretsiz sayısal veriler, seri, ondalık, dec, bit, blob, ikili, geometri YOK

MySQL dizin oluşturucusunu yapılandırma ve çalıştırma

Dizin ve veri kaynağı oluşturulduktan sonra dizin oluşturucuyu oluşturmaya hazır olursunuz. Dizin oluşturucu yapılandırması, çalışma zamanı davranışlarını denetleen girişleri, parametreleri ve özellikleri belirtir.

Dizin oluşturucuya bir ad verip veri kaynağına ve hedef dizine başvurarak dizin oluşturucu oluşturun veya güncelleştirin:

{
    "name" : "hotels-mysql-idxr",
    "dataSourceName" : "hotels-mysql-ds",
    "targetIndexName" : "hotels-mysql-ix",
    "disabled": null,
    "schedule": null,
    "parameters": {
        "batchSize": null,
        "maxFailedItems": null,
        "maxFailedItemsPerBatch": null,
        "base64EncodeKeys": null,
        "configuration": { }
        },
    "fieldMappings" : [ ],
    "encryptionKey": null
}

Önemli noktalar:

Dizin oluşturucu durumunu kontrol etme

Dizinleyici çalıştırmasını izlemek için bir Get Indexer Status isteği gönderin.

GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2026-05-01-preview
  Content-Type: application/json  
  api-key: [admin key]

Yanıt, durumu ve işlenen öğe sayısını içerir. Aşağıdaki örneğe benzer görünmelidir:

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2024-02-21T00:23:24.957Z",
        "endTime":"2024-02-21T00:36:47.752Z",
        "errors":[],
        "itemsProcessed":1599501,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    },
    "executionHistory":
    [
        {
            "status":"success",
            "errorMessage":null,
            "startTime":"2024-02-21T00:23:24.957Z",
            "endTime":"2024-02-21T00:36:47.752Z",
            "errors":[],
            "itemsProcessed":1599501,
            "itemsFailed":0,
            "initialTrackingState":null,
            "finalTrackingState":null
        },
        ... earlier history items
    ]
}

Yürütme geçmişi, en son tamamlanan yürütmelerin en son 50'sini içerir ve en son yürütme önce gelecek şekilde ters kronolojik sırada sıralanır.

Yeni ve değiştirilmiş satırları dizine ekleme

Dizin oluşturucu bir arama dizinini tam olarak doldurduktan sonra, sonraki dizin oluşturucu çalıştırmalarının veritabanınızdaki yalnızca yeni ve değiştirilmiş satırları artımlı olarak dizinlemesini isteyebilirsiniz.

Artımlı dizin oluşturmayı etkinleştirmek için veri kaynağı tanımınızda özelliğini ayarlayın dataChangeDetectionPolicy . Bu özellik, dizin oluşturucuya verilerinizde hangi değişiklik izleme mekanizmasının kullanıldığını bildirir.

MySQL için Azure Veritabanı dizin oluşturucular için desteklenen tek ilke HighWaterMarkChangeDetectionPolicy.

Dizin oluşturucunun değişiklik algılama ilkesi, satır sürümünü yakalayan yüksek su işareti sütununa veya satırın en son güncelleştirildiği tarih ve saate dayanır. Genellikle DATE, DATETIME veya TIMESTAMP sütunları, yüksek su işareti sütununun gereksinimlerini karşılamak için yeterince ayrıntılı düzeyde olur.

MySQL veritabanınızda yüksek su seviyesi sütunu aşağıdaki gereksinimleri karşılamalıdır:

  • Tüm veri eklemeleri sütun için bir değer belirtmelidir.
  • Bir öğedeki tüm güncelleştirmeler sütunun değerini de değiştirir.
  • Her ekleme veya güncelleştirmede bu sütunun değeri artar.
  • Aşağıdaki WHERE ve ORDER BY yan tümcelerine sahip sorgular verimli bir şekilde yürütülebilir: WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]

Aşağıdaki örnekte, değişiklik algılama ilkesine sahip bir veri kaynağı tanımı gösterilmektedir:

{
    "name" : "[Data source name]",
    "type" : "mysql",
    "credentials" : { "connectionString" : "[connection string]" },
    "container" : { "name" : "[table or view name]" },
    "dataChangeDetectionPolicy" : {
        "@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
        "highWaterMarkColumnName" : "[last_updated column name]"
    }
}

Önemli

Görünüm kullanıyorsanız dizin oluşturucu veri kaynağınızda yüksek su işareti ilkesi ayarlamanız gerekir.

Kaynak tabloda yüksek su işareti sütununda bir dizin yoksa, MySQL indeksleyici tarafından kullanılan sorgular zaman aşımına uğrayabilir. Özellikle, ORDER BY [High Water Mark Column] yan tümcesi, tablo birçok satır içerdiğinde bir dizinin verimli bir şekilde çalışmasını gerektirir.

Silinen satırları dizinleme

Satırlar tablodan veya görünümden silindiğinde, normalde bu satırları da arama dizininden silmek istersiniz. Ancak, satırlar tablodan fiziksel olarak kaldırılırsa, dizin oluşturucunun artık var olmayan kayıtların varlığını çıkarsama yolu yoktur. Çözüm, satırları tablodan kaldırmadan mantıksal olarak silmek için geçici silme tekniği kullanmaktır. Tablonuza bir sütun ekleyin veya bu sütunu kullanarak satırları silindi olarak işaretleyin.

Silme durumu sağlayan bir sütun verildiğinde, bir dizin oluşturucu, silme durumunun olarak ayarlandığı truetüm arama belgelerini kaldıracak şekilde yapılandırılabilir. Bu davranışı destekleyen yapılandırma özelliği, veri kaynağı tanımında aşağıdaki gibi belirtilen bir veri silme algılama ilkesidir:

{
    …,
    "dataDeletionDetectionPolicy" : {
        "@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
        "softDeleteColumnName" : "[a column name]",
        "softDeleteMarkerValue" : "[the value that indicates that a row is deleted]"
    }
}

softDeleteMarkerValue bir dize olmalıdır. Örneğin, silinen satırların 1 değeriyle işaretlendiği bir tamsayı sütununu kullanıyorsanız kullanın "1". Silinen satırların Boole gerçek değeriyle işaretlendiği bir BIT sütuna sahipseniz dize değişmez değerini True kullanın veya true (büyük/küçük harf fark etmez).

Sonraki adımlar

Artık dizin oluşturucuyu çalıştırabilir, durumu izleyebilir veya dizin oluşturucu yürütmesini zamanlayabilirsiniz. Aşağıdaki makaleler, Azure MySQL'den içerik çeken dizin oluşturucular için geçerlidir: