Flink SQL作业快速入门

Flink SQL快速入门_实时计算 Flink版(Flink)-阿里云帮助中心

这段代码是使用Apache Flink SQL来处理来自阿里云日志服务(SLS)的GitHub事件数据。它创建了一个临时表gh_event,该表连接到SLS以读取GitHub事件流,并设置了一些Flink作业的配置参数。最后,它执行了一个查询,用于计算当天获得新星标(star)最多的前10个GitHub仓库。

下面详细解释每个部分:

创建临时表 gh_event

sql 复制代码
CREATE TEMPORARY TABLE gh_event(
  ...
) WITH (
  'connector' = 'sls',
  ...
);

这段DDL语句定义了一个名为gh_event的临时表,它实际上是一个外部表,因为它通过WITH子句中的配置与阿里云的日志服务相连。这个表代表了GitHub上发生的实时事件,例如用户对项目进行的操作(fork、watch等)。WITH子句中包含了一系列键值对,用来指定如何连接到SLS以及如何读取数据,包括项目名称、端点、日志存储名称和访问凭证等信息。

设置Flink作业配置

sql 复制代码
SET 'table.exec.mini-batch.enabled'='true'; 
SET 'table.exec.mini-batch.allow-latency'='2s'; 
SET 'table.exec.mini-batch.size'='4096'; 
SET 'parallelism.default' = '4';

这些SET语句用于配置Flink作业的行为:

  • mini-batch.enabled:启用mini-batch模式,可以减少资源消耗。
  • mini-batch.allow-latency:设定允许的最大延迟为2秒,即每2秒处理一次收集到的数据。
  • mini-batch.size:指定了mini-batch的最大大小为4096条记录。
  • parallelism.default:设定了作业默认并行度为4,意味着如果有足够的资源,作业将以4个并发任务运行。

查询当天新增星标Top 10仓库

sql 复制代码
SELECT DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') as `date`, repo_name, COUNT(*) as num
FROM gh_event
WHERE type = 'WatchEvent' AND DATE_FORMAT(created_at_ts, 'yyyy-MM-dd') = DATE_FORMAT(NOW(), 'yyyy-MM-dd')
GROUP BY DATE_FORMAT(created_at_ts, 'yyyy-MM-dd'), repo_name
ORDER BY num DESC
LIMIT 10;

这段SQL查询从gh_event表中筛选出所有类型为WatchEvent(即用户给某个仓库加星标)的事件,并且只选择当天的事件。然后,它根据仓库名(repo_name)分组,统计每个仓库收到的新星标的数量,最终按星标数量降序排列,取前10名。

相关推荐
TDengine (老段)2 天前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
头茬韭菜3 天前
第 4 篇:「Fluss + Flink 集成实战」—— Catalog、Source 与 Sink
大数据·python·flink·fluss
阿里云大数据AI技术4 天前
官宣|Apache Fluss 毕业成为顶级项目,湖流一体开启 Agentic Lake 全面实时化时代
人工智能·flink
Blossom i4 天前
分布式编程实验二:Flink安装与编程实践(头歌云客)
大数据·分布式·flink
渣渣盟5 天前
当反压问题解决后,如何进一步优化 Flink 作业的 Checkpoint 性能,让大状态作业也能稳定运行?
大数据·flink
渣渣盟5 天前
当 Redis 写入不再是瓶颈后,Flink 任务的反压可能来自哪里?如何系统性地定位和解决 Flink 反压问题?
数据库·redis·flink
渣渣盟6 天前
当 Redis 集群发生主从切换(Failover)时,Flink 任务会崩溃吗?如何利用 Sentinel 实现高可用?
redis·flink·sentinel
渣渣盟6 天前
当 Checkpoint 稳定运行后,如何进一步优化 Flink 作业的启动和恢复速度,让大状态作业的扩缩容从“小时级”降到“分钟级”?
大数据·flink
ZCBUS实时计算6 天前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
让头发掉下来7 天前
Flink SQL 中两个频繁变化 Topic 的 Join 行为分析
大数据·数据库·sql·flink