Aracılığıyla paylaş


.NET Aspire Milvus veritabanı tümleştirmesi

Içerir: Barındırma tümleştirmesi ve Client tümleştirmesi

Milvus, büyük ölçekli vektör verilerini verimli bir şekilde depolayan, dizinleyen ve arayan bir açık kaynak vektör veritabanı sistemidir. Makine öğrenmesi, yapay zeka ve veri bilimi uygulamalarında yaygın olarak kullanılır.

Vektör verileri, bilgileri sayı dizileri veya koordinatlar olan matematiksel vektörler olarak kodlar. Makine öğrenmesi ve yapay zeka sistemleri genellikle görüntüler, metin, ses veya video gibi yapılandırılmamış nesneleri temsil etmek için vektörleri kullanır. Vektördeki her boyut nesnenin belirli bir özelliğini açıklar. Sistemler bunları karşılaştırarak nesne kümelerini sınıflandırabilir, arayabilir ve tanımlayabilir.

Bu makalede, .NET AspireMilvus veritabanı tümleştirmesini kullanmayı öğreneceksiniz. .NET Aspire Milvus veritabanı tümleştirmesi, mevcut Milvus veritabanlarına bağlanmanıza veya milvusdb/milvus kapsayıcı görüntüsüyeni örnekler oluşturmanıza olanak tanır.

Barındırma entegrasyonu

Milvus veritabanı barındırma tümleştirmesi, sunucuyu MilvusServerResource türü ve veritabanını MilvusDatabaseResource türü olarak modeller. Bu türlere ve API'lere erişmek için 📦Aspire.Hosting.Milvus NuGet paketini uygulama konağı projesine ekleyin.

dotnet add package Aspire.Hosting.Milvus

Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.

Milvus sunucu ve veritabanı kaynakları ekleme

Uygulama ana bilgisayar projenizde AddMilvus çağırarak bir Milvus kaynak oluşturucu ekleyin ve döndürin. Döndürülen kaynak oluşturucu ile bir çağrıyı AddDatabase'e zincirleyin ve bir Milvus veritabanı kaynağı ekleyin.

var builder = DistributedApplication.CreateBuilder(args);

var milvus = builder.AddMilvus("milvus")
                    .WithLifetime(ContainerLifetime.Persistent);

var milvusdb = milvus.AddDatabase("milvusdb");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(milvusdb)
       .WaitFor(milvusdb);

// After adding all resources, run the app...

Not

Milvus kapsayıcısı yavaş başlatılabilir, bu nedenle gereksiz yeniden başlatmaları önlemek için kalıcı ömrü kullanmak en iyisidir. Daha fazla bilgi için bkz. kapsayıcı kaynak ömrü.

.NET .NET Aspire, önceki örnekte milvusdb/milvus görüntüsüyle gösterildiği gibi uygulama konağına bir kapsayıcı görüntüsü eklediğinde, yerel makinenizde yeni bir Milvus örneği oluşturur. Veritabanı eklemek için Milvus kaynak oluşturucunuza (milvus değişkeni) başvuru kullanılır. Veritabanı milvusdb olarak adlandırılır ve daha sonra ExampleProject'e eklenir.

WithReference yöntemi, ExampleProjectolan milvusdb'de bir bağlantı yapılandırıyor.

Bahşiş

Mevcut bir Milvus sunucusuna bağlanmak isterseniz bunun yerine AddConnectionString'ı arayın. Daha fazla bilgi için bkz. Var olan kaynaklara başvurma.

kimlik bilgilerini işleme ve Milvus kaynağı için diğer parametreleri geçirme

Milvus kaynağı, usernameroot ile varsayılan kimlik bilgilerini ve parolayı Milvus içerir. Milvus, COMMON_SECURITY_DEFAULTROOTPASSWORDortam değişkenini kullanarak yapılandırma tabanlı varsayılan parolaları destekler. Kapsayıcıdaki varsayılan parolayı değiştirmek için, apiKey barındırma API'sini çağırırken bir AddMilvus parametresi geçirin:

