Funciones definidas por el usuario put para que usted tome las riendas a la hora de consultar y analizar sus datos.

En el ecosistema Couchbase, las funciones definidas por el usuario (UDF) son reutilizables y parametrizables. Consultas SQL que le permiten modularizar las consultas y aumentar la reutilización del código, a la vez que le proporcionan un mayor control sobre la forma en que una consulta concreta interactúa con su lógica empresarial.

Dicho esto, me complace anunciar que la versión 7.0 de Couchbase Server admite ahora las funciones definidas por el usuario (UDF) en el módulo Servicio de análisis.

Consulte la entrada del blog de ayer para más información sobre las funciones definidas por el usuario en el lenguaje de consulta SQL.

Funciones definidas por el usuario 101

Dentro de Couchbase Analytics, las funciones definidas por el usuario tienen dos partes:

  1. La firma de la función: La firma consiste en el nombre de la función más su número de parámetros. Una función puede tener cero, uno o varios parámetros. Cada función pertenece a una universo de datos (o Scope en terminología 7.0) y debe tener una firma única dentro de ese dataverse. Esto significa que usted podría crear dos funciones dentro del mismo dataverse que tienen el mismo nombre pero tienen un número diferente de parámetros. Como la firma de la función es distinta (nombre + número de parámetros), está permitido.
  2. Función Cuerpo: El cuerpo de una función puede ser una expresión o una subconsulta y puede hacer referencia a funciones existentes. conjuntos de datos o a otras funciones dentro del mismo dataverse o en un dataverse diferente.

He aquí dos ejemplos que muestran la firma de la función - mi_dataverso.ObtenerPedidos(...) - y el cuerpo de la función (todo lo que hay entre las llaves):

Si el CREAR FUNCIÓN DE ANÁLISIS no proporciona un nombre de dataverse, entonces la función se crea dentro del dataverse activo. Si no se especifica un dataverse, la función se creará en el dataverse "Predeterminado".

Un dataverse puede proporcionarse a través de un USE <> en la consulta o mediante una sentencia contexto_de_consulta Parámetro de la API REST.

Antecedentes: Ámbitos y colecciones en Couchbase Analytics

Antes de mostrarte el ciclo de vida completo de una UDF de Couchbase Analytics, vamos a ponernos al día sobre un contexto importante.

El diagrama A representa un ejemplo de los datos que podría utilizar una empresa de viajes para gestionar las reservas aéreas y hoteleras.

An architecture diagram of how Couchbase Analytics parallel the Bucket, Scopes and Collections of the Data Service

Diagrama A

En esta arquitectura, tenemos un Bucket llamado viaje (similar a una base de datos relacional), que contiene un Ámbito llamado inventario (similar a un esquema en un RDBMS), y cuatro colecciones denominadas aerolínea, aeropuerto, hotel y ruta (similares a las tablas de un RDBMS). Para cada una de estas colecciones, tenemos cuatro colecciones analíticas correspondientes (también conocidas como conjuntos de datos) y las organizamos dentro de la colección viajes.inventario Ámbito (también conocido como dataverse).

Ejemplo de UDF con Couchbase Analytics

Para este ejemplo, supongamos que su equipo de análisis de datos necesita consultar con frecuencia qué aerolíneas de un país determinado vuelan más y cuáles son sus rangos percentiles.

A continuación se explica cómo las UDF ayudan a su equipo a completar estas consultas complejas.

Cómo gestionar sus UDF

Su primer paso es crear la función definida por el usuario en el Ámbito de Análisis (o dataverse) designado como viajes.inventario.

A continuación se muestra la sentencia del Lenguaje de Definición de Datos (DDL) para crear una UDF que haga su consulta más sucinta:

La UDF anterior toma el parámetro en_el_país como entrada para el nombre del país y lo utiliza como filtro para la consulta. A continuación, la consulta realiza un JOIN entre los campos aerolínea y ruta Colecciones y realiza agregaciones para cada línea aérea con el fin de:

  1. Contar el número de rutas aéreas
  2. Calcule el rango percentil de los recuentos de rutas utilizando la función RANGO_PORCENTAJE con la función EN cláusula.

(El EN recupera un conjunto específico de filas relativas a la fila actual y realiza una agregación sobre las filas id campo. Más información sobre las funciones de ventana en esta entrada del blog.)

Cómo evaluar sus UDF

A continuación, vamos a probar tu nueva UDF.

La siguiente consulta determina las tres principales compañías aéreas de un país determinado ("Estados Unidos" en este ejemplo).

El resultado de la evaluación de esta consulta muestra las tres compañías aéreas que vuelan con más rutas junto con sus clasificaciones percentiles:

Cómo eliminar sus UDF

Una vez que ya no necesite su UDF, puede eliminarla utilizando la siguiente sentencia DDL:

Fácil, ¿verdad?

Conclusión

Las funciones reutilizables definidas por el usuario son útiles para agilizar y modularizar tu código a la vez que proporcionan más flexibilidad a tu sistema. Espero que encuentres esta nueva funcionalidad UDF útil para tu trabajo con Couchbase Analytics.

Me encantaría conocer tus opiniones y comentarios a continuación sobre qué te parece la nueva función UDF y cómo la utilizas. O bien, inicie una conversación en el Foros de Couchbase. Espero sus noticias.

Prueba tus propias UDFs con Couchbase Analytics:
Pruebe Couchbase 7 hoy mismo

 

Autor

Publicado por Idris Motiwala

Idris es Director Principal de Producto, Analítica en Couchbase con más de 20 años de experiencia en diseño, desarrollo y ejecución de productos de software tanto en Fortune 500 como en startups liderando equipos en transformación digital, nube y analítica. Idris tiene una Maestría en Gestión de Tecnología y certificaciones en gestión de productos .

Dejar una respuesta