Flink Sql on Zeppelin(2)——维表Join

维表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
    	

你可能感兴趣的:(Flink,Sql,on,Zeppelin,flink,大数据,zeppelin集成)