ユーザー定義関数を実装します

Data Archiving ライブラリには、実装するデータのインデックス作成用の API がいくつか用意されています。

  • SimpleUDF.getKeys(metadata, message) または MultiKeysUDF.getMultipleKeys(metadata, message) または SplittedUDF.getSplittedKeys(metadata, message)
  • aggregate(keys, messages)

この API を実装するか、またはデフォルトの実装を再利用できます。

  • transformForDeadLetter(message)

この API を使用して、ユーザー定義のメトリクスの登録を含む機能を設定できます。

  • open(parameters, runtimeContext)

このトピックでは、これらのメソッドについて説明します。 詳細については、以下を参照してください。 Javadoc

SimpleUDF.getKeys( メタデータ、メッセージ )

各属性に単一の値がある場合に、メッセージごとにこのメソッドを使用して Data Archiving ライブラリにインデックス属性を提供します。 インデックス属性もメッセージから抽出できます。

  • metadata 引数には、次の情報が含まれます。
    • データが HERE platform にインジェストされた時刻 ()INGESTION_TIME
    • データ・アーカイブライブラリによってデータが処理された時刻 ()PROCESSING_TIME
    • 出力カタログおよびインデックス レイヤー ID (SINK_CATALOG, SINK_LAYER)
    • 入力カタログおよびストリーム レイヤー ID (SOURCE_CATALOG, SOURCE_LAYER)
    • 入力データのメッセージ ID ()MESSAGE_ID
  • 属性名は indexDefinitions インデックス レイヤーのと一致する必要があります。
  • timewindow タイプは必須 timewindow です。このメソッドから返されるのは 1 つだけです。
  • 型のインデックス定義 heretile が存在する場合、タイル of ズーム レベル値はインデックス レイヤーで定義されているズーム レベルと一致する必要があります。
  • この実装されたメソッドにエラーまたは例外がある場合、そのメッセージはアーカイブされません。

MultiKeysUDF.getMultipleKeys (メタデータ、メッセージ)

各属性に複数の値がある場合、このメソッドを使用して、データアーカイブライブラリにインデックス属性を提供します。 インデックス属性もメッセージから抽出できます。

  • MultiKeysUDFは、各属性の値のリストを返す必要があります。 各属性の値のリストを返さない場合は、検証の例外が発生します。
  • すべての入力パラメーターの内容が SimpleUDF.getKeys メソッドと同じです。
  • 各属性の値リストの各値のすべての検証規則は SimpleUDF.getKey 、メソッドと同じです。
  • この実装されたメソッドにエラーまたは例外がある場合、そのメッセージはアーカイブされません。
  • 各属性の値のすべてのリストが結合されます。 HERE の例を次に示します。

    Example 1:
       Input
        attribute1: {value1_1, value1_2}, attribute2: {value2_1, value2_2}
       Output
        {value1_1, value2_1}, {value1_1, value2_2}, {value1_2, value2_1}, {value1_2, value2_2}
    
    Example 2:
       Input
        attribute1: {value1}, attribute2: {value2_1, value2_2}, attribute3: {value3}
       Output
        {value1, value2_1, value3}, {value1, value2_2, value3}
    

SplitedUDF.getSplitedKeys ( メタデータ、メッセージ )

複数の属性にマッピングされている値が同じで、メッセージを複数のメッセージに分割する場合に、このメソッドを使用して Data Archiving ライブラリにインデックス属性を提供します。 インデックス属性もメッセージから抽出できます。

  • SplittedUDFは、インデックスの異なる小さいメッセージにメッセージを分割できます。
  • 小さいサイズの各メッセージのインデックス属性は、 Map<Map<String, Object>, byte[]> 対応する小さいサイズのメッセージ値 AS で返されるのキーになり byte[]ます。 各属性は、として表さ Map<String, Object>れます。
  • すべての入力パラメーターの内容が SimpleUDF.getKeys メソッドと同じです。
  • の各値のすべての検証ルール Map<String, Object>SimpleUDF.getKey 、メソッドと同じです。
  • この実装されたメソッドにエラーまたは例外がある場合、そのメッセージはアーカイブされません。

集約 ( キー、メッセージ )

このメソッドは、メッセージのグループごとに ( 集計ウィンドウのインデックス属性に基づいて ) 、 Function パラメータで指定 keysされた属性 ( キー ) にグループを関連付けます。

transformForDeadLetter ( メッセージ )

エラーストラテジ 'eadletter' の場合、ユーザーは、メッセージを変換してからデッドロックレイヤーにアーカイブする関数を定義できます。 詳細については、「デッドレター方式」を参照してください。

open ( パラメータ , runtimeContext)

実際の作業メソッド ( など getKeys/aggregate) の前に呼び出される初期化メソッドで、 1 回限りのセットアップ作業に適しています。 デフォルトでは、このメソッドは no-op です。

」に一致する結果は 件です

    」に一致する結果はありません