SPUPad API
SPUPadは、UDXがトランザクションの全期間を通じてメモリに残るデータを保存する方法を提供する。
SPUPadに割り当てられたすべてのメモリは、トランザクションの終了時に自動的に解放される。 finalize() メソッド( finalize() を参照)は、 saveString() または saveTable() を呼び出して計算の最終結果を SPUPad に書き込むためによく使用される。これは、UDX によってデータの最終行が処理された後に呼び出されるからである。
SPUPadを使用して複数のSQLステートメント間でデータを渡すには、SPUPadが各トランザクションの終了時に完全にクリアされるため、すべてのSQLステートメントを単一のbegin/commitブロックで囲む必要があります。 SPUPadにデータを保存する主な使用例は以下の通り:
- ELT処理中の複数の出力ストリーム。
- nzLuaのUDTFを使用して、入力レコードのセットを解析し、良いレコードを出力し、悪いレコードをSPUPadに格納することができる。 2番目のSQL文は、SPUPadから不良レコードを取り出し、エラーテーブルに格納する。
- ルックアップテーブル。
- 場合によっては、SQLを使用してルックアップ・テーブルを結合するのではなく、SPUPadにルックアップ・テーブルを格納する方が便利なことがあります。 これは、完全に一致するものを見つけるのではなく、ルックアップ・データまたは一連のパターンに基づいて、UDXが「最適な」一致を見つける必要がある場合に非常に便利です。 この種の "join "はSQLで表現するのは非常に難しく、非効率的である。
- ます。
- SPUPadは、UDXの動作に影響を与える設定データやソースコードを保持するために使用することができます。 例えば、nzLuaのソースコードをテーブルに格納し、1 つの SQL 文で SPUPad にロードし、2 番目の SQL 文でデータセットを処理する。
nzLuaの配布物の一部として提供されているnzLuaのサンプルには、save_string.nzlスクリプトとrestore_string.nzlスクリプトがあり、SPUPadの使い方を示している。