在上文 设计一个百万级的消息推送系统 中提到消息流转采用的是 Kafka 作为中间件。
之前写过一篇《从源码分析如何优雅的使用 Kafka 生产者》 ,有生产者自然也就有消费者。
每篇会讨论一种Flink SQL的join方式,其实已经在之前写过两篇用upsert-kafka做temporal join的文章,但是限于当时对于Flink SQL、CDC、撤回语义等的认知水平有限,并且时间仓促,写的不尽如人意。...
最近我们组在大规模上线Flink SQL作业。首先,在进行跑批量初始化完历史数据后,剩下的就是消费Kafka历史数据进行追数了。但是发现某些作业的追数过程十分缓慢,要运行一晚上甚至三四天才能追上最新数据。由于是实时数仓指...
在上一篇文章「checkpoint【1】」中,我们讨论过在2PC过程的每个阶段出现故障时Flink的处理方式:
Flink 是 stateful 计算引擎,不同于 Storm。在 Storm 这类无状态计算引擎中,并行的任务实例(通常一个任务实例运行在一个线程中)是不存储计算状态的,即使有一些运行时的程序元信息也是放在了像 ZooKeeper 这种第三方的高可...
上一篇“【Flink】第二篇:维表Join之版本表”写的有些仓促,最后的结论部分总结的不够精炼,本篇对其进行进一步总结,并给出Demo的输出示例,目的在于探索Flink SQL 版本表join的一些设计规则。...
在数仓ETL中,事实表和维度表在维度码值之上做join、或者若干表之间进行join做数据打宽十分常见。数仓中的join本质上是以空间换时间,范式降低,以便后续olap数据分析之用。但是看似简单的join操作,一旦在Flink的流式语义中...
操作系统只是硬件和应用软件之间的一个平台。32位操作系统针对32位的CPU设计。64位操作系统针对的64位的CPU设计。