SQLite
Eine SQLite ist in nzLua eingebettet, um eine Möglichkeit zu bieten, Daten außerhalb einer Netezza zu persistieren. Sie kann aber auch zum Speichern von Nachschlagetabellen oder zusätzlichen Daten verwendet werden, die nicht direkt von einem UDX an die Netezza zurückgegeben werden können (z. B. wenn ein UDTF mehrere unterschiedliche Ergebnissätze anstelle eines einzigen Ergebnissatzes zurückgeben muss).
Die maximale Menge an Daten, die in einer SQLite gespeichert werden kann, ist auf 1GB begrenzt. Eine große SQLite kann die Gesamtleistung der Netezza aufgrund von zufälligen E/A-Anforderungen für Indexsuchen und Indexpflege bei Einfügungen erheblich beeinträchtigen. Die SQLite wird nach Möglichkeit im Arbeitsspeicher zwischengespeichert, um übermäßige zufällige E/A zu vermeiden. Mit zunehmender Größe der Datenbank steht jedoch möglicherweise nicht mehr genügend Speicherplatz zur Verfügung. Dies führt zu vielen kleinen E/A-Anforderungen, die dann die sequentiellen Lesevorgänge der Netezza beeinträchtigen.
Für jede Datenscheibe existiert eine eigene SQLite. Zwei gleichzeitig laufende UDXs auf demselben Daten-Slice greifen auf dieselbe SQLite zu. Es ist nicht möglich, dass ein UDX Daten über Daten-Slices hinweg mit SQLite austauscht. Die SQLite unterstützt keine Sperrung auf Zeilenebene. Jede Einfüge-, Aktualisierungs- oder Löschanweisung sperrt die gesamte SQLite für die Dauer einer Transaktion. SQLite arbeitet standardmäßig im Autocommit-Modus, in dem jede DML-Anweisung sofort übertragen wird.
Eine ausführliche Dokumentation zu SQLite, einschließlich der von SQLite unterstützten SQL-Syntax, finden Sie unter http://www.sqlite.org Einige Beispiele für die Verwendung von SQLite innerhalb eines nzLua UDX finden Sie im Verzeichnis ' /nz/extensions/nz/nzlua/examples/SQLite.