Módulo SQLite
Um banco de dados SQLite é incorporado ao nzLua para fornecer uma maneira de manter os dados fora de uma transação Netezza. O principal caso de uso desse recurso é o registro de depuração, mas ele também pode ser usado para armazenar tabelas de pesquisa ou dados adicionais que não podem ser retornados diretamente ao banco de dados Netezza a partir de um UDX (por exemplo, quando um UDTF precisa retornar vários conjuntos de resultados distintos em vez de um único conjunto de resultados).
A quantidade máxima de dados que pode ser armazenada em um banco de dados SQLite é limitada a 1GB. Um grande banco de dados SQLite pode afetar substancialmente o desempenho geral do banco de dados Netezza devido a solicitações de E/S aleatórias para pesquisas de índices e manutenção de índices durante as inserções. O banco de dados SQLite será armazenado em cache na memória sempre que possível para evitar E/S aleatória excessiva. No entanto, à medida que o banco de dados aumenta de tamanho, a memória pode não estar disponível. Isso resulta em muitas solicitações de E/S pequenas, que interferem nas leituras sequenciais do banco de dados Netezza.
Existe um banco de dados SQLite exclusivo para cada fatia de dados. Dois UDXs em execução simultânea na mesma fatia de dados acessarão o mesmo banco de dados SQLite. Não é possível que um UDX compartilhe dados entre fatias de dados usando o SQLite. O banco de dados SQLite não é compatível com o bloqueio em nível de linha. Qualquer instrução de inserção, atualização ou exclusão bloqueia todo o banco de dados SQLite durante a duração de uma transação. Por padrão, SQLite opera no modo autocommit, em que cada instrução DML é confirmada imediatamente.
A documentação detalhada sobre o SQLite, incluindo a sintaxe SQL suportada pelo SQLite, pode ser encontrada em http://www.sqlite.org Alguns exemplos de uso do SQLite em um UDX nzLua podem ser encontrados no diretório ' /nz/extensions/nz/nzlua/examples/SQLite.