17.00 - 17.05 - 中間記憶域の結合 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

UDFのAGR_COMBINE集約フェーズでは、集約の対象となるグループごとに、2つの中間集約記憶域を結合して1つの記憶域にする必要があります。UDFが結合する記憶域は、特定のグループに対する異なるAMPからの結果です。

最終結果は、集約UDFの処理対象となるグループごとに1つずつ、集約記憶域を作成することです。

標準偏差の例では、メソッドは2番目の中間集約記憶域にあるデータに対しては別のagr_storageインスタンスを使用できます。

agr_storage s2 = (agr_storage)context[0].getObject(2);

集約記憶域を組み合わせする文は、次のとおりです。

s1.count += s2.count;
s1.x_sq += s2.x_sq;
s1.x_sum += s2.x_sum;

また、メソッドが中間集約記憶域にあるデータの格納にバイト アレイを使用する場合は、コードは次のようになります。

ByteBuffer s2 = ByteBuffer.wrap(context[0].getBytes(2));
count += s2.getDouble();
x_sq += s2.getDouble();
x_sum += s2.getDouble();
AGR_COMBINE集約フェーズは、ウィンドウ集約UDFには適用しません。