当前位置: 首页 > wzjs >正文

先做网站还是先解析酒店网络营销推广方式

先做网站还是先解析,酒店网络营销推广方式,江西中恒建设集团有限公司网站,域名网址Apache Flink 的 Table API 是 Flink 提供的一种高级抽象,用于以声明式方式处理批处理和流处理数据。它是基于关系模型的 API,用户可以像编写 SQL 一样,以简洁、类型安全的方式编写数据处理逻辑。 一、基本概念 1. 什么是 Table API&#xf…

Apache Flink 的 Table API 是 Flink 提供的一种高级抽象,用于以声明式方式处理批处理和流处理数据。它是基于关系模型的 API,用户可以像编写 SQL 一样,以简洁、类型安全的方式编写数据处理逻辑。


一、基本概念

1. 什么是 Table API?

Table API 是 Flink 中用于处理结构化数据的 关系型编程接口,它支持:

  • 批处理(Batch)

  • 流处理(Streaming)

Table API 提供了类似 SQL 的语法风格,但以函数式 API 方式表达,具备更好的类型安全和 IDE 友好性。


二、核心组件

1. Table

  • Flink 中的 Table 是对结构化数据的一种抽象。

  • 相当于数据库中的表,可以进行过滤、聚合、连接等操作。

2. TableEnvironment

  • Table API 的执行上下文。

  • 创建表、注册 UDF、执行 SQL/Table API 操作等都依赖它。

3. Schema(模式)

  • 定义表结构,包括字段名、数据类型、主键、水位线等。


三、编程模型

// 1. 创建 TableEnvironment
EnvironmentSettings settings = EnvironmentSettings.newInstance().inStreamingMode().build();
TableEnvironment tableEnv = TableEnvironment.create(settings);// 2. 注册表(从外部数据源)
tableEnv.executeSql("""CREATE TABLE source_table (id STRING,ts TIMESTAMP(3),val INT,WATERMARK FOR ts AS ts - INTERVAL '5' SECOND) WITH ('connector' = 'kafka','topic' = 'test',...)
""");// 3. 使用 Table API 处理数据
Table result = tableEnv.from("source_table").filter($("val").isGreater(10)).groupBy($("id")).select($("id"), $("val").avg().as("avg_val"));// 4. 输出结果到目标表
tableEnv.executeSql("""CREATE TABLE sink_table (id STRING,avg_val DOUBLE) WITH ('connector' = 'print')
""");result.executeInsert("sink_table");

四、常用操作

操作类型示例
过滤table.filter($("age").isGreater(18))
投影table.select($("name"), $("age"))
聚合table.groupBy($("city")).select($("city"), $("salary").avg())
连接table1.join(table2).where(...).select(...)
去重table.distinct()
排序table.orderBy($("time").desc())
窗口table.window(...)(见下文)

五、时间和窗口支持

Table API 支持两种时间语义:

  • 事件时间(Event Time)

  • 处理时间(Processing Time)

常见的窗口类型:

  • 滚动窗口(Tumble)

  • 滑动窗口(Slide)

  • 会话窗口(Session)

示例:

table.window(Tumble.over(lit(10).minutes()).on($("ts")).as("w")).groupBy($("id"), $("w")).select($("id"), $("w").start(), $("val").sum());

六、与 SQL 的关系

Table API 与 SQL 是等价的抽象:

  • SQL 更加声明式,适合数据分析人员;

  • Table API 更加灵活、支持编程逻辑,适合开发者。

两者可以混合使用,例如:

Table result = tableEnv.sqlQuery("SELECT id, COUNT(*) FROM source GROUP BY id");

七、数据源和连接器支持

Table API 支持多种数据源和 sink,通过 Flink Connector 实现:

常见的:

  • Kafka

  • HDFS

  • MySQL / JDBC

  • Elasticsearch

  • Hive

  • Iceberg / Delta / Hudi

  • Redis 等

通过 SQL 创建表:

CREATE TABLE example (...
) WITH ('connector' = 'kafka',...
);

八、UDF 扩展

可以定义自定义函数:

  • ScalarFunction(标量函数)

  • TableFunction(表函数)

  • AggregateFunction(聚合函数)

  • TableAggregateFunction(表聚合函数)

示例:

public class HashCode extends ScalarFunction {public int eval(String s) {return s.hashCode();}
}tableEnv.createTemporarySystemFunction("HashCode", HashCode.class);
table.select(call("HashCode", $("name")));

九、批与流统一

Flink 的 Table API 实现了 批流统一语义,相同的 API 可用于处理批或流数据,只需切换 EnvironmentSettings 即可。


十、优点总结

  • 统一的 API:批流统一,开发逻辑一致

  • 类型安全:Java/Scala 函数式风格,IDE 友好

  • 与 SQL 无缝切换

  • 可插拔的连接器与格式支持

  • 强大的时间与窗口语义支持

  • 与 Flink Runtime 深度整合,性能高效

http://www.dtcms.com/wzjs/232796.html

相关文章:

  • 深圳做网站乐云seo费用优惠黄石seo
  • 网站建设手机端pc端分开指数基金怎么买
  • 淘宝客网站搭建教程免费收录网站推广
  • 贵州贵州省住房和城乡建设厅网站最佳bt磁力猫
  • 工厂源头货源app天津seo网站管理
  • 做的网站如何被百度搜到seo查询爱站
  • 长沙微信网站制作广告推广平台赚取佣金
  • 一步步教会你怎么做网站seo排名优化培训怎样
  • 手机网站列表页源码免费推广有哪些
  • 帝国做网站是选择静态还是伪静态宁波谷歌优化
  • 北京做网站建设的公司北京疫情最新数据
  • 东莞整合网站建设公司站长工具爱站
  • 做调研用到的大数据网站爱站网怎么用
  • 网站建设与维护教学计划seo技术分享免费咨询
  • 网站没备案会怎么样淘宝搜索词排名查询
  • 网页设计与制作商丘到的公司seo文章范文
  • 重庆网站建设案例重庆seo博客
  • 新网页游戏排行在线刷seo
  • 发展速度迅猛 具有丰富的网站建设经验网站备案是什么意思
  • 网站这么做优化seo是什么部位
  • 查一下红之易道学做的什么网站站长素材网
  • 网站建设代理平台seo引擎优化软件
  • 南通海洲建设集团网站知乎推广合作
  • 广西网站建设企业百度百科创建
  • 企业查询免费网站seo推广专员
  • 新网网站建设资料正规电商平台有哪些
  • 高端网网站建设软文网站模板
  • 网站平台推广方案网络推广服务外包公司
  • 500人在线网站建设配置重庆放心seo整站优化
  • 个人建站系统做公司网页