概述

听大佬说[1]里面有flink sql client注册udf的方法

去看了一眼,全是文字,闹心,索性琢磨了一下,记录下来.

UDF的完整maven工程

https://github.com/appleyuchi/Flink_SQL_Client_UDF

完整操作步骤

①mvn clean package

或者直接点击intellij右侧的package按钮来进行编译

②编译得到的jar放入到集群的下面,最终路径如下(不一定非要下面这个路径,也可以是其他你自己指定的路径):
$FLINK_HOME/lib/table_api-1.0-SNAPSHOT.jar

下面这步有说法是zeppelin才需要,sql-client不需要

$FLINK_HOME/conf/flink-conf.yaml中末尾加入这么一句

flink.execution.jars: /home/appleyuchi/bigdata/flink-1.12/lib/table_api-1.0-SNAPSHOT.jar

上面的jar只要放到你启动flink sql client 的那个节点中的$FLINK_HOME/lib下面即可,不需要同步到其他节点

不要问如果我有多个udf的jar怎么办,

凉拌,

自己去把所有udf整合到一个jar中来.

④启动Flink SQL Client

输入

create temporary function hash_compute as 'Hashstring';

如果你是先启动Flink SQL Client,后把jar拷贝到②中,那么必须重启Flink sql client,否则会识别不到该jar。

⑤定义source

CREATE TABLE orders (order_uid  BIGINT,product_name String,price      DECIMAL(32, 2),order_time TIMESTAMP(3)
) WITH ('connector' = 'datagen'
);SELECT * FROM orders;

不用担心输入的数据是多少,上面的datagen随机给你生成.

⑥调用UDF

select hash_compute(product_name) from orders;

附录

操作过程截图

实验效果

可能遇到的报错

[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassNotFoundException: Hashstring
这是因为,这个jar是你启动flink集群后才拷贝过去的.

Flink SQL Client加载包含udf的table_api-1.0-SNAPSHOT.jar只有两种办法:

①table_api-1.0-SNAPSHOT.jar拷贝到$FLINK_HOME/lib下面后重启Flink集群

②$FLINK_HOME/bin/sql-client.sh embedded -j $FLINK_HOME/lib/table_api-1.0-SNAPSHOT.jar

Reference:

[1]CREATE Statements

[2]UDF

Flink SQL Client注册JAVA UDF完整流程相关推荐

  1. Flink SQL Client注册SCALA UDF完整流程

    UDF的完整maven工程與SQL https://github.com/appleyuchi/Flink_SQL_Client_UDF 完整操作步骤 ①mvn scala:compile packa ...

  2. Flink SQL Client注册Python UDF完整流程

    概述 本文是对[1]的复现 支持的版本是 组件 版本 备注 Flink 1.12.0 apache版本 apache-flink 1.12.0 pip安装 python 3.6.10 anaconda ...

  3. Flink SQL Client方言切换与datagen->Hive(DDL形式+streaming形式)

    概述 本文是对[1]的完整复现,补充了[1]中缺失的大量细节. 切换方言 切换目标 Flink SQL Client命令 切换为hive SET table.sql-dialect=hive; 切换为 ...

  4. Flink SQL Client实现CDC实验

    概述 本文主要是對[7]中內容的復現 环境 组件 版本 Flink(HA) 1.12 Zookeeper 3.6.0 flink-sql-connector-mysql-cdc 1.1.1 Mysql ...

  5. Flink SQL Client讀取csv中的數據(轉載+總結)

    根據官方文檔[2] Flink SQL啓動方式 啓動命令 (1)starting an embedded standalone process $FLINK_HOME/bin/sql-client.s ...

  6. Flink SQL Client CLI 使用入门

    参照:https://blog.csdn.net/boling_cavalry/article/details/105964425 一.SQL Client Flink 的 Table & S ...

  7. Flink SQL Client进行Kafka事实表与Hbase维度表Join(纯DDL/SQL方式)

    概述: 對參考鏈接[1]進行DDL上的復現. 一些基本的業務常识   來源載體 數據特點 維表 Mysql/Csv/Hbase 很少變化 事實表 Kafka 不停變化 开发环境与准备工作 组件 版本 ...

  8. Flink SQL Client读Kafka+流计算(DDL方式+代碼嵌入DDL/SQL方式)

    #################################################################################################### ...

  9. flink sql client读取hive时卡住

    问题复现如下: 查看$FLINK_HOME/log/flink-appleyuchi-sql-client-Desktop.log 2020-12-23 11:48:56,811 INFO  org. ...

最新文章

  1. JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码)
  2. oracle 从别的数据库获取数据 ,访问其他数据库
  3. mybatis框架执行原理简单实现
  4. php 立即执行函数,关于javascrip的立即执行函数的解析
  5. 基于React跑一个简易版九宫格抽奖
  6. ZooKeeper 初体验
  7. lora三层服务器协议,LoRa以及LoRa包含的几种协议
  8. 计算机无法启动无法修复工具栏,excel打不开怎么办?使用excel修复工具教程
  9. 15款替代微软产品的开源软件
  10. python实现一元二次方程求解_Python实现求解一元二次方程的方法示例
  11. Python3图片中竖排文字
  12. 荣耀 MagicBook V 14 2022款评测
  13. pdf太大了怎么缩小?怎么能缩小pdf文件大小?
  14. JMockit didn't get initialized
  15. 互联网思维——社会化思维
  16. 《深入浅出Docker》学习笔记
  17. 最新智慧工厂可视化管理系统软件
  18. ctfshow 吃瓜杯八月赛 Misc WriteUp
  19. shift切换大小写
  20. tp5导出excel表格

热门文章

  1. mysql四种修改密码的方式
  2. EZ的间谍网络(codevs 4093)
  3. SQLite的局限性
  4. CG-CTF-Web-SQL注入1
  5. php写入变量cookie,PHP如何用数组变量给setcookie函数赋值?
  6. sudo: apt-get:找不到命令”的解决方法
  7. 人工机器:机器人模块化和双足机器人被动行走
  8. TF实战:(Mask R-CNN原理介绍与代码实现)-Chapter-8
  9. ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
  10. Yoga710笔记本Win10和Ubuntu系统共存