Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 AspireMilvus databasintegrering. Med AspireMilvus databasintegrering kan du ansluta till befintliga Milvus databaser eller skapa nya instanser med milvusdb/milvus containeravbildningen.
Värdtjänstintegration
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. Gästfrihet.Milvus NuGet-paket i AppHost-projektet .
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 AppHost-projekt anropar du AddMilvus för att lägga till och returnera en Milvus resursbyggare. 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
En Milvus container kan ta tid att starta, så det rekommenderas 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 Aspire lägger till en containeravbildning i AppHost, som du ser i föregående exempel med avbildningen milvusdb/milvus, skapas en ny instans av Milvus på din lokala dator. 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 usernameroot 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 bind mounts har begränsad funktionalitet jämfört med volymer, som erbjuder 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.
Databindningsfästen förlitar sig på värddatorns filsystemet för att bibehålla Milvus data mellan omstarter av containrar. Data bind-mounten är monterad på sökvägen C:\Milvus\Data i Windows (eller /Milvus/Data på Unix) på värddatorn i Milvus-containern. För mer information om data-bindmonteringar finns i Docker dokumentationen: Bindningsmonteringar.
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 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 Aspire lösningen visas en Attu-container i lösningens resurser. Välj resursens slutpunkt för att öppna användargränssnittet och börja hantera databaser.
Client integrering (förhandsversion)
Kom igång med 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. Klientens integration Milvus registrerar en instans av Milvus.Client.MilvusClient som du kan använda för att interagera med Milvus databaser.
dotnet add package Aspire.Milvus.Client
Lägga till en Milvus-klient
I filen Program.cs för ditt klientbaserade projekt, anropar du AddMilvusClient-tilläggsmetoden på valfri IHostApplicationBuilder för att registrera en MilvusClient för användning via beroendeinjektionscontainern. 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 databasresursen Milvus i AppHost-projektet. 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 beroendeinjektion. 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
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 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 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
Integreringar aktiverar som standard Aspirehälsokontroller för alla tjänster. Mer information finns i Aspire översikten över integreringar.
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
Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i Aspire översikten över 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
Aspire Milvus-databasintegrering använder standardloggning .NET och du ser loggposter från följande kategori:
Milvus.Client
Spårning
Aspire
Milvus databasintegrering genererar för närvarande inte spårningsaktiviteter eftersom de inte stöds av Milvus.Client-biblioteket.
Mått
Aspire
Milvus-databasintegrering genererar för närvarande inte mått eftersom de inte stöds av Milvus.Client-biblioteket.