このトピックでは、Realtime Compute で開発環境を構築し、ユーザー定義拡張機能 (UDX) を使用する方法について説明します。

現在、Realtime Compute は共有モードの UDX をサポートしていません。 UDX は、排他モードでのみサポートされています。

概要

Realtime Compute は、次の UDX をサポートしています。

  • UDF

    ユーザー定義関数 (UDF) は、1 つのレコードの 0、1、または複数のスカラー値を新しいスカラー値にマップします。

  • UDAF

    ユーザー定義の集計関数 (UDAF) は、複数のレコードを単一の値に集計します。

  • UDTF

    ユーザー定義テーブル関数 (UDTF) は、出力レコードを生成する前に複数のレコードを変換します。 出力レコードの数は、入力レコードの数と一致する必要はありません。 UDTF は、複数のフィールドを返すことができる唯一のタイプの UDX です。

開発環境の構築

UDX の開発は、Realtime Compute のいくつかの JAR パッケージに依存します。 開発環境の迅速な構築を支援するため、Alibaba Cloud は UDX 開発デモ版 (RealtimeCompute-udxDemo.gz) を提供しています。 デモは Maven プロジェクトです。 これを IntelliJ IDEA で開いて、このデモに基づいて UDX を開発することができます。

デモでは、参照用に 3 つのシンプルな UDX (UDF、UDAF、および UDTF) を実装しています。

RealtimeCompute-udxDemo.gz

デモは以下の JAR パッケージに依存します。 パッケージを個別に使用する必要がある場合は、対応するリンクをクリックしてダウンロードしてください。

flink-streaming-java_2.11

flink-table_2.11

flink-core-blink-2.2.4

デモパッケージをダウンロードしたら、次の例を参照して pom. xml ファイルを変更します。
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-core</artifactId>
        <version>blink-2.2.4-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-table_2.11</artifactId>
        <version>blink-2.2.4-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency> 
    <dependency>
         <groupId>org.apache.flink</groupId>
         <artifactId>flink-streaming-java_2.11</artifactId> 
         <version>blink-2.2.4-SNAPSHOT</version>
         <scope>provided</scope>
    </dependency>
				

UDX の登録と使用

UDX が開発されたら、それを JAR パッケージに圧縮します。 [開発] ページで、[アップロード] をクリックします。

JAR パッケージがアップロードされたら、ジョブを選択し、次のようにジョブで UDX を宣言します。

CREATE FUNCTION stringLengthUdf AS 'com.hjc.test.blink.sql.udx.StringLengthUdf';
  1. Realtime Compute コンソールにログインします
  2. トップメニューで、[開発] をクリックします。
  3. 左側のナビゲーションウィンドウで、[リソース] をクリックします。
  4. [リソース] タブの [➕リソースの作成] をクリックします。
  5. リソース設定情報を入力します。
    設定名 説明
    アップロードモード 現時点では、ローカルでのアップロードのみがサポートされています。
    リソース [リソースのアップロード] アイコンをクリックして、アップロードするリソースを選択します。
    リソース名 リソース名を入力します。
    リソースの説明 リソースの説明を入力します。
    リソースタイプ アップロードするリソースの種類、JAR、DICTIONARY、または PYTHON を選択します。
  6. [リソース] タブで、マウスを [詳細] に合わせます。
  7. [参照] をクリックします。
  8. ジョブ編集ウィンドウの SQL クエリの上部に UDX 関数ステートメントを追加します。 例は以下のとおりです。
    CREATE FUNCTION stringLengthUdf AS 'com.hjc.test.blink.sql.udx.StringLengthUdf';