10.4 外部定義関数定義ファイルの記述例

ここでは,次のサンプルファイルに記述されている外部定義関数定義ファイルの記述例を示したあとに,記述例の内容を説明します。

<インストールディレクトリ>¥samples¥external¥conf¥xml¥ExternalFunctionDefinition.xml

外部定義関数定義ファイルの記述例

<?xml version="1.0" encoding="UTF-8"?>
<!-- All Rights Reserved. Copyright (C) 2013, Hitachi, Ltd.  -->
<root:ExternalFunctionDefinition
xmlns:root="http://www.hitachi.co.jp/soft/xml/sdp/function"
 xmlns:group="http://www.hitachi.co.jp/soft/xml/sdp/function/functiongroup">
 
<!--関数グループ定義 -->
<group:FunctionGroup name="FG1" path="samples/external/src">
 <!-- 関数定義 -->
 <group:StreamFunction name="FUNC1" class="samples.ExternalStreamFunction">
  <!-- 戻り値定義 -->
  <group:ReturnInformation name="R1" type="INT" />
  <group:ReturnInformation name="R2" type="VARCHAR(10)" />
  <group:ReturnInformation name="R3" type="BIGINT" />
  <group:ReturnInformation name="R4" type="TIMESTAMP(9)" />
 </group:StreamFunction>
</group:FunctionGroup>
 
</root:ExternalFunctionDefinition>

記述例の内容
この記述例では,関数グループ名「FG1」,関数名「FUNC1」の外部定義関数を定義しています。
各定義の内容を次に示します。
  • 関数グループ定義の内容
    関数グループ名:FG1
    クラスパス:samples/external/src
  • 関数定義の内容
    関数名:FUNC1
    クラス名:samples.ExternalStreamFunction
  • 戻り値定義の内容
    外部定義関数の処理結果となる出力ストリームの各列の列名および型名を,次の表に示すとおりに定義しています。
    出力ストリームの列列名型名
    1列目R1INT
    2列目R2VARCHAR(10)
    3列目R3BIGINT
    4列目R4TIMESTAMP(9)
 
この記述例の場合のクエリ定義ファイルを次に示します。

REGISTER STREAM DATA0(ID VARCHAR(10), VAL BIGINT);
 
REGISTER QUERY Q1 SELECT ID, VAL FROM DATA0[PARTITION BY ID ROWS 1];
REGISTER QUERY Q2 ISTREAM (SELECT * FROM Q1);
REGISTER QUERY Q3 DSTREAM (SELECT * FROM Q1);
REGISTER QUERY SUM1 $*FG1.FUNC1[3](Q2,Q3);

クエリの定義については,マニュアル「uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド」を参照してください。