🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Introducción a Milvus Python SDK y API

Introducción a Milvus Python SDK y API

  • Engineering
March 21, 2022
Xuan Yang

Cover image Imagen de portada

Por Xuan Yang

Fondo

La siguiente ilustración muestra la interacción entre los SDK y Milvus a través de gRPC. Imaginemos que Milvus es una caja negra. Los búferes de protocolo se utilizan para definir las interfaces del servidor y la estructura de la información que transportan. Por lo tanto, todas las operaciones en la caja negra Milvus están definidas por la API de Protocolo.

Interaction Interacción

API de protocolo de Milvus

La API de Protocolo Milvus consiste en milvus.proto, common.proto, y schema.proto, que son archivos de Buffers de Protocolo con el sufijo .proto. Para garantizar un funcionamiento correcto, los SDKs deben interactuar con Milvus con estos archivos Protocol Buffers.

milvus.proto

milvus.proto es el componente vital de la API de protocolo de Milvus porque define MilvusService, que a su vez define todas las interfaces RPC de Milvus.

El siguiente ejemplo de código muestra la interfaz CreatePartitionRequest. Tiene dos parámetros principales de tipo cadena collection_name y partition_name, en base a los cuales puede iniciar una petición de creación de partición.

CreatePartitionRequest CreatePartitionRequest

Comprueba un ejemplo de Protocolo en PyMilvus GitHub Repository en la línea 19.

Example Ejemplo

Puedes encontrar la definición de CreatePartitionRequest aquí.

Definition Definición

Los contribuidores que deseen desarrollar una característica de Milvus o un SDK en un lenguaje de programación diferente son bienvenidos para encontrar todas las interfaces que Milvus ofrece vía RPC.

común.proto

common.proto define los tipos comunes de información, incluyendo ErrorCode, y Status.

common.proto common.proto

schema.proto

schema.proto define el esquema en los parámetros. La siguiente muestra de código es un ejemplo de CollectionSchema.

schema.proto schema.proto

milvus.proto, common.proto, y schema.proto juntos constituyen la API de Milvus, representando todas las operaciones que pueden ser llamadas vía RPC.

Si escarba en el código fuente y observa detenidamente, descubrirá que cuando se llama a interfaces como create_index, en realidad se llama a múltiples interfaces RPC como describe_collection y describe_index. Muchas de las interfaces externas de Milvus son una combinación de múltiples interfaces RPC.

Habiendo entendido los comportamientos de RPC, puede desarrollar nuevas características para Milvus a través de la combinación. Usted es más que bienvenido a usar su imaginación y creatividad y contribuir a la comunidad Milvus.

PyMilvus 2.0

Mapeo objeto-relacional (ORM)

Para decirlo en pocas palabras, el mapeo objeto-relacional (ORM) se refiere a que cuando se opera sobre un objeto local, tales operaciones afectarán al objeto correspondiente en el servidor. La API estilo ORM de PyMilvus presenta las siguientes características:

  1. Opera directamente sobre los objetos.
  2. Aísla la lógica del servicio y los detalles de acceso a los datos.
  3. Oculta la complejidad de la implementación, y puede ejecutar los mismos scripts a través de diferentes instancias Milvus independientemente de sus enfoques de despliegue o implementación.

API de estilo ORM

Una de las esencias de la API de estilo ORM reside en el control de la conexión de Milvus. Por ejemplo, puede especificar alias para múltiples servidores Milvus, y conectarse o desconectarse de ellos simplemente con sus alias. Incluso puede eliminar la dirección del servidor local, y controlar ciertos objetos a través de una conexión específica precisamente.

Control Connection Conexión de control

Otra característica de la API de estilo ORM es que, tras la abstracción, todas las operaciones pueden realizarse directamente sobre los objetos, incluyendo la colección, la partición y el índice.

Puede abstraer un objeto de colección obteniendo uno existente o creando uno nuevo. También puede asignar una conexión Milvus a objetos específicos utilizando alias de conexión, de modo que pueda operar sobre estos objetos localmente.

Para crear un objeto partición, puede crearlo con su objeto colección padre, o puede hacerlo igual que cuando crea un objeto colección. Estos métodos también se pueden emplear en un objeto índice.

En el caso de que estos objetos partición o índice existan, puedes obtenerlos a través de su objeto colección padre.

Acerca de la serie Deep Dive

Con el anuncio oficial de la disponibilidad general de Milvus 2.0, orquestamos esta serie de blogs Milvus Deep Dive para proporcionar una interpretación en profundidad de la arquitectura y el código fuente de Milvus. Los temas tratados en esta serie de blogs incluyen

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Sigue Leyendo