如何保证消息的可靠性传输?(如何处理消息丢失的问题) 发表于 2018-03-08 | 分类于 kafka 消费端弄丢了数据唯一可能导致消费者弄丢数据的情况,就是说,你消费到了这个消息,然后消费者那边自动提交了 offset,让 Kafka 以为你已经消费好了这个消息,但其实你才刚准备处理这个消息,你还没处理,你自己就挂了,此时这条消息就丢咯。这不是跟 RabbitMQ 差不多吗,大家都知道 Kafka ... 阅读全文 »
如何保证消息的顺序性 发表于 2018-03-08 | 分类于 kafka 面试官心理分析其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。 面试题剖析我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql ... 阅读全文 »
Flink核心框架的执行流程 发表于 2018-03-05 | 分类于 flink Flink核心框架的执行流程前言Flink是大数据处理领域最近很火的一个开源的分布式、高性能的流式处理框架,其对数据的处理可以达到毫秒级别。本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程,希望读者可以借此更加深入的理解Flink逻辑。 本文跳过了一些基本概念 ... 阅读全文 »
SQL查找连续出现的数字 发表于 2018-03-04 | 分类于 dw 123456789101112SELECT DISTINCT num ConsecutiveNumsFROM ( SELECT num , count(1) rn2 FROM ( SELECT Id , Num , ... 阅读全文 »
SQL 统计连续出现的次数 发表于 2018-03-04 | 分类于 dw 问题:一个表记录了某论坛会员的发贴情况,存储了会员uid ,发贴时间post_time和内容content。找出连续发贴三次及以上的会员。 123456789select b.uid from(select a.uid uid,a.row2-a.row1,count(uid) from(select ... 阅读全文 »
Druid数据写入与查询 发表于 2018-03-03 | 分类于 druid 数据存储格式 数据摄入 实时写入方式standalone indexing-service 思考 问题 Tranquility 0.10.1版本 推荐利用lamda架构,利用离线架构修复实时数据如果离线数据segment和实时数据的segment时间段重合的,此时会加载版本高的 ... 阅读全文 »
Druid 发表于 2018-03-03 | 分类于 druid Druid是什么也是基于列存的。 对比时间序列数据库TSDB 对比分布式OLAP数据库es本身是检索(全恩)系统,现在也可以增强聚合计算,不过olap上有些短板。kylin是需要预计算的,批量构建cube的过程很难满足低延时的数据写入。presto需要起一堆的进程去查hdfs文件,一般也很难 ... 阅读全文 »
from size, scroll 和 search after 发表于 2018-03-02 | 分类于 elasticsearch from sizefrom size是最家喻户晓的,也是最暴力的,需要查询from + size 的条数时,coordinate node就向该index的其余的shards 发送同样的请求,等汇总到(shards * (from + size))条数时在coordinate node再做一次排序, ... 阅读全文 »
flink 双流join 发表于 2018-02-28 | 分类于 flink Flink 双数据流转换为单数据流操作的运算有cogroup, join和coflatmap Join:只输出条件匹配的元素对。 CoGroup: 除了输出匹配的元素对以外,未能匹配的元素也会输出。 CoFlatMap:没有匹配条件,不进行匹配,分别处理两个流的元素。在此基础上完全可以实现jo ... 阅读全文 »
flink vs storm 发表于 2018-02-28 | 分类于 flink VS Apache Storm 只能处理流数据,没有批处理的能力。 事实上,Flink的流式处理引擎和Storm很相似,比如 Flink的并行任务和Storm的bolt很相似。他俩都是通过流水线数据的传输来降低数据延时。然而Flink 提供了很多跟高级的api ,Flink的DataStream提供 ... 阅读全文 »