SQLiteモジュール
SQLiteデータベースがnzLuaに組み込まれており、Netezzaトランザクションの外部でデータを永続化できる。 この機能の主な使用例はデバッグロギングですが、ルックアップテーブルや、UDXからNetezzaデータベースに直接返せない追加データを格納するためにも使用できます(たとえば、UDTFが単一の結果セットではなく、複数の異なる結果セットを返す必要がある場合など)。
SQLiteデータベースに保存できるデータ量の上限は1GBです。 大規模なSQLiteデータベースは、インデックス検索と挿入時のインデックスメンテナンスのためのランダムなI/O要求により、Netezzaデータベースの全体的なパフォーマンスに大きな影響を与える可能性があります。 SQLiteデータベースは、過剰なランダムI/Oを避けるため、可能な限りメモリにキャッシュされる。 しかし、データベースのサイズが大きくなると、メモリが使用できなくなる可能性がある。 その結果、小さなI/Oリクエストが多数発生し、Netezzaデータベースのシーケンシャルリードを妨害する。
各データ・スライスに固有のSQLiteデータベースが存在する。 同じデータスライス上で同時に実行されている2つのUDXは、同じSQLiteデータベースにアクセスします。 UDXがSQLiteを使用してデータスライス間でデータを共有することはできません。 SQLiteデータベースは行レベルのロックをサポートしていません。 挿入、更新、または削除ステートメントは、トランザクションの間、SQLiteデータベース全体をロックします。 デフォルトでは、SQLiteは自動コミットモードで動作し、各 DML 文は直ちにコミットされます。
SQLiteがサポートするSQL構文を含む SQLiteの詳細なドキュメントは、 http://www.sqlite.org nzLuaUDXからSQLiteを使用するサンプルは、'/nz/extensions/nz/nzlua/examples/SQLiteディレクトリにある。