Modulo SQLite

Un database SQLite è incorporato in nzLua per fornire un modo di persistere i dati al di fuori di una transazione Netezza. Il caso d'uso principale di questa funzione è la registrazione di debug, ma può anche essere utilizzata per memorizzare tabelle di ricerca o dati aggiuntivi che non possono essere restituiti direttamente al database Netezza da un UDX (ad esempio, quando un UDTF deve restituire più set di risultati distinti invece di un singolo set di risultati).

La funzione SPUPad offre generalmente prestazioni migliori a questo scopo, ma tutti i dati nello SPUPad scompaiono alla fine di ogni transazione, mentre i dati nel database SQLite rimangono fino a quando il database non viene riavviato o una s-blade fallisce.

La quantità massima di dati che può essere memorizzata in un database SQLite è limitata a 1GB. Un database SQLite di grandi dimensioni potrebbe avere un impatto sostanziale sulle prestazioni complessive del database Netezza a causa delle richieste di I/O casuali per la ricerca degli indici e la manutenzione degli indici durante gli inserimenti. Il database SQLite sarà memorizzato nella cache, ove possibile, per evitare un eccessivo I/O casuale. Tuttavia, quando le dimensioni del database crescono, la memoria potrebbe non essere disponibile. Ciò comporta molte piccole richieste di I/O, che interferiscono con le letture sequenziali del database Netezza.

Per ogni fetta di dati esiste un unico database SQLite. Due UDX in esecuzione simultanea sulla stessa slice di dati accedono allo stesso database SQLite. Non è possibile per un UDX condividere i dati tra le fette di dati utilizzando SQLite. Il database SQLite non supporta il blocco a livello di riga. Qualsiasi istruzione di inserimento, aggiornamento o cancellazione blocca l'intero database SQLite per la durata della transazione. Per impostazione predefinita, SQLite opera in modalità di autocommit, in cui ogni istruzione DML viene commutata immediatamente.

Una documentazione dettagliata su SQLite, compresa la sintassi SQL supportata da SQLite, è disponibile all'indirizzo http://www.sqlite.org Alcuni esempi di utilizzo di SQLite all'interno di un UDX nzLua si trovano nella directory '/nz/extensions/nz/nzlua/examples/SQLite.