版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TableAPI&SQL实战1目录CONTENTS01.统一关系型API02.动态表与连续查询03.开发环境配置04.表定义与外部连接05.API风格与优化06.Kafka实时分析实战201统一关系型API3TableAPI&SQL统一流批查询语义以同一套语句处理有界批数据与无界流数据,实现流批一体,降低开发与学习成本。实时数据分析持续更新的动态报表流式ETL处理数据清洗与转换复杂事件处理(CEP)识别事件序列模式,如用户行为路径、设备异常检测等。核心目标:掌握编程模型、理解流表对偶性、构建Kafka实时分析应用。4Catalog:元数据的“中央枢纽”统一管理元数据,实现一次注册,到处引用GenericInMemoryCatalog内存临时存储,会话结束即消失。JdbcCatalog/HiveCatalog直连外部系统,复用现有元数据。自定义Catalog扩展性支持,对接专有系统。通过catalog.db.table实现跨源联合查询,通过USECATALOG切换会话上下文。502动态表与连续查询6动态表:用关系视图拥抱无限流将不断涌入的事件流,视为一张持续更新的关系表事件流无限、持续、追加流表对偶动态表有界、可更新、关系型案例:5分钟滚动聚合对订单流进行连续查询,Flink将窗口逻辑隐入背后,开发者只需写标准SQL,即可得到持续更新的结果表。7连续查询:增量计算保障低延迟基于变更日志流增量计算,而非全表重新扫描+I(插入)-D(删除)-U/+U(更新)变更事件沿查询计划树传播,仅重算受影响结果。需注意状态管理:聚合节点需保存累加值,JOIN节点需缓存数据。合理设置stateTTL并开启mini-batch调优是关键。803开发环境配置9环境与Planner选型正确的依赖与Planner是项目成功的基础核心依赖flink-table-api-scala-bridge_2.12:连接TableAPI与Scala运行时。flink-table-planner_2.12:将SQL转化为可执行算子。flink-table-common:提供通用功能与接口。注意:Scala2.12与Flink版本需严格对齐。Planner选择BlinkPlanner(推荐)流批一体,优化规则丰富,是未来的默认选择。LegacyPlanner(已停止维护)仅用于兼容旧项目,不建议在新项目中使用。10TableEnvironment:程序的入口与总控承载解析SQL、注册表、提交执行的全生命周期独立模式适合纯SQL作业,通过`EnvironmentSettings`配置。valsettings=...valtableEnv=TableEnvironment.create(settings)依附模式适合混合DataStream与TableAPI,利用现有流环境。valenv=StreamExecutionEnvironment.get...valtableEnv=StreamTableEnvironment.create(env)1104表定义与外部连接12三元标识符精准定位任意表消除同名歧义,实现跨源联合查询Catalog数据源.Database数据库.Table表名转义与默认设置使用反引号(``)转义关键字。通过`USECATALOG`和`USEDATABASE`设置当前默认值。临时表覆盖临时表优先于永久表,方便实验。生产环境应锁定写权限,防止误覆盖。13文件系统表:让本地CSV秒变数据源无需Java代码,通过DDL直接映射文件为表CREATETABLEUserTable(idINT,nameSTRING,ageINT)WITH('connector'='filesystem','path'='data/sample.csv','format'='csv')路径与格式支持通配符(如`data/*.csv`)和多种format(json,parquet)。流式监听如需流式监听,需使用`file-system`streamingsource并开启分区发现。1405API风格与优化15链式TableAPI:类型安全与调试友好相比纯SQL,提供更强大的IDE支持和调试能力valresult=tableEnv.from("Orders").filter($"cCountry"==="FRANCE").groupBy($"cID",$"cName").select($"cID",$"cName",$"revenue".sum().as("revSum"))类型安全`$"字段"`在编译期检查,减少运行时错误。调试友好可打断点逐步验证,支持`table.explain()`查看执行计划。可视化优化IDE插件可高亮Planner优化规则,让优化过程透明化。16Calcite优化规则:自动裁剪无效算子基于成本模型,将逻辑计划改写为更高效的物理计划投影剪裁去掉未引用的列,减少数据传输。过滤器下推将WHERE条件下沉到Source,提前过滤。分区剪裁只读取匹配目录,降低IO。子查询重写将IN转化为JOIN,利用哈希加速。1706Kafka实时分析实战18Kafka源表DDL:一键接入事件流通过DDL直接将KafkaTopic映射为动态表CREATETABLEuser_events(user_idSTRING,event_typeSTRING,event_timeSTRING,product_idSTRING)WITH('connector'='kafka','topic'='user-events-topic','properties.bootstrap.servers'='master:9092','format'='json')Connector&Topic指定为'kafka',topic支持单主题或正则。BootstrapServersKafka集群连接地址。Format&Startup指定消息格式,并可配置消费起始位点。19多维度聚合SQL:实时找出高活跃用户标准SQL即可完成复杂的实时分析逻辑SELECTuser_id,COUNT(DISTINCTproduct_id)ASdistinct_products,COUNT(*)AStotal_eventsFROMuser_eventsWHEREevent_type='click'GROUPBYuser_idHAVINGCOUNT(DISTINCTproduct_id)>1ORDERBYtotal_eventsDESCLIMIT10业务逻辑过滤点击事件,按用户分组,统计去重商品数和总事件数,筛选出浏览多个商品且最活跃的前10用户。执行优化`ORDERBYLIMIT`会被优化为高效的`Top-N`算子,使用最小堆算法增量维护结果,内存占用可控。20结果流三种编码:灵活对接下游系统根据下游系统能力,选择最合适的输出模式toChangelogStream保留完整变更日志(+I,-U,+U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险作业安全告知卡管理制度
- 化工装置安全风险评估标准指南
- 食疗养生配餐制作操作规程
- 棉花抗虫棉田间害虫监测制度
- 高产玉米种子筛选包衣操作技术指南
- 肉种鸡育雏期温度湿度管理手册
- 茶树有机种植环境控制标准
- 私人理疗室服务环境标准
- 药品器械存放管理规范
- 茶树轻修剪整形技术标准
- GB/T 32826-2026光伏发电系统建模导则
- 部编版小学语文五年级下册期末测试卷含答案
- 健康管理技术与实施方案手册
- 2026年系统集成项目管理工程师真题及答案
- 2026年公需科目《人工智能》试题附答案
- 2026上海市中考地理考前一周加分卷含答案
- 告别童年、拥抱青春六一主题班会
- 房屋装修免责协议书
- 食品风味化学2.3-苦味和苦味分子2
- 血凝的基本知识课件
- 腾讯专有云TCE工程师认证复习备考试题库大全(含答案)
评论
0/150
提交评论