mcpField
F
flink-udf

flink-udf

github.com/confluentincデータ・データベース59109 回インストール2 日前に更新
リポジトリ

flink-udf について

Java で Apache Flink のカスタム関数を開発、デプロイするためのスキルです。関数の種類とデプロイ先に応じて実装を案内し、リソースを変更する前に計画の確認を求めます。

主な機能

  1. 01Scalar UDF、UDTF、PTF の区別
  2. 02Confluent Cloud とローカル Docker 向けガイドの選択
  3. 03コード生成、JAR 化、デプロイの案内
  4. 04Flink SQL と Table API からの呼び出し
  5. 05リソース変更前の計画承認

活用シーン

  1. 01Flink SQL への独自スカラー計算の追加
  2. 02入力から複数の出力行への展開
  3. 03状態とタイマーを使うテーブル処理の実装
  4. 04Flink への関数のデプロイと登録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/confluentinc/agent-skills --skill flink-udf

インストール後、Claude Code で/flink-udfを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
confluent-cloud-setup.md
dependencies-confluent-cloud.md
dependencies-local.md
local-docker-setup.md
ptf-java-confluent-cloud.md
ptf-java-local.md
udf-udtf-java-confluent-cloud.md
udf-udtf-java-local.md

詳細

Flink ユーザー定義関数(UDF)

Apache Flink 用のカスタム関数を Java で作成してデプロイし、カスタムロジックで SQL と Table API の機能を拡張します。

関数の種類

先に進む前に、ユーザーが必要としている関数の種類を確認してください。

  • スカラー UDF:入力値を単一の出力値に変換します(例:カスタムハッシュ、文字列操作、計算)
  • ユーザー定義テーブル関数(UDTF):入力を複数の出力行に変換します(例:文字列の分割、配列の展開)
  • プロセステーブル関数(PTF):N 対 M のセマンティクス、管理対象の状態、タイマーを使用した高度なステートフル処理です(例:ウィンドウ処理、重複排除、ステートマシン)

要件の確認

実装方針を決めるため、(コンテキストから明らかでない場合は)次の質問をユーザーにしてください。

  1. デプロイ先:Confluent Cloud またはローカル Docker のどちらですか?
  2. インフラストラクチャ:新しいインフラストラクチャ(Kafka + Flink)をデプロイしますか?それとも既存のものを使用しますか?
  3. 呼び出し方法:Flink SQL または Table API のどちらですか?

実装ガイドの選択

上記の回答に基づいて、適切なリファレンスファイルを読んでください。

Confluent Cloud へのデプロイ
  • スカラー UDF または UDTF → references/udf-udtf-java-confluent-cloud.md を読んでください
  • プロセステーブル関数(PTF) → references/ptf-java-confluent-cloud.md を読んでください

インフラストラクチャのセットアップが必要な場合は、先に references/confluent-cloud-setup.md も読んでください。

ローカル Docker へのデプロイ
  • スカラー UDF または UDTF → references/udf-udtf-java-local.md を読んでください
  • プロセステーブル関数(PTF) → references/ptf-java-local.md を読んでください

インフラストラクチャのセットアップが必要な場合は、先に references/local-docker-setup.md も読んでください。

実装ワークフロー

適切なリファレンスを読んだ後、次の手順に従ってください。

  1. インフラストラクチャをセットアップする(必要な場合)
  2. 関数のボイラープレートコードを生成する
  3. ビジネスロジックを実装する
  4. JAR をビルドしてパッケージ化する
  5. デプロイ計画をユーザーに確認する。 リソースを変更する呼び出し(confluent flink artifact create、実行中のコンテナーへの docker cp、CREATE FUNCTION など)を行う前に、計画を提示し、明示的な承認を待ってください。次の内容を示してください。
    • アーティファクト名と JAR パス
    • 登録する関数名
    • 対象環境(Confluent Cloud の環境 + コンピュートプール ID、またはローカル Docker のコンテナー名)
    • 実行するコマンドと SQL の正確な内容 ユーザーの確認を得るまで、手順 6~7 に進まないでください。
  6. アーティファクトをデプロイする
  7. Flink に関数を登録する
  8. サンプルデータを使って関数をテストする
  9. 使用例(SQL または Table API)を提示する

コードのひな型は簡潔にし、ユーザー固有の要件に焦点を当ててください。過度な設計は避けてください。

コメント