Azure SQL Veritabanı verileri dizine alın

Important

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, Azure SQL Veritabanı veya Azure SQL yönetilen örneğinden içerik içeri aktaran ve Azure Yapay Zeka Arama'te aranabilir hale getiren bir dizin oluşturucu yapılandırmayı öğrenin.

Bu makale, Azure SQL'e özgü bilgilerle dizin oluşturucu oluşturma makalesini tamamlar. Azure portalını ve 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.

Bu makalede ayrıca şunlar sağlanır:

Not

Dizin oluşturucu ile gerçek zamanlı veri eşitlemesi mümkün değildir. Dizin oluşturucu en fazla beş dakikada bir tablonuzu yeniden dizine alabilir. Veri güncelleştirmelerinin dizine daha erken yansıtılması gerekiyorsa, güncelleştirilmiş satırları doğrudan göndermenizi öneririz.

Önkoşullar

  • Bir Azure SQL veritabanı veya genel uç noktaya sahip bir SQL Yönetilen Örneği.

  • Tek bir tablo veya görünüm.

    Verileriniz büyükse veya arama dizinindeki yeni, değiştirilmiş ve silinmiş satırları yansıtmak için SQL'in yerel değişiklik algılama özelliklerini (SQL tümleşik değişiklik izleme) kullanarak artımlı dizine ihtiyacınız varsa bir tablo kullanın.

    Birden çok tabloya ait verileri birleştirmeniz gerekiyorsa bir görünüm kullanın. Büyük görünümler SQL dizin oluşturucu için ideal değildir. Geçici bir çözüm, yalnızca Azure Yapay Zeka Arama dizininize alım için yeni bir tablo oluşturmaktır. Bir görünüm ile devam etmeyi seçerseniz, değişiklik algılama için Yüksek Su İşareti kullanabilirsiniz, ancak silme algılama için bir geçici çözüm kullanmanız gerekir.

  • Birincil anahtar tek değerli olmalıdır. Tam SQL tümleşik değişiklik izleme yapılabilmesi için bir tablonun kümelenmemiş olması gerekir.

  • Okuma izinleri. Azure Yapay Zeka Arama, kullanıcı adı ve parolanın bağlantı dizesinde sağlandığı SQL Server kimlik doğrulamasını destekler. Alternatif olarak, bir yönetilen kimlik ayarlayabilir ve Azure rollerini, SQL Server Katkıda Bulunanı veya SQL DB Katkıda Bulunanı rollerinde üyelikle kullanabilirsiniz.

Bu makaledeki örnekleri inceleyebilmek için Azure portalına veya REST istemcisine ihtiyacınız vardır. Azure portalını kullanıyorsanız, Azure SQL güvenlik duvarında tüm genel ağlara erişimin etkinleştirildiğinden ve istemcinin bir gelen kuralı üzerinden erişimi olduğundan emin olun. Yerel olarak çalışan bir REST istemcisi için SQL Server güvenlik duvarını, cihazınızın IP adresinden gelen erişime izin verecek şekilde yapılandırın. Azure SQL dizin oluşturucu oluşturmaya yönelik diğer yaklaşımlar arasında Azure SDK'ları bulunur.

Örnek verilerle deneme

