维表join
代码编写
- 之前在讲Flink Sql的时候和大家聊过维表以及如何用Flink Sql来完成维表Join
- 现在带大家看看如何用Zeppelin来实现这个功能
- 首先,我们先引入我们所需的依赖包,目前大家先跟着我这么写,之后会讲解引入依赖的多种方式和区别。
%flink.conf # 这是第一个paragraph,大家不要把所有代码写在一个paragraph里面 # 配置一下依赖包,这种方式会自动下载依赖 flink.execution.packages org.apache.flink:flink-connector-kafka_2.11:1.10.0,org.apache.flink:flink-connector-kafka-base_2.11:1.10.0,org.apache.flink:flink-json:1.10.0,org.apache.flink:flink-jdbc_2.11:1.10.0 # 大家千万注意,如果用的是org.apache.flink:flink-connector-kafka_2.11:1.10.0,org.apache.flink:flink-connector-kafka-base_2.11:1.10.0这2个包,那么kafka 那边的 version请写universal,否则你会发现莫名其妙的错误 # 如果kafka版本低于0.11,请用org.apache.flink:link-connector-kafka-0.11_2.11 替换上面的kafka的包,kafka版本和scala版本也请替换成对应的版本,ddl语句中的version也同样如此 # 下面会用到Mysql,如果大家已经在Flink的lib目录下放了Mysql的驱动包,那么配这么多的包就行 # 否则的话,再加上mysql:mysql-connector-java:5.1.37这个包
- 然后我们注册个
File System Source
,再注册Kafka Sink
,之后会将从文件中读取的数据写入到kafka中。注意!大家不要把所有代码写在一个paragraph里面,建议一个paragraph写一段单一功能的语句%flink.ssql -- File System Source DDL DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( user_id bigint, item_id bigint, category_id bigint, behavior varchar, ts bigint ) WITH ( 'connector.type' = 'filesystem', 'connector.path' = 'hdfs:///test/UserBehavior.csv', 'format.type' = 'csv', 'format.field-delimiter' = ',' ) ;
%flink.ssql -- Kafka Sink DDL DROP TABLE IF EXISTS t2; CREATE TABLE t2 ( user_id BIGINT, item_id BIGINT, category_id BIGINT, behavior STRING, ts BIGINT ) WITH ( 'update-mode' = 'append', 'connector.type' = 'kafka', 'connector.version' = 'universal', 'connector.topic' = 'zeppelin_01_test', 'connector.properties.zookeeper.connect' = '127.0.0.1:2181', 'connector.properties.bootstrap.servers' = '127.0.0.1:9092', 'format.type'='json' )
%flink.ssql -- 将我们的数据写入kafka -- 这里之所以用了UNIX_TIMESTAMP()这个udf来代替我们原生的ts