.NET Aspire Milvus databasintegrering
omfattar:värdintegration och
Client-integration
Milvus är ett vektordatabassystem med öppen källkod som effektivt lagrar, indexerar och söker efter storskaliga vektordata. Det används ofta i maskininlärning, artificiell intelligens och datavetenskapsprogram.
Vektordata kodar information som matematiska vektorer, som är matriser med tal eller koordinater. Maskininlärnings- och AI-system använder ofta vektorer för att representera ostrukturerade objekt som bilder, text, ljud eller video. Varje dimension i vektorn beskriver en specifik egenskap hos objektet. Genom att jämföra dem kan system klassificera, söka efter och identifiera kluster av objekt.
I den här artikeln får du lära dig hur du använder .NET AspireMilvus databasintegrering. Med .NET AspireMilvus databasintegrering kan du ansluta till befintliga Milvus databaser eller skapa nya instanser med milvusdb/milvus
containeravbildningen.
Värdintegrering
Den Milvus databas som är värd för integrering modellerar servern som den MilvusServerResource typen och databasen som MilvusDatabaseResource typ. Om du vill komma åt dessa typer och API:er lägger du till 📦Aspire.Hosting.Milvus NuGet-paketet i appvärdprojektet.
dotnet add package Aspire.Hosting.Milvus
Mer information finns i dotnet add package eller Hantera paketeringsberoenden i .NET applikationer.
Lägga till Milvus server- och databasresurser
I ditt appvärdsprojekt anropar du AddMilvus för att lägga till och returnera en resurskonstruktör för Milvus. Länka ett anrop från den returnerade resursbyggaren till AddDatabaseför att addera en Milvus databasresurs.
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...
Notera
Den Milvus containern kan vara långsam att starta, så det är bäst att använda en beständig livslängd för att undvika onödiga omstarter. För mer information, se livstid för containerresursen.
När .NET.NET Aspire lägger till en containeravbildning i appvärden, som visas i föregående exempel med milvusdb/milvus
-avbildningen, skapar den en ny Milvus-instans på den lokala datorn. En referens till din Milvus resursbyggare (variabeln milvus
) används för att lägga till en databas. Databasen heter milvusdb
och läggs sedan till i ExampleProject
.
Metoden WithReference konfigurerar en anslutning i ExampleProject
med namnet milvusdb
.
Tips
Om du hellre vill ansluta till en befintlig Milvus server anropar du AddConnectionString i stället. Mer information finns i Referera till befintliga resurser.
Hantera autentiseringsuppgifter och skicka andra parametrar för den Milvus resursen
Resursen Milvus innehåller standarduppgifter med användarnamnet username
root
och lösenordet Milvus
.
Milvus stöder konfigurationsbaserade standardlösenord med hjälp av miljövariabeln COMMON_SECURITY_DEFAULTROOTPASSWORD
. Om du vill ändra standardlösenordet i containern skickar du en apiKey
-parameter när du anropar AddMilvus
värd-API:
var apiKey = builder.AddParameter("apiKey", secret: true);
var milvus = builder.AddMilvus("milvus", apiKey);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(milvus);
Föregående kod hämtar en parameter som skickas till AddMilvus
-API:et och tilldelar parametern internt till COMMON_SECURITY_DEFAULTROOTPASSWORD
miljövariabeln för Milvus-containern. Parametern apiKey
anges vanligtvis som en användarhemlighet:
{
"Parameters": {
"apiKey": "Non-default-P@ssw0rd"
}
}
Mer information finns i externa parametrar.
Lägga till en Milvus resurs med en datavolym
Om du vill lägga till en datavolym i Milvus-tjänstresursen anropar du metoden WithDataVolume på den Milvus resursen:
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...
Datavolymen används för att bevara Milvus data utanför containerns livscykel. Datavolymen monteras på /var/lib/milvus
-sökvägen i SQL Server-containern och när en name
-parameter inte anges genereras namnet slumpmässigt. Mer information om datavolymer och detaljer om varför de föredras framför bindningsmonteringar, finns i Docker dokument: Volymer.
Lägg till en Milvus-resurs med en databindning
För att lägga till en databindning till resursen Milvus, anropa metoden WithDataBindMount:
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...
Viktig
Data bindningsmonteringar har begränsade funktioner jämfört med volymer, vilket ger bättre prestanda, portabilitet och säkerhet, vilket gör dem mer lämpliga för produktionsmiljöer. Bindningsmonteringar tillåter dock direkt åtkomst och ändring av filer i värdsystemet, perfekt för utveckling och testning där realtidsändringar behövs.
Databindningsmonteringar förlitar sig på värddatorns filsystem för att bevara Milvus data mellan omstarter av containrar. Data bind-monteringen är monterad på sökvägen C:\Milvus\Data
i Windows (eller /Milvus/Data
på Unix) på värddatorn i Milvus-containern. Mer information om databindningsmonteringar finns i Docker dokument: Bind monteringar.
Skapa en attu-resurs
Attu är ett grafiskt användargränssnitt (GUI) och hanteringsverktyg som är utformat för att interagera med Milvus och dess databaser. Den innehåller omfattande visualiseringsfunktioner som kan hjälpa dig att undersöka och förstå dina vektordata.
Om du vill använda Attu för att hantera Milvus i din .NET Aspire lösning anropar du WithAttu-tilläggsmetoden för din Milvus resurs. Metoden skapar en container från zilliz/attu
avbildningen:
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...
När du felsöker lösningen .NET.NET Aspire, visas en Attu container bland resurserna i lösningen. Välj resursens slutpunkt för att öppna användargränssnittet och börja hantera databaser.
Client integrering
Kom igång med .NET AspireMilvus-klientintegrering genom att installera 📦Aspire.Milvus.Client NuGet-paket i det klientkrävande projektet, d.v.s. projektet för programmet som använder Milvus-databasklienten. Klientintegreringen Milvus registrerar en instans av Milvus.Client. MilvusClient som du kan använda för att interagera med databaser Milvus.
dotnet add package Aspire.Milvus.Client
Lägga till en Milvus-klient
I den Program.cs filen för ditt klientkrävande projekt anropar du AddMilvusClient-tilläggsmetoden på alla IHostApplicationBuilder för att registrera en MilvusClient
för användning via containern för beroendeinmatning. Metoden tar en parameter för anslutningsnamn.
builder.AddMilvusClient("milvusdb");
Tips
Parametern connectionName
måste matcha namnet som används när du lägger till Milvus-databasresursen i appvärdprojektet. Med andra ord, när du anropar AddDatabase
och anger ett namn på milvusdb
ska samma namn användas när du anropar AddMilvusClient
. För mer information, se Lägg till en Milvus serverresurs och databasresurs.
Du kan sedan hämta MilvusClient
-instansen med hjälp av beroendeinjektion. Om du till exempel vill hämta anslutningen från en exempeltjänst:
public class ExampleService(MilvusClient client)
{
// Use the Milvus Client...
}
Mer information om beroendeinmatning finns i .NET beroendeinmatning.
Lägga till en nyckelad Milvus-klient
Det kan finnas situationer där du vill registrera flera MilvusClient
instanser med olika anslutningsnamn. Om du vill registrera nyckelade Milvus klienter anropar du metoden AddKeyedMilvusClient:
builder.AddKeyedMilvusClient(name: "mainDb");
builder.AddKeyedMilvusClient(name: "loggingDb");
Viktig
När du använder nyckelade tjänster förväntas din Milvus resurs ha konfigurerat två namngivna databaser, en för mainDb
och en för loggingDb
.
Sedan kan du hämta MilvusClient
instanser med hjälp av beroendeinmatning. Om du till exempel vill hämta anslutningen från en exempeltjänst:
public class ExampleService(
[FromKeyedServices("mainDb")] MilvusClient mainDbClient,
[FromKeyedServices("loggingDb")] MilvusClient loggingDbClient)
{
// Use clients...
}
Mer information om nyckelade tjänster finns i .NET beroendeinjektion: Nyckelade tjänster.
Konfiguration
.NET Aspire Milvus-klientintegrering innehåller flera alternativ för att konfigurera anslutningen till Milvus baserat på kraven och konventionerna i ditt projekt.
Tips
Standardanvändningen är root
och standardlösenordet är Milvus
. Information om hur du konfigurerar ett annat lösenord i containern Milvus finns i Hantera autentiseringsuppgifter och skicka andra parametrar för Milvus resursen. Använd följande tekniker för att konfigurera användning av klientappar i din .NET.NET Aspire lösning med samma lösenord eller andra inställningar.
Använda en anslutningssträng
När du använder en anslutningssträng från ConnectionStrings
konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar builder.AddMilvusClient()
:
builder.AddMilvusClient("milvus");
Och sedan hämtas anslutningssträngen från ConnectionStrings
-konfigurationsavsnittet:
{
"ConnectionStrings": {
"milvus": "Endpoint=http://localhost:19530/;Key=root:Non-default-P@ssw0rd"
}
}
Som standard använder MilvusClient
gRPC API-slutpunkten.
Använda konfigurationsprovidrar
Klientintegration .NET AspireMilvus stöder Microsoft.Extensions.Configuration. Den läser in MilvusClientSettings från konfigurationen med hjälp av Aspire:Milvus:Client
-nyckeln. Följande kodfragment är ett exempel på en appsettings.json som konfigurerar några av alternativen:
{
"Aspire": {
"Milvus": {
"Client": {
"Endpoint": "http://localhost:19530/",
"Database": "milvusdb",
"Key": "root:Non-default-P@ssw0rd",
"DisableHealthChecks": false
}
}
}
}
Det fullständiga Milvus klientintegreringsschemat JSON finns i Aspire.Milvus.Client/ConfigurationSchema.json.
Använd inline-delegater
Du kan också använda Action<MilvusSettings> configureSettings
-delegat för att konfigurera vissa eller alla alternativ direkt, till exempel för att ange API-nyckeln i koden:
builder.AddMilvusClient(
"milvus",
static settings => settings.Key = "root:Non-default-P@ssw0rd");
Client hälsokontroller för integrering
Som standard aktiverar .NET.NET Aspire integreringar hälsokontroller för alla tjänster. Mer information finns i översikten över .NET.NET Aspire integreringar.
.NET Aspire Milvus databasintegrering
- Lägger till hälsokontrollen när MilvusClientSettings.DisableHealthChecks är
false
, som försöker ansluta till Milvus-servern. - Använder den konfigurerade klienten för att utföra en
HealthAsync
. Om resultatet är hälsosamtanses hälsokontrollen vara hälsosam, annars är den ohälsosam. På samma sätt, om det finns ett undantag, anses hälsokontrollen vara ohälsosam och felet sprids genom hälsokontrollens misslyckande.
Observerbarhet och telemetri
.NET .NET Aspire integreringar ställer automatiskt in konfigurationer för loggning, spårning och metrik, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.
Skogsavverkning
.NET Aspire Milvus-databasintegrering använder standardloggning .NET och du ser loggposter från följande kategori:
Milvus.Client
Spårning
.NET Aspire
Milvus databasintegrering genererar för närvarande inte spårningsaktiviteter eftersom de inte stöds av Milvus.Client
-biblioteket.
Mått
.NET Aspire
Milvus-databasintegrering genererar för närvarande inte mått eftersom de inte stöds av Milvus.Client
-biblioteket.
Se även
.NET Aspire