var apiKey = builder.AddParameter("apiKey", secret: true);

var milvus = builder.AddMilvus("milvus", apiKey);

var myService = builder.AddProject<Projects.ExampleProject>()
                       .WithReference(milvus);

Yukarıdaki kod, AddMilvus API'sine geçirmek için bir parametre alır ve COMMON_SECURITY_DEFAULTROOTPASSWORD kapsayıcısının Milvus ortam değişkenine dahili olarak parametresini atar. apiKey parametresi genellikle kullanıcı gizli dizisiolarak belirtilir:

{
  "Parameters": {
    "apiKey": "Non-default-P@ssw0rd"
  }
}

Daha fazla bilgi için bkz. dış parametreler.

Milvus kaynağına bir veri birimi ekle

Milvus hizmet kaynağına veri birimi eklemek için WithDataVolume kaynağında Milvus yöntemini çağırın:

var builder = DistributedApplication.CreateBuilder(args);

var milvus = builder.AddMilvus("milvus")
                    .WithDataVolume();

var milvusdb = milvus.AddDatabase("milvusdb");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(milvusdb)
       .WaitFor(milvusdb);

// After adding all resources, run the app...

Veri hacmi, Milvus verilerini kapsayıcısının yaşam döngüsü dışında kalıcı hale getirmek için kullanılır. Veri birimi, /var/lib/milvus kapsayıcısının SQL Server yoluna bağlanır ve name parametresi sağlanmazsa ad rastgele oluşturulur. Veri hacimleri hakkında daha fazla bilgi edinmek ve veri hacimlerinin bağlamalarıyerine tercih edilmelerinin nedenleri hakkında ayrıntılar için bkz. Docker belgeler: Hacimler.

Veri bağlama ile Milvus kaynağı ekleme

Milvus kaynağına veri bağlaması eklemek için WithDataBindMount yöntemini çağırın:

var builder = DistributedApplication.CreateBuilder(args);

var milvus = builder.AddMilvus("milvus")
                    .WithDataBindMount(source: @"C:\Milvus\Data");

var milvusdb = milvus.AddDatabase("milvusdb");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(milvusdb)
       .WaitFor(milvusdb);

// After adding all resources, run the app...

Önemli

Veri bağlama bağlamaları, daha iyi performans, taşınabilirlik ve güvenlik sunanbirimleriyle karşılaştırıldığında sınırlı işlevselliğe sahiptir ve bu da üretim ortamları için daha uygun olmasını sağlar. Ancak bağlama bağlamaları, gerçek zamanlı değişikliklerin gerekli olduğu geliştirme ve test için ideal olan konak sistemindeki dosyaların doğrudan erişimine ve değiştirilmesine olanak sağlar.

Veri bağlama noktaları, konteyner yeniden başlatıldığında da Milvus verilerini korumak için host makinenin dosya sistemine dayanır. Veri bağlama noktası, konak makinede Windows üzerindeki C:\Milvus\Data yolunda (veya Unix üzerindeki /Milvus/Data yolunda) Milvus kapsayıcısında monte edilmiştir. Daha fazla bilgi için veri bağlama noktaları bkz. Docker belgeler: Bağlama Noktaları.

Attu kaynağı oluşturma

Attu, Milvus ve veritabanlarıyla etkileşime geçmek için tasarlanmış bir grafik kullanıcı arabirimi (GUI) ve yönetim aracıdır. Vektör verilerinizi araştırmanıza ve anlamanıza yardımcı olabilecek zengin görselleştirme özellikleri içerir.

Milvus çözümünüzdeki .NET Aspire yönetmek için Attu kullanmak istiyorsanız, WithAttu kaynağınızdaki Milvus uzantısı yöntemini çağırın. Yöntem, zilliz/attu görüntüsündenbir kapsayıcı oluşturur.

var builder = DistributedApplication.CreateBuilder(args);

var milvus = builder.AddMilvus("milvus")
                    .WithAttu()
                    .WithLifetime(ContainerLifetime.Persistent);

