Flink实时大数据处理技术 课后习题及答案 08.doc

Flink实时大数据处理技术 课后习题及答案 08.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Flink实时大数据处理技术版

第8章TableAPI和SQL

PAGE288

PAGE289

1)FlinkTableAPI和SQL有什么区别?

2)利用TableAPISQL从HBase中读取任意数据并输出到控制台,列出详细实现步骤。

3)利用TableAPISQL从DataGen连接器中生成模拟数据并将数据写入到HBase,列出详细实现步骤。

4)假设有一个数据表orders,其中包含订单信息:

CREATETABLEorders(

order_idSTRING,

user_idSTRING,

item_idSTRING,

order_timeTIMESTAMP(3),

priceDOUBLE

)WITH(

connector=...,--指定连接器类型,例如kafka,filesystem等

--其他连接器相关配置,例如topic=...,path=...等

);

i.编写SQL语句计算每个用户的总订单金额。

ii.编写SQL语句查询在特定时间范围内(例如:2023-01-01到2023-01-31)的订单总金额。

5)假设有一个数据表user_clicks,其中包含用户点击信息:

CREATETABLEuser_clicks(

click_idSTRING,

user_idSTRING,

item_idSTRING,

category_idSTRING,

click_timeTIMESTAMP(3)

)WITH(

connector=...,--指定连接器类型,例如kafka,filesystem等

--其他连接器相关配置,例如topic=...,path=...等

);

编写SQL查询每个类别(category_id)下点击次数最多的商品及其点击次数。

Flink实时大数据处理技术版

第8章TableAPI和SQL

PAGE288

PAGE289

参考答案:

FlinkTableAPI和SQL有什么区别?

在Flink中通过TableAPI和SQL都可以对表进行查询处理,两者的区别在TableAPI是基于Scala和Java语言的查询API,而SQL则主要是以字符串的形式完成,TableAPI的查询不是由字符串指定,而是基于语言中定义的各类方法完成。

利用TableAPISQL从HBase中读取任意数据并输出到控制台,列出详细实现步骤。

创建Flink环境

valenv:StreamExecutionEnvironment=StreamExecutionEnvironment.getExecutionEnvironment

valtEnv:TableEnvironment=StreamTableEnvironment.create(env)

创建Hbase连接

valhbaseContext=tEnv.createHBaseContext(hbase-client,hbaseZooQuorum)

创建查询

valquery=SELECTcolumn1,column2FROMmyTable

valresultTable=hbaseContext.executeSql(query)

将结果打印到控制台

resultTable.print()

利用TableAPISQL从DataGen连接器中生成模拟数据并将数据写入到HBase,列出详细实现步骤

objectTableExample{

defmain(args:Array[String]):Unit={

valenv=StreamExecutionEnvironment.getExecutionEnvironment

valtableEnv=StreamTableEnvironment.create(env)

//创建表

valsourceDesc=TableDescriptor.forConnector(datagen)

.option(rows-per-second,2)

.option(fields.name.length,5)

.option(fields.id.min,1)

.option(fields.id.max,100)

.option(fields.score.mi

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档