Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Registro de errores y advertencias en las UDF de Python - Amazon Redshift

Registro de errores y advertencias en las UDF de Python

Puede usar el módulo de registro de Python para crear mensajes de error y advertencia definidos por el usuario en sus User-Defined Scalar Function (UDF, Función escalar definida por el usuario). Después de la ejecución de una consulta, puede consultar la vista de sistema SVL_UDF_LOG para recuperar mensajes registrados.

nota

El registro de UDF consume recursos del clúster y podría afectar el rendimiento del sistema. Le recomendamos que implemente el registro solo con fines de desarrollo y resolución de problemas.

Durante la ejecución de consultas, el gestor de registros escribe mensajes a la vista de sistema SVL_UDF_LOG, junto con la función, nombre, nodo y sector correspondientes. El gestor de registros escribe una fila en SVL_UDF_LOG por mensaje, por sector. Los mensajes se truncan en 4 096 bytes. El registro de UDF se limita a 500 filas por sector. Cuando el registro se llena, el gestor descarta los mensajes más viejos y agrega un mensaje de advertencia a SVL_UDF_LOG.

nota

El gestor de registros de las UDF de Amazon Redshift introduce los escapes de las líneas nuevas (\n), las barras verticales (|) y las barras inversas (\) con una barra inversa (\).

De manera predeterminada, el nivel registro de la UDF se establece en WARNING. Los mensajes con un nivel registro WARNING, ERROR y CRITICAL se registran. Los mensajes de menor gravedad, INFO, DEBUG y NOTSET, se ignoran. Para establecer el nivel registro de la UDF, use el método de registro en Python. Por ejemplo, lo siguiente establece el nivel registro en INFO.

logger.setLevel(logging.INFO)

Para obtener más información acerca del uso del módulo de registro en Python, consulte Logging facility for Python en la documentación de Python.

En el siguiente ejemplo, se crea una función denominada f_pyerror que importa el módulo de registro en Python, crea una instancia de registro y registra un error.

CREATE OR REPLACE FUNCTION f_pyerror() RETURNS INTEGER VOLATILE AS $$ import logging logger = logging.getLogger() logger.setLevel(logging.INFO) logger.info('Your info message here') return 0 $$ language plpythonu;

En el siguiente ejemplo, se consulta el SVL_UDF_LOG para ver el mensaje registrado en el ejemplo anterior.

select funcname, node, slice, trim(message) as message from svl_udf_log; funcname | query | node | slice | message ------------+-------+------+-------+------------------ f_pyerror | 12345 | 1| 1 | Your info message here
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.