Flink—Sql接口

文档结构

官网教程:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/

概念同步

连接数据库

Flink 本身不自带 MySQL、Oracle 等第三方数据库的驱动包,只提供通用的 JDBC 连接器。连接具体数据库时,必须手动引入对应厂商的驱动 Jar 包,否则会报 ClassNotFoundException: com.mysql.cj.jdbc.Driver 一类的错误。

SQL 语法

sql 复制代码
select 'hello world!';


select current_timestamp;

# 查看可用函数
show functions;
  • 时态关联
sql 复制代码
SELECT o.order_id, o.total, c.country, c.zip
  FROM Orders AS o -- 订单流(事实表)
 inner JOIN Customers
   FOR SYSTEM_TIME AS OF o.proc_time AS c
    ON o.customer_id = c.id; -- 关联条件

Sql Hint

sql 复制代码
-- 覆盖查询语句中源表的选项
select id, name from kafka_table1 /*+ OPTIONS('scan.startup.mode'='earliest-offset') */;

sink.partitioner='round-robin'

表示轮询分发,让数据均匀写入 Kafka 所有分区,解决默认分区策略可能导致的数据倾斜问题。

  • BROADCAST
python 复制代码
CREATE TABLE t1 (id BIGINT, name STRING, age INT) WITH (...);
CREATE TABLE t2 (id BIGINT, name STRING, age INT) WITH (...);
CREATE TABLE t3 (id BIGINT, name STRING, age INT) WITH (...);

-- Flink 会使用 broadcast join,且表 t1 会被当作需 broadcast 的表。
SELECT /*+ BROADCAST(t1) */ * FROM t1 JOIN t2 ON t1.id = t2.id;

-- Flink 会在两个联接中都使用 broadcast join,且 t1 和 t3 会被作为需 broadcast 到下游的表。
SELECT /*+ BROADCAST(t1, t3) */ * FROM t1 JOIN t2 ON t1.id = t2.id JOIN t3 ON t1.id = t3.id;

-- BROADCAST 只支持等值的联接条件
-- 联接提示会失效,只能使用支持非等值条件联接的 nested loop join。
SELECT /*+ BROADCAST(t1) */ * FROM t1 join t2 ON t1.id > t2.id;

-- BROADCAST 不支持 `Full Outer Join`
-- 联接提示会失效,planner 会根据 cost 选择最合适的联接策略。
SELECT /*+ BROADCAST(t1) */ * FROM t1 FULL OUTER JOIN t2 ON t1.id = t2.id;

注意: BROADCAST 只支持等值的联接条件,且不支持 Full Outer Join。

  • SHUFFLE_HASH

  • SHUFFLE_MERGE

  • NEST_LOOP

注意:NEST_LOOP 同时支持等值的和非等值的联接条件。

================================== over =============================================

相关推荐
Elastic 中国社区官方博客5 分钟前
跟踪资金流向:使用 ES|QL 和跨集群搜索追踪洗钱网络
大数据·人工智能·安全·elasticsearch·搜索引擎·金融·全文检索
TTBIGDATA11 分钟前
【Ambari Plus】10.HBase 安装
大数据·运维·hadoop·ambari·hdp·cdh·bigtop
汤姆yu1 小时前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
长和信泰光伏储能2 小时前
探索未来能源:光伏储能技术解析
大数据·人工智能·能源
阿标在干嘛3 小时前
从全表扫描到毫秒响应:政策快报平台的索引优化实战
大数据
agent8973 小时前
Elasticsearch 慢查询排查:从 Mapping、分片、分页到聚合优化
大数据·elasticsearch·django
今日综合3 小时前
2026精选教务管理系统深度分析:功能差异、收费模式全拆解
大数据·人工智能
thubier(段新建)4 小时前
OWTB 3PL 核心主流程与行业落地方案
大数据·人工智能
YangYang9YangYan4 小时前
2026大数据专业毕业学数据分析的价值
大数据·数据挖掘·数据分析
跨境生态圈4 小时前
2026外贸获客渠道全面洗牌:AI正在重新分配全球流量,你的品牌在答案里吗?
大数据·运维·人工智能·chatgpt