- Mediante SQL
- Mediante la UI y su propio código (beta pública)
Funciones definidas por el usuario en SQL
CREATE FUNCTION a partir de una expresión lambda.
En este ejemplo, crearemos una función definida por el usuario ejecutable sencilla, isBusinessHours.
La función comprobará si un timestamp determinado está dentro del horario laboral habitual y devolverá true si es así; de lo contrario, false.
- Inicie sesión en Cloud Console y abra la consola SQL
- Escriba la siguiente consulta SQL para crear la función
isBusinessHours:
- Ejecute lo siguiente para probar la UDF que acaba de crear:
- Puede usar el comando
DROP FUNCTIONpara eliminar la UDF que acaba de crear:
- La configuración a nivel de sesión (establecida mediante la instrucción
SET) no se propaga al contexto de ejecución de las UDF - Las UDF no heredan la configuración del perfil de usuario
- La configuración a nivel de consulta no se aplica durante la ejecución de las UDF
Funciones definidas por el usuario creadas desde la UI
isBusinessHours, que comprueba si una marca temporal determinada cae dentro del horario laboral habitual.
Anteriormente la creamos mediante SQL, pero esta vez la crearemos con Python y la configuraremos desde la UI.
Crear el archivo de Python
Crea un nuevo archivomain.py localmente:requirements.txt que liste esas dependencias. Por ejemplo:ClickHouse Cloud espera encontrar
main.py en el archivo zip que cargarás a través de la UI en el siguiente paso.
Si le das otro nombre al archivo, se producirá un error.Empaquetar dependencias y archivos locales
Para incluir los paquetes de dependencias y cualquier archivo local adicional (como archivos wheel, archivos de configuración o archivos de datos), colóquelos en el mismo directorio quemain.py y requirements.txt. Al crear el archivo ZIP, incluya todos los archivos:os.path.dirname(os.path.abspath(__file__)). Esto devuelve la ruta absoluta del directorio donde se encuentra tu main.py dentro del archivo ZIP, lo que te permite acceder a otros archivos incluidos:- Acceder a los archivos de configuración incluidos con tu UDF
- Cargar paquetes wheel para dependencias personalizadas
- Incluir scripts adicionales o archivos de datos
Crear una UDF desde la UI
- En la página principal de Cloud Console, haz clic en el nombre de tu organización en el menú de la esquina inferior izquierda.
- Selecciona Funciones definidas por el usuario en el menú.
- En la página de funciones definidas por el usuario, haz clic en Configurar una UDF. Se abrirá un panel de configuración a la derecha de la pantalla.
- Introduce un nombre para la función. Para este ejemplo, usa
isBusinessHours. - Selecciona un tipo de función: Executable pool o Executable:
- Executable pool: Se mantiene un grupo de procesos persistentes y, para las lecturas, se toma un proceso del grupo.
- Executable: El script se ejecuta en cada consulta.
- Para este ejemplo, usa la configuración predeterminada. Para ver la lista completa de parámetros de configuración, consulta Funciones ejecutables definidas por el usuario.
- Haz clic en Buscar archivo para cargar el archivo
.zipque creaste al inicio de este tutorial. - Añade un argumento nuevo. Para este ejemplo, añade un argumento
timestampde tipoDateTime. - Selecciona un tipo de retorno. Para este ejemplo, selecciona
Bool. - Haz clic en Crear UDF. Un cuadro de diálogo mostrará el estado actual de la compilación.
- Si surge algún problema, el estado cambia a error.
- En caso contrario, el estado pasa de building a provisioning. Tu servicio debe estar activo para completar el aprovisionamiento. Si tu servicio está inactivo, haz clic en Activar servicio en el panel Detalles de la UDF junto al nombre del servicio.
- Cuando se complete, el estado cambia a deployed.
Prueba tu UDF
- vuelve a la página de inicio de la SQL Console haciendo clic en Settings - volver a la vista de tu servicio en la esquina superior izquierda de la página
- haz clic en SQL Console en el menú de la izquierda
- escribe la siguiente consulta:
Crear una nueva versión
- En la página principal de Cloud Console, haz clic en el nombre de tu organización en el menú de la esquina inferior izquierda.
- Selecciona Funciones definidas por el usuario en el menú.
- En Acciones, selecciona los tres puntos de la UDF
isBusinessHoursy haz clic en Crear nueva versión - Sube un archivo ZIP con el código modificado o cambia la configuración y, a continuación, haz clic en Crear nueva versión