var milvusdb = milvus.AddDatabase("milvusdb");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(milvusdb)
       .WaitFor(milvusdb);

// After adding all resources, run the app...

.NET .NET Aspire çözümünde hata ayıkladığınızda, çözümün kaynaklarında bir Attu kapsayıcısı listelenir. GUI'yi açmak ve veritabanlarını yönetmeye başlamak için kaynağın uç noktasını seçin.

Client entegrasyon (Önizleme)

.NET Aspire Milvus istemci tümleştirmesini kullanmaya başlamak için 📦Aspireyükleyin.Milvus.Client NuGet paketini istemci kullanan projede, yani Milvus veritabanı istemcisini kullanan uygulamanın projesinde. Milvus istemci tümleştirmesi, Milvus.Client.MilvusClient örneğini, Milvus veritabanlarıyla etkileşim kurmak için kullanabileceğiniz şekilde kaydeder.

dotnet add package Aspire.Milvus.Client

Milvus istemciyi ekleyin

İstemci kullanan projenizin Program.cs dosyasında, bağımlılık enjeksiyonu kapsayıcısı aracılığıyla kullanılmak üzere bir MilvusClient kaydetmek için herhangi bir IHostApplicationBuilder üzerinde AddMilvusClient uzantı yöntemini çağırın. yöntemi bir bağlantı adı parametresi alır.

builder.AddMilvusClient("milvusdb");

Bahşiş

connectionName parametresi, uygulama ana bilgisayar projesine Milvus veritabanı kaynağı eklenirken kullanılan adla eşleşmelidir. Başka bir deyişle, AddDatabase'ı çağırdığınızda ve milvusdb adını sağladığınızda, AddMilvusClientçağrılırken de aynı ad kullanılmalıdır. Daha fazla bilgi için bkz. Milvus sunucu kaynağı veveritabanı kaynağı ekleme.

Daha sonra bağımlılık ekleme kullanarak MilvusClient örneğini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:

public class ExampleService(MilvusClient client)
{
    // Use the Milvus Client...
}

Bağımlılık ekleme hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme.

Anahtarlı Milvus istemcisi ekleme

Farklı bağlantı adlarına sahip birden çok MilvusClient örneğini kaydetmek istediğiniz durumlar olabilir. Anahtarlı Milvus istemcilerini kaydetmek için AddKeyedMilvusClient yöntemini çağırın:

builder.AddKeyedMilvusClient(name: "mainDb");
builder.AddKeyedMilvusClient(name: "loggingDb");

Önemli

Anahtarlı hizmetleri kullanırken, Milvus kaynağınızın, biri mainDb ve diğeri loggingDbiçin olmak üzere iki ayrı veritabanı yapılandırması beklenir.

Daha sonra bağımlılık ekleme kullanarak MilvusClient örneklerini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:

public class ExampleService(
    [FromKeyedServices("mainDb")] MilvusClient mainDbClient,
    [FromKeyedServices("loggingDb")] MilvusClient loggingDbClient)
{
    // Use clients...
}

Anahtarlı hizmetler hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme: Anahtarlı hizmetler.

Konfigürasyon

.NET Aspire Milvus istemci tümleştirmesi, projenizin gereksinimlerine ve kurallarına göre Milvus bağlantısını yapılandırmak için birden çok seçenek sağlar.

Bahşiş

Varsayılan kullanım root ve varsayılan parola Milvus. kapsayıcısında farklı bir parola yapılandırmak için kaynağı için kimlik bilgilerini işleme ve diğer parametreleri geçirme konularına bakın . .NET .NET Aspire çözümünüzdeki istemci uygulamalarını aynı parola veya diğer ayarlarla kullanmak için aşağıdaki teknikleri kullanın.

Bağlantı dizesi kullanma

ConnectionStrings yapılandırma bölümünden bir bağlantı dizesi kullanırken, builder.AddMilvusClient()çağırırken bağlantı dizesinin adını sağlayabilirsiniz:

