SQLite模块
nzLua中嵌入了一个SQLite数据库,提供了一种在Netezza事务之外持久保存数据的方法。 该功能的主要用途是调试日志,但也可用于存储查询表或无法从 UDX 直接返回Netezza数据库的其他数据(例如,当 UDTF 需要返回多个不同的结果集而不是单个结果集时)。
SQLite数据库可存储的最大数据量上限为1GB。 由于索引查找时的随机 I/O 请求和插入时的索引维护,大型SQLite数据库可能会严重影响Netezza数据库的整体性能。 SQLite数据库将尽可能缓存在内存中,以避免过多的随机 I/O。 不过,随着数据库规模的扩大,内存可能会不够用。 这会导致许多小型 I/O 请求,从而干扰Netezza数据库的顺序读取。
每个数据片都有一个唯一的SQLite数据库。 同一数据片上同时运行的两个 UDX 将访问同一个SQLite数据库。 UDX 无法使用SQLite 跨数据片共享数据。 SQLite数据库不支持行级锁定。 任何插入、更新或删除语句都会在事务持续期间锁定整个SQLite数据库。 默认情况下,SQLite以自动提交模式运行,每个 DML 语句都会立即提交。
有关 "SQLite的详细文档,包括 "SQLite支持的 SQL 语法,可在 "http://www.sqlite.org中找到。 在nzLuaUDX 中使用SQLite的一些示例可在目录 "/nz/extensions/nz/nzlua/examples/SQLite中找到。