Flink+ClickHouse 玩转企业级实时大数据开发 - Flink,ClickHouse介绍
Apache Flink是一个在***和有界数据流上进行有状态计算的框架。由于许多流应用程序被设计为在最短的停机时间内连续运行,流处理器必须提供出色的故障恢复,以及在应用程序运行时监视和维护应用程序的工具。 Apache Flink非常关注流处理的操作方面。在这里,我们将解释Flink的故障恢复机制,并介绍其用于管理和监督运行中的应用程序的特性。
链接: https://pan.baidu.com/s/1Qq3FAqzkmakso2E7KuxvVg 提取码: kczq
作者-\/ 307570512
Flink+ClickHouse 玩转企业级实时大数据开发 - 最佳实践
在这个架构中,最外层以一个Clickhouse视图连接Mysql引擎和Distributed引擎对应的表数据,Mysql只储存需要实时更新的那部分数据,实时链路每天从Mysql中取离线定期刷新的状态数据,确保不会因为实时链路网络原因、系统故障、应用逻辑错误等造成数据质量问题;Distributed引擎对应的Clickhouse表存储历史数据,类似于Druid里面的Histrical Node,满足统计分析和历史账单数据的查询需求。
--映射Mysql表提取最新一年的数据
CREATE TABLE jc_bi.ads_journal_recent_1year
(
`pk_detail` String,
...
`datasource` String,
`synctime` String
)
ENGINE = MySQL('10.100.x.xx:3306',
'jc_bi',
'ads_journal',
'xxx',
'xxx');
--副本表
CREATE TABLE jc_bi.ads_journal_replica
(
`pk_detail` String,
...
`datasource` String,
`synctime` String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/ads_journal_replica',
'{replica}')
PARTITION BY datasource
ORDER BY (unitcode,...)
SETTINGS index_granularity = 8192;
--Clickhouse分布式表,与副本表ads_journal_replica对应
CREATE TABLE jc_bi.ads_journal_dist
(
`pk_detail` String,
...
`datasource` String,
`synctime` String
)
ENGINE = Distributed('cluster_3shards_1replicas',
'jc_bi',
'ads_journal_replica',
rand() % 3);
--以视图合并Mysql引擎和distributed引擎的两张表
CREATE VIEW jc_bi.v_ads_journal
(
`pk_detail` String,
...
`datasource` String,
`synctime` String
) AS
SELECT *
FROM jc_bi.jc_bi.ads_journal_recent_1year
UNION ALL
SELECT *
FROM jc_bi.ads_journal_dist;
|