用途:在 Java 中为 Apache Flink 编写并部署自定义函数,扩展 Flink SQL 和 Table API 的能力,用于 Kafka 上的流处理。
函数类型:标量 UDF(输入映射为单个输出值,如自定义哈希、字符串处理、计算);用户自定义表函数 UDTF(输入映射为多行输出,如拆分字符串、展开数组);Process Table Function(PTF,具备 N 对 M 语义、托管状态和定时器的高级有状态处理,如窗口、去重、状态机)。
使用方式:先确定函数类型,再确认部署目标(Confluent Cloud 或本地 Docker)、基础设施(新建 Kafka + Flink 还是使用现有)、调用方式(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 下对应 references/udf-udtf-java-local.md、references/ptf-java-local.md 及 references/local-docker-setup.md。
实施流程:搭建基础设施(如需)、生成函数样板代码、实现业务逻辑、构建打包 JAR、部署制品、在 Flink 中注册函数、用示例数据测试并提供 SQL 或 Table API 用法示例。
限制:任何修改资源的调用(如 confluent flink artifact create、向运行中容器 docker cp、CREATE FUNCTION 等)前,需先展示计划并等待用户明确批准,包括制品名称与 JAR 路径、注册的函数名、目标环境(Confluent Cloud 环境与计算池 ID,或本地 Docker 容器名)以及将执行的确切命令和 SQL;未获确认前不得继续部署与注册步骤。代码脚手架应简洁,聚焦具体需求,避免过度设计。