builder.AddMilvusClient("milvus");

Ardından bağlantı dizesi ConnectionStrings yapılandırma bölümünden alınır:

{
  "ConnectionStrings": {
    "milvus": "Endpoint=http://localhost:19530/;Key=root:Non-default-P@ssw0rd"
  }
}

varsayılan olarak MilvusClient gRPC API uç noktasını kullanır.

Yapılandırma sağlayıcılarını kullanma

.NET Aspire Milvus istemci tümleştirmesi Microsoft.Extensions.Configuration desteklemektedir. Yapılandırmadan MilvusClientSettingsAspire:Milvus:Client anahtarını kullanarak yükler. Aşağıdaki kod parçacığı, bazı seçenekleri yapılandıran bir appsettings.json örneğidir:

{
  "Aspire": {
    "Milvus": {
      "Client": {
        "Endpoint": "http://localhost:19530/",
        "Database": "milvusdb",
        "Key": "root:Non-default-P@ssw0rd",
        "DisableHealthChecks": false
      }
    }
  }
}

Tam Milvus istemci tümleştirme JSON şeması için bkz. Aspire.Milvus.Client/ConfigurationSchema.json.

Satır içi temsilcileri kullanın

Ayrıca Action<MilvusSettings> configureSettings temsilcisini geçirerek satır içi seçeneklerin bazılarını veya tümünü ayarlayabilirsiniz; örneğin koddan API anahtarını ayarlayabilirsiniz:

builder.AddMilvusClient(
    "milvus",
    static settings => settings.Key = "root:Non-default-P@ssw0rd");

Client entegrasyon sağlık denetimleri

Varsayılan olarak, .NET.NET Aspire tümleştirmeleri, tüm hizmetler için sağlık kontrollerini etkinleştirir. Daha fazla bilgi için bkz. .NET.NET Aspire tümleştirmelere genel bakış.

.NET Aspire Milvus veritabanı tümleştirmesi:

  • MilvusClientSettings.DisableHealthChecks falseolduğunda sistem durumu denetimini ekler ve Milvus sunucusuna bağlanmaya çalışır.
  • HealthAsync gerçekleştirmek için yapılandırılmış istemciyi kullanır. Sonuç sağlıklı ise, sağlık kontrolü sağlıklı kabul edilir, aksi halde sağlıksız kabul edilir. Benzer şekilde, bir istisna varsa, sağlık kontrolü, hata sağlık kontrolü hatası nedeniyle yayıldığından sağlıksız olarak kabul edilir.

Gözlemlenebilirlik ve telemetri

.NET .NET Aspire tümleştirmeleri, bazen gözlemlenebilirliğin temel taşları olarak bilinen Günlük Kaydı, İzleme ve Ölçümler yapılandırmalarını otomatik olarak ayarlar. Tümleştirme gözlemlenebilirliği ve telemetri hakkında daha fazla bilgi için bkz. tümleştirmelere genel bakış. Yedekleme hizmetine bağlı olarak, bazı tümleştirmeler bu özelliklerden yalnızca bazılarını destekleyemeyebilir. Örneğin, bazı entegrasyonlar kayıt ve izlemeyi destekler, ancak metrikleri desteklemez. Telemetri özellikleri, Yapılandırma bölümünde sunulan teknikler kullanılarak da devre dışı bırakılabilir.

Kayıt tutma

.NET Aspire Milvus veritabanı tümleştirmesi standart .NET günlüğü kullanır ve aşağıdaki kategorideki günlük girdilerini görürsünüz:

  • Milvus.Client

İzleme

.NET Aspire Milvus veritabanı tümleştirmesi, şu anda Milvus.Client kitaplığı tarafından desteklenmediği için izleme etkinliklerini yayınlamıyor.

Ölçüm

.NET Aspire Milvus veritabanı entegrasyonu şu anda Milvus.Client kitaplığı tarafından desteklenmediği için ölçümleri yayınlamıyor.

Ayrıca bkz.