Módulo SQLite
Una base de datos SQLite está incrustada dentro de nzLua para proporcionar una forma de persistir los datos fuera de una transacción Netezza. El caso de uso principal de esta función es el registro de depuración, pero también se puede utilizar para almacenar tablas de consulta o datos adicionales que no se pueden devolver directamente a la base de datos Netezza desde una UDX (por ejemplo, cuando una UDTF necesita devolver varios conjuntos de resultados distintos en lugar de un único conjunto de resultados).
La cantidad máxima de datos que se pueden almacenar en una base de datos SQLite está limitada a 1GB. Una base de datos SQLite de gran tamaño podría afectar sustancialmente al rendimiento general de la base de datos Netezza debido a las solicitudes de E/S aleatorias para las búsquedas de índices y el mantenimiento de índices durante las inserciones. La base de datos SQLite se almacenará en memoria caché siempre que sea posible para evitar una excesiva E/S aleatoria. Sin embargo, a medida que la base de datos aumenta de tamaño, es posible que no se disponga de memoria. Esto da lugar a muchas pequeñas peticiones de E/S, que luego interfieren con las lecturas secuenciales de la base de datos Netezza.
Existe una única base de datos SQLite para cada porción de datos. Dos UDX que se ejecuten simultáneamente en la misma porción de datos accederán a la misma base de datos SQLite. No es posible que una UDX comparta datos entre secciones de datos utilizando SQLite. La base de datos SQLite no admite el bloqueo a nivel de fila. Cualquier sentencia de inserción, actualización o borrado bloquea toda la base de datos SQLite mientras dura la transacción. Por defecto, SQLite funciona en modo autocommit, en el que cada sentencia DML se consigna inmediatamente.
Encontrará documentación detallada sobre SQLite, incluida la sintaxis SQL que admite, en http://www.sqlite.org Algunos ejemplos de uso de SQLite desde dentro de una UDX nzLua se pueden encontrar en el directorio ' /nz/extensions/nz/nzlua/examples/SQLite.