Mindsdb handlers
¿Qué son los Handlers?
En el corazón de la filosofía de MindsDB está la creencia de que las percepciones predictivas se aprovechan mejor cuando se producen lo más cerca posible de la capa de datos. Usualmente, estadata layer es una base de datos compatible con SQL, pero también podría ser una base de datos no SQL, un flujo de datos o cualquier otra herramienta que interactúe con datos almacenados en otro lugar.
La descripción anterior se ajusta a un enorme conjunto de herramientas utilizadas en toda la industria del software. La complejidad aumenta aún más al introducir el Machine Learning en la ecuación, ya que el conjunto de herramientas populares de ML es igualmente enorme. Nuestro objetivo es soportar la mayoría de las pilas tecnológicas, requiriendo un procedimiento de integración simple para que cualquiera pueda contribuir fácilmente con el necesarioglue para habilitar cualquier sistema predictivo para su uso dentro de las capas de datos.
Esto motiva el concepto dehandlers, que es una abstracción para los dos tipos de entidades mencionadas anteriormente:data layers yML frameworks. Los handlers están destinados a imponer un conjunto común y suficiente de comportamientos que todas las entidades compatibles con MindsDB deberían soportar. Al crear un handler, el sistema objetivo se integra efectivamente en el ecosistema más amplio de MindsDB.
Tipos de Handlers
Data Handlers
Los data handlers actúan como un puente a cualquier base de datos. Utilizas los data handlers para conectar fuentes de datos, incluyendo bases de datos y aplicaciones, usandothe CREATE DATABASE command. Así que puedes acceder a datos de cualquier base de datos que tenga su handler implementado dentro de MindsDB.
¡Adelante e implementa un handler para la base de datos de tu elección!Hereencontrarás instrucciones sobre cómo implementar un manejador de datos.
Manejadores de Aprendizaje Automático (ML)
Los manejadores de ML actúan como un puente a cualquier marco de ML. Utilizas los manejadores de ML para crear motores de ML usandoel comando CREATE ML_ENGINE. Así puedes exponer modelos de ML de cualquier motor de ML soportado como una tabla de IA.
¡Adelante e implementa un manejador para la biblioteca o marco de ML de tu elección!Aquí encontrarás instrucciones sobre cómo implementar un manejador de ML.
Manejadores en el Repositorio de MindsDB
El código fuente de las integraciones se encuentra en el repositorio principal de MindsDB bajo el directorio/integrations.
Estructura de un Manejador
En términos técnicos, un manejador es un paquete de Python autónomo que tiene todo lo necesario para que MindsDB interactúe con él. Incluye aspectos como dependencias, pruebas unitarias y lógica de integración continua. Depende del autor determinar la naturaleza del paquete, por ejemplo, código cerrado o abierto, control de versiones y más. Aunque, alentamos a abrir solicitudes de extracción para expandir el conjunto predeterminado de herramientas soportadas.
El punto de entrada para un manejador de datos es una definición de clase que debe heredar directamente de la clasemindsdb.integrations.libs.base.DatabaseHandler y así indirectamente de la clasemindsdb.integrations.libs.base.BaseHandler, que define todos los métodos que deben ser sobrescritos para lograr una implementación funcional.
Y el punto de entrada para un manejador de ML es una definición de clase que debe heredar de la clasemindsdb.integrations.libs.base.BaseMLEngine, que define todos los métodos que deben ser sobrescritos para lograr una implementación funcional.
Todos los demás detalles de la estructura del manejador no están impuestos, por lo que el autor puede decidir sobre su diseño.
Cosas para Recordar
Aquí hay algunos puntos a tener en cuenta al implementar un manejador.
Los Manejadores Heredan de Clases Base
Hereda de la claseDatabaseHandler
al agregar un nuevo manejador de datos. Para más información, visita nuestrapágina de documentación aquí.
Hereda de la claseBaseMLEngine
al agregar un nuevo manejador de ML. Para más información, visita nuestrapágina de documentación aquí.
Analizando SQL
Siempre que quieras analizar una cadena que contiene SQL, recomendamos encarecidamente usar el paquetemindsdb_sql
. Proporciona un analizador que soporta completamente el dialecto SQL de MindsDB y parcialmente el dialecto SQL estándar. También hay una funciónrender para mapear otros dialectos a los ya soportados.
Formateando la Salida
En el caso de los manejadores de datos, cuando se trata de construir la respuesta de los métodos públicos, la salida debe ser envuelta por la clasemindsdb.integrations.libs.response.HandlerResponse omindsdb.integrations.libs.response.HandlerStatusResponse. Estas clases son utilizadas por el ejecutor de MindsDB para orquestar y coordinar múltiples instancias de manejadores en paralelo.
Y en el caso de los manejadores de ML, el envolvimiento de la salida se realiza automáticamente por un envoltorio intermedio, la claseBaseMLEngineExec
, por lo que el contribuyente no tendría que preocuparse por ello.
Próximos Pasos
A continuación se encuentran los enlaces para ayudarte a explorar más.