Test amacıyla Azure SQL Veritabanı'da tablo oluşturmak ve yüklemek için bu yönergeleri kullanın.

  1. GitHub'dan hotels-azure-sql.sql indirin ve Azure SQL Veritabanı örnek otel veri kümesinin bir alt kümesini içeren bir tablo oluşturun.

  2. Azure portalında oturum açın ve bir Azure SQL veritabanı ve veritabanı sunucusu oluşturun. Hem SQL Server kimlik doğrulamasını hem de Microsoft Entra Id kimlik doğrulamasını yapılandırmayı göz önünde bulundurun. Azure'da rolleri yapılandırma izniniz yoksa geçici çözüm olarak SQL kimlik doğrulamasını kullanabilirsiniz.

  3. Sunucu güvenlik duvarını yerel cihazınızdan gelen tüm istekler için yapılandırın.

  4. Azure SQL veritabanınızda Sorgu düzenleyicisi (önizleme) öğesini ve ardından Yeni Sorgu'yu seçin.

  5. Yapıştırın ve ardından hotels tablosunu oluşturan T-SQL betiğini çalıştırın. Kümelenmemiş birincil anahtar, SQL tümleşik değişiklik izleme için bir gereksinimdir.

    CREATE TABLE tbl_hotels
     (
         Id TINYINT PRIMARY KEY NONCLUSTERED,
         Modified DateTime NULL DEFAULT '0000-00-00 00:00:00',
         IsDeleted TINYINT,
         HotelName VARCHAR(40),
         Category VARCHAR(20),
         City VARCHAR(30),
         State VARCHAR(4),
         Description VARCHAR(500)
     );
    
  6. Yapıştırın ve ardından kayıtları ekleyen T-SQL betiğini çalıştırın.

     -- Insert rows
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (1, CURRENT_TIMESTAMP, 0,  'Stay-Kay City Hotel', 'Boutique', 'New York', 'NY', 'This classic hotel is fully-refurbished and ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Times Square and the historic centre of the city, as well as other places of interest that make New York one of Americas most attractive and cosmopolitan cities.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (10, CURRENT_TIMESTAMP, 0, 'Countryside Hotel', 'Extended-Stay', 'Durham', 'NC', 'Save up to 50% off traditional hotels. Free WiFi, great location near downtown, full kitchen, washer & dryer, 24\/7 support, bowling alley, fitness center and more.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (11, CURRENT_TIMESTAMP, 0, 'Royal Cottage Resort', 'Extended-Stay', 'Bothell', 'WA', 'Your home away from home. Brand new fully equipped premium rooms, fast WiFi, full kitchen, washer & dryer, fitness center. Inner courtyard includes water features and outdoor seating. All units include fireplaces and small outdoor balconies. Pets accepted.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (12, CURRENT_TIMESTAMP, 0, 'Winter Panorama Resort', 'Resort and Spa', 'Wilsonville', 'OR', 'Plenty of great skiing, outdoor ice skating, sleigh rides, tubing and snow biking. Yoga, group exercise classes and outdoor hockey are available year-round, plus numerous options for shopping as well as great spa services. Newly-renovated with large rooms, free 24-hr airport shuttle & a new restaurant. Rooms\/suites offer mini-fridges & 49-inch HDTVs.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (13, CURRENT_TIMESTAMP, 0, 'Luxury Lion Resort', 'Luxury', 'St. Louis', 'MO', 'Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium and transportation hubs, we feature the best in convenience and comfort.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (14, CURRENT_TIMESTAMP, 0, 'Twin Vortex Hotel', 'Luxury', 'Dallas', 'TX', 'New experience in the making. Be the first to experience the luxury of the Twin Vortex. Reserve one of our newly-renovated guest rooms today.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (15, CURRENT_TIMESTAMP, 0, 'By the Market Hotel', 'Budget', 'New York', 'NY', 'Book now and Save up to 30%. Central location. Walking distance from the Empire State Building & Times Square, in the Chelsea neighborhood. Brand new rooms. Impeccable service.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (16, CURRENT_TIMESTAMP, 0, 'Double Sanctuary Resort', 'Resort and Spa', 'Seattle', 'WA', '5 Star Luxury Hotel - Biggest Rooms in the city. #1 Hotel in the area listed by Traveler magazine. Free WiFi, Flexible check in\/out, Fitness Center & espresso in room.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (17, CURRENT_TIMESTAMP, 0, 'City Skyline Antiquity Hotel', 'Boutique', 'New York', 'NY', 'In vogue since 1888, the Antiquity Hotel takes you back to bygone era. From the crystal chandeliers that adorn the Green Room, to the arched ceilings of the Grand Hall, the elegance of old New York beckons. Elevate Your Experience. Upgrade to a premiere city skyline view for less, where old world charm combines with dramatic views of the city, local cathedral and midtown.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (18, CURRENT_TIMESTAMP, 0, 'Ocean Water Resort & Spa', 'Luxury', 'Tampa', 'FL', 'New Luxury Hotel for the vacation of a lifetime. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (19, CURRENT_TIMESTAMP, 0, 'Economy Universe Motel', 'Budget', 'Redmond', 'WA', 'Local, family-run hotel in bustling downtown Redmond. We are a pet-friendly establishment, near expansive Marymoor park, haven to pet owners, joggers, and sports enthusiasts. Close to the highway and just a short drive away from major cities.');
     INSERT INTO tbl_hotels (Id, Modified, IsDeleted, HotelName, Category, City, State, Description) VALUES (20, CURRENT_TIMESTAMP, 0, 'Delete Me Hotel', 'Unknown', 'Nowhere', 'XX', 'Test-case row for change detection and delete detection . For change detection, modify any value, and then re-run the indexer. For soft-delete, change IsDelete from zero to a one, and then re-run the indexer.');
    
    
  7. Yüklemeyi onaylamak için bir sorgu çalıştır.

    SELECT Description FROM tbl_hotels;
    

    Aşağıdaki ekran görüntüsüne benzer sonuçlar görmeniz gerekir.

    Açıklama alanını gösteren sorgu sonuçlarının ekran görüntüsü.

Açıklama alanı en ayrıntılı içeriği sağlar. Tam metin araması ve isteğe bağlı vektörleştirme için bu alanı hedeflemeniz gerekir.

Artık bir veritabanı tablonuz olduğuna göre, verilerinizi dizine almak için Azure portalını, REST istemcisini veya Azure SDK'sını kullanabilirsiniz.

İpucu

Örnek içerik ve kod sağlayan başka bir kaynak Azure-Samples/SQL-AI-samples sayfasında bulunabilir.

Dizin oluşturucu işlem hattını ayarlama

Bu adımda veri kaynağını, dizini ve dizin oluşturucuyu belirtin.

  1. SQL veritabanınızın etkin olduğundan ve işlem yapılmadığından duraklatılmadığından emin olun. Azure portalında veritabanı sunucusu sayfasına gidin ve veritabanı durumunun çevrimiçi olduğunu doğrulayın. Veritabanını etkinleştirmek için herhangi bir tabloda sorgu çalıştırabilirsiniz.

    Azure portalındaki veritabanı durumu sayfasının ekran görüntüsü.

  2. Dizin oluşturucular ve değişiklik algılama gereksinimlerini karşılayan bir tablonuz veya görünümünüz olduğundan emin olun.

    İlk olarak, sadece bir tablodan veya görünümden veri çekebilirsiniz. Yeni, güncelleştirilmiş ve silinmiş satırları algılayan SQL tümleşik değişiklik izleme ilkesini desteklediği için tabloları öneririz. Yüksek su işareti politikası satır silmeyi desteklemez ve uygulanması daha zordur.

    İkinci olarak, birincil anahtar tek bir değer (bileşik anahtarlar desteklenmez) ve kümelenmemiş olmalıdır.

  3. Arama hizmetinize geçin ve bir veri kaynağı oluşturun. Arama yönetimi>Veri kaynakları'nın altında Veri kaynağı ekle'yi seçin:

    1. Veri kaynağı türü için Azure SQL Veritabanı'nı seçin.
    2. Azure Yapay Zeka Arama'te veri kaynağı nesnesi için bir ad sağlayın.
    3. Abonelik, hesap türü, sunucu, veritabanı, tablo veya görünüm, şema ve tablo adını seçmek için açılan menüleri kullanın.
    4. Değişiklik izleme için SQL Tümleşik Değişiklik İzleme İlkesi'ni öneririz.
    5. Kimlik doğrulaması için yönetilen kimlikle bağlanmanızı öneririz. Arama hizmetinizin veritabanında SQL Server Katkıda Bulunanı veya SQL VERITABANı Katkıda Bulunanı rol üyeliği olmalıdır.
    6. Veri kaynağını oluşturmak için Oluştur'u seçin.

    Azure portalında veri kaynağı oluşturma sayfasının ekran görüntüsü.

  4. dizin ve dizin oluşturucu oluşturmak için içeri aktarma sihirbazını kullanın.

    1. Genel Bakış sayfasında Verileri içeri aktar'ı seçin.

    2. Yeni oluşturduğunuz veri kaynağını seçin.

    3. Yapay zeka zenginleştirmeleri ekleme adımını atlayın.

    4. Dizini adlandırın, anahtarı tablodaki birincil anahtarınıza ayarlayın, tüm alanları Alınabilir ve Aranabilir olarak ilişkilendirin ve isteğe bağlı olarak kısa dizeler veya sayısal değerler için Filtrelenebilir ve Sıralanabilir ekleyin.

    5. Dizin oluşturucuyu adlandırın ve gerekli nesneleri oluşturmak için sihirbazı tamamlayın.

Dizin oluşturucu durumunu denetle

Dizin oluşturucu durumunu ve yürütme geçmişini izlemek için Azure portalında dizin oluşturucu yürütme geçmişini denetleyin veya Dizin Oluşturucu Durumunu Al REST API isteği gönderin

  1. Arama hizmeti sayfasında Arama yönetimi

  2. Yapılandırma ve yürütme geçmişine erişmek için bir dizin oluşturucu seçin.

  3. Ayrıntıları, uyarıları ve hataları görüntülemek için belirli bir dizin oluşturucu işi seçin.

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, değiştirilmiş ve silinmiş satırları dizine ekleme

SQL veritabanınız değişiklik izlemeyi destekliyorsa, arama dizin oluşturucu sonraki dizin oluşturucu çalıştırmalarında yalnızca yeni ve güncelleştirilmiş içeriği alabilir.

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

Azure SQL dizin oluşturucuları için iki değişiklik algılama ilkesi vardır:

  • "SqlIntegratedChangeTrackingPolicy" (yalnızca tablolar için geçerlidir)

  • "HighWaterMarkChangeDetectionPolicy" (görünümler için çalışır)

SQL tümleşik değişiklik izleme ilkesi

Verimliliği ve silinen satırları tanımlama yeteneği için "SqlIntegratedChangeTrackingPolicy" kullanmanızı öneririz.

Veritabanı gereksinimleri:

  • Azure SQL Veritabanı veya SQL Yönetilen Örnek. Azure VM kullanıyorsanız SQL Server 2016 veya üzeri.
  • Veritabanında değişiklik izleme etkinleştirilmelidir
  • Yalnızca tablolar (görünüm yok).
  • Tablolar kümelenemez. Bu gereksinimi karşılamak için kümelenmiş dizini bırakın ve kümelenmemiş dizin olarak yeniden oluşturun. Bu geçici çözüm genellikle performansı düşürür. Dizin oluşturucu işlemeye ayrılmış ikinci bir tablodaki içeriğin çoğaltılması yararlı bir azaltma olabilir.
  • Tablolar boş olamaz. Satırları temizlemek için TRUNCATE TABLE kullanırsanız, dizin oluşturucunun sıfırlanması ve yeniden çalıştırılması ilgili arama belgelerini kaldırmaz. Sahipsiz arama belgelerini kaldırmak için, silme eylemiyle dizine almanız gerekir.
  • Birincil anahtar bileşik anahtar (birden fazla sütun içeren) olamaz.
  • Silme algılaması istiyorsanız birincil anahtar kümelenmemiş olmalıdır.

Değişiklik algılama ilkeleri veri kaynağı tanımlarına eklenir. Bu ilkeyi kullanmak için Azure portalında veri kaynağı tanımını düzenleyin veya REST kullanarak veri kaynağınızı şu şekilde güncelleştirin:

POST https://myservice.search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: admin-key
    {
        "name" : "myazuresqldatasource",
        "type" : "azuresql",
        "credentials" : { "connectionString" : "connection string" },
        "container" : { "name" : "table name" },
        "dataChangeDetectionPolicy" : {
            "@odata.type" : "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy"
        }
    }

SQL tümleşik değişiklik izleme ilkesini kullanırken ayrı bir veri silme algılama ilkesi belirtmeyin. SQL tümleşik değişiklik izleme ilkesi, silinen satırları tanımlamaya yönelik yerleşik desteğe sahiptir. Ancak, silinen satırların otomatik olarak algılanması için, arama dizininizdeki belge anahtarı SQL tablosundaki birincil anahtarla aynı olmalı ve birincil anahtar kümelenmemiş olmalıdır.

Yüksek su işareti değişiklik algılama ilkesi

Bu değişiklik tespit politikası, tablonuzda veya görünümde bir satırın son güncellendiği sürüm veya zamanı kaydeden bir "yüksek su işareti" sütununa dayanır. Görünüm kullanıyorsanız yüksek su işareti ilkesi kullanmanız gerekir.

Yüksek su işareti sütunu aşağıdaki gereksinimleri karşılamalıdır:

  • Tüm eklemeler sütun için bir değer belirtir.
  • 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]

Not

Yüksek su işareti sütunu için rowversion veri türünü kullanmanızı kesinlikle öneririz. Başka bir veri türü kullanılırsa, dizin oluşturucu sorgusuyla eşzamanlı olarak yürütülen işlemlerin varlığında değişiklik izlemenin tüm değişiklikleri yakalaması garanti değildir. Salt okunur çoğaltmaları olan bir yapılandırmada rowversion kullanırken, dizin oluşturucuyu birincil çoğaltmaya işaret etmeniz gerekir. Veri eşitleme senaryoları için yalnızca birincil çoğaltma kullanılabilir.

Değişiklik algılama ilkeleri veri kaynağı tanımlarına eklenir. Bu ilkeyi kullanmak için veri kaynağınızı şu şekilde oluşturun veya güncelleştirin:

POST https://myservice.search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: admin-key
    {
        "name" : "myazuresqldatasource",
        "type" : "azuresql",
        "credentials" : { "connectionString" : "connection string" },
        "container" : { "name" : "table or view name" },
        "dataChangeDetectionPolicy" : {
            "@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
            "highWaterMarkColumnName" : "[a rowversion or last_updated column name]"
        }
    }

Not

Kaynak tabloda yüksek su işareti sütununda dizin yoksa, SQL dizinleyici 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 verimli bir şekilde çalışabilmesi için bir dizin gerektirir.

convertHighWaterMarkToRowVersion

Yüksek su işareti sütunu için rowversion veri türü kullanıyorsanız, dizin oluşturucu yapılandırmasında convertHighWaterMarkToRowVersion özelliğini ayarlamayı düşünün. Bu özelliğin true olarak ayarlanması aşağıdaki davranışlara neden olur:

  • Dizin oluşturucu SQL sorgusundaki yüksek su işareti sütunu için rowversion veri türünü kullanır. Doğru veri türünün kullanılması dizin oluşturucu sorgu performansını artırır.

  • Dizin oluşturucu sorgusu çalışmadan önce rowversion değerinden bir tane çıkarır. Bire birden fazla olan birleşimlere sahip görünümlerde, yinelenen rowversion değerlerine sahip satırlar bulunabilir. Birinin çıkarılması, dizin oluşturucu sorgusunun bu satırları kaçırmamasını sağlar.

Bu özelliği etkinleştirmek için dizin oluşturucuyu aşağıdaki yapılandırmayla oluşturun veya güncelleştirin:

    {
      ... other indexer definition properties
     "parameters" : {
            "configuration" : { "convertHighWaterMarkToRowVersion" : true } }
    }

queryTimeout

Zaman aşımı hatalarıyla karşılaşırsanız dizin oluşturucu yapılandırma ayarını varsayılan 5 dakikalık zaman aşımından daha yüksek bir değere ayarlayın queryTimeout . Örneğin, zaman aşımını 10 dakikaya ayarlamak için dizin oluşturucuyu aşağıdaki yapılandırmayla oluşturun veya güncelleştirin:

    {
      ... other indexer definition properties
     "parameters" : {
            "configuration" : { "queryTimeout" : "00:10:00" } }
    }

YüksekSuİşaretiSütununaGöreSıralamayıDevreDışıBırak

Yan tümcesini ORDER BY [High Water Mark Column] de devre dışı bırakabilirsiniz. Ancak dizin oluşturucu yürütmesi bir hatayla kesildiğinde dizin oluşturucunun kesintiye uğradığı sırada neredeyse tüm satırları zaten işlemiş olsa bile daha sonra çalıştırılırsa tüm satırları yeniden işlemesi gerektiğinden bu önerilmez. ORDER BY maddesini devre dışı bırakmak için dizin oluşturucu tanımında disableOrderByHighWaterMarkColumn ayarını kullanın.

    {
     ... other indexer definition properties
     "parameters" : {
            "configuration" : { "disableOrderByHighWaterMarkColumn" : true } }
    }

Yumuşak silme sütunu silme algılama ilkesi

Satırlar kaynak tablodan silindiğinde, bu satırları arama dizininden de silmek isteyebilirsiniz. SQL tümleşik değişiklik izleme ilkesini kullanırsanız, bu sizin için halledilir. Ancak, yüksek su işareti değişiklik izleme ilkesi silinen satırlarda size yardımcı olmaz. Ne yapmalı?

Satırlar tablodan fiziksel olarak kaldırılırsa, Azure Yapay Zeka Arama'ün artık mevcut olmayan kayıtların varlığını çıkarsama yolu yoktur. Ancak, satırları tablodan kaldırmadan mantıksal olarak silmek için "geçici silme" tekniğini kullanabilirsiniz. Tablonuza bir sütun ekleyin veya bu sütunu kullanarak satırları silindi olarak işaretleyin.

Geçici silme tekniğini kullanırken, veri kaynağını oluştururken veya güncelleştirirken geçici silme ilkesini aşağıdaki gibi belirtebilirsiniz:

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

softDeleteMarkerValue, veri kaynağınızın JSON gösteriminde bir dize olmalıdır. Gerçek değerinizin dize gösterimini kullanın. Ö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 doğru değeriyle işaretlendiği bir BIT sütununa sahipseniz, dize sabit değeri olarak "True" veya "true" kullanın, büyük/küçük harf fark etmez.

Azure portalından geçici silme ilkesi ayarlanıyorsa geçici silme işaretçisi değerinin çevresine tırnak işareti eklemeyin. Alan içeriği zaten bir dize olarak anlaşılır ve sizin için otomatik olarak bir JSON dizesine çevrilir. Önceki örneklerde, Azure portalının alanına 1, True veya true yazmanız yeterlidir.

SSS

S: Always Encrypted sütunlarını dizine ekleyebilir miyim?

Hayır, Always Encrypted sütunları şu anda Azure Yapay Zeka Arama dizin oluşturucuları tarafından desteklenmiyor.

S: Azure'da IaaS VM'lerinde çalışan SQL veritabanlarıyla Azure SQL dizin oluşturucu kullanabilir miyim?

Evet. Ancak, arama hizmetinizin veritabanınıza bağlanmasına izin vermeniz gerekir. Daha fazla bilgi için bkz: Azure VM üzerindeki SQL Server'dan Azure Yapay Zeka Arama dizin oluşturucuya bağlantı yapılandırma.

S: Şirket içinde çalışan SQL veritabanlarıyla Azure SQL dizin oluşturucu kullanabilir miyim?

Doğrudan değil. Veritabanlarınızı İnternet trafiğine açmanız gerekeceğinden doğrudan bağlantı önermiyoruz veya desteklemiyoruz. Müşteriler, Azure Data Factory gibi köprü teknolojilerini kullanarak bu senaryoyla başarılı olmuştur. Daha fazla bilgi için bkz . Azure Data Factory kullanarak Azure Yapay Zeka Arama dizinine veri gönderme.

Soru: Yük devretme kümesinde bir ikincil çoğaltmayı veri kaynağı olarak kullanabilir miyim?

Duruma göre değişir. Bir tablo veya görünümün tam indekslemesi için bir ikincil replikayı kullanabilirsiniz.

Artımlı dizin oluşturma için Azure Yapay Zeka Arama iki değişiklik algılama ilkesi destekler: SQL tümleşik değişiklik izleme ve Yüksek Su İşareti.

Salt okunur çoğaltmalarda SQL Veritabanı tümleşik değişiklik izlemeyi desteklemez. Bu nedenle, Yüksek Su İşareti ilkesini kullanmanız gerekir.

Standart önerimiz, yüksek su işareti sütunu için rowversion veri türünü kullanmaktır. Ancak rowversion kullanmak, MIN_ACTIVE_ROWVERSION işlevine güvenen ve salt okunur çoğaltmalarda desteklenmeyen bir işlevdir. Bu nedenle, rowversion kullanıyorsanız indeksleyiciyi birincil kopyaya işaret etmeniz gerekir.

Salt okunur bir yedekte rowversion kullanmak isterseniz, aşağıdaki hatayı alırsınız:

"Değişiklik izleme için rowversion sütunu kullanılması ikincil (salt okunur) kullanılabilirlik çoğaltmalarında desteklenmez. Veri kaynağını güncelleştirin ve birincil kullanılabilirlik çoğaltmasına bir bağlantı belirtin. Geçerli veritabanının 'Güncellenebilirlik' özelliği 'Sadece Okunur' şeklindedir.

Q: Yüksek su işareti değişiklik izlemesi için alternatif, rowversion olmayan bir sütun kullanabilir miyim?

Bu önerilmez. Yalnızca rowversion güvenilir veri eşitlemesine izin verir. Ancak, uygulama mantığınıza bağlı olarak, aşağıdakiler güvenli olabilir:

  • Dizin oluşturucu çalıştırıldığında, dizine alınan tabloda bekleyen işlem olmadığından emin olabilirsiniz (örneğin, tüm tablo güncelleştirmeleri bir zamanlamaya göre toplu iş olarak gerçekleşir ve Azure Yapay Zeka Arama dizin oluşturucu zamanlaması, tablo güncelleştirme zamanlaması ile çakışmasını önlemek için ayarlanır).

  • Eksik satırları almak için düzenli aralıklarla tam bir yeniden dizin oluşturma işlemi yaparsınız.