ClickHouse

大厂高频面试题-连续登录问题

梦想的初衷 提交于 2020-11-14 04:02:13
1 背景 对于数据开发人员来说,手写sql是比较熟悉的了,就有这样一道题,面试时需要手写sql,这就是非常经典的连续登录问题,大厂小厂都爱问,这种题说简单也不简单,说难也不难,关键是要有思路。 2 真题 hql统计连续登陆的三天及以上的用户 这个问题可以扩展到很多相似的问题:连续几个月充值会员、连续天数有商品卖出、连续打车、连续逾期。 数据提供 用户ID、登入日期 user01,2018-02-28 user01,2018-03-01 user01,2018-03-02 user01,2018-03-04 user01,2018-03-05 user01,2018-03-06 user01,2018-03-07 user02,2018-03-01 user02,2018-03-02 user02,2018-03-03 user02,2018-03-06 输出字段 +---------+--------+-------------+-------------+--+ | uid | times | start_date | end_date | +---------+--------+-------------+-------------+--+ 3 群内讨论 这道题在群里发出后,大家就展开了激烈的讨论: 4 解决方案 可以看出来,有很多种不同的解决方案。

交互式分析领域,为何ClickHouse能够杀出重围?

家住魔仙堡 提交于 2020-11-05 14:15:33
导语 | 在百花齐放的交互式分析领域,ClickHouse 绝对是后起之秀,它虽然年轻,却有非常大的发展空间。本文将分享 PB 级分析型数据库 ClickHouse 的应用场景、整体架构、众多核心特性等,帮助理解 ClickHouse 如何实现极致性能的存储引擎,希望与大家一起交流。文章作者:姜国强,腾讯实时检索研发工程师。 一、交互式分析之 ClickHouse 1. 交互式分析简介 交互式分析,也称 OLAP(Online Analytical Processing),它赋予用户对海量数据进行多维度、交互式的统计分析能力,以充分利用数据的价值进行量化运营、辅助决策等,帮助用户提高生产效率。 交互式分析主要应用于统计报表、即席查询(Ad Hoc)等领域,前者查询模式较固定,后者即兴进行探索分析。代表场景例如:移动互联网中 PV、UV、活跃度等典型实时报表;互联网内容领域中人群洞察、关联分析等即席查询。 交互式分析是数据分析的一种重要方式,与离线分析、流式分析、检索分析一起,共同组成完整的数据分析解决方案,在互联网、物联网快速发展的背景下,从不同维度满足用户对海量数据的全方位分析需求。 相比专注于事务处理的传统关系型数据库,交互式分析解决了 PB 级数据分析带来的性能、扩展性问题。 相比离线分析长达 T + 1 的时效性、流式分析较为固定的分析模式、检索分析受限的分析性能

通过Bifrost工具将MySQL的数据同步到ClickHouse

此生再无相见时 提交于 2020-11-05 07:14:06
Bifrost ---- 面向生产环境的 MySQL 同步到Redis,ClickHouse等服务的异构中间件 Bifrost 支持界面上点点点进行配置将MySQL 里的数据 同步到 ClickHouse 1. Bifrost 安装 1.1 源码安装 git clone -b v1.6.x https://github.com/brokercap/Bifrost.git ./BifrostV1.6.x cd ./BifrostV1.6.x ./build.sh linux amd64 cd tags/v1.6.0-beta.01/bifrost_v1.6.0-beta.01_Linux-amd64-bin #根据需要自行修改配置文件 vim etc/Bifrost.ini cd ./bin/ ./Biforst-server start 当输出下面内容的下时候,说明启动成功了 ___ ___ _ ( _'\ _ /'___) ( )_ | (_) )(_)| (__ _ __ _ ___ | ,_) Bifrost v1.6.0-beta.01 amd64 Listen https://0.0.0.0:21036 | _ <'| || ,__)( '__)/'_'\ /',__)| | | (_) )| || | | | ( (_) )\__, \| |_ Pid: 36919 (

从提高 Elasticsearch 搜索体验说开去......

ぐ巨炮叔叔 提交于 2020-10-28 07:53:43
1、实战问题 球友提问:怎么搜索才能使得结果是最好的呢? 我这边一个搜索功能,实现做法就是将用ik分词器配合multi查询实现的。 中途也追加了客户所在领域相关词汇字典。 但是客户一直反馈搜索体验不好。 如果想要提高搜索体验还能从那些方面入手呢? 来自:死磕 Elasticsearch 知识星球 这个问题非常有代表性,我在实际产品开发中也遇到过。 2、从几个例子说搜索体验 示例一:“慕X网”输入“触发器”的搜索截图。 注意:我输入的是“触发器”,返回结果第一条没有问题,其他几条有关:“触”、“发”的,可以说和我的搜索没有关系。 站在用户体验的角度,我认为:体验很差,返回了很多不相关的数据。 示例二:某题库APP,不支持跳转翻页。 如下所示,题库共1703题,包含:判断题、选择题。 只支持:点击:上一题、下一题。 实际场景: 当做了100道、200道的时候,只有选择题;到底多少选择题? 当退出后,需要点击几百下进入自己上次做到的最后一道题..... 这不是用户体验差,这是没有用户体验,开发者完全没有动脑子的设计,用户会"怀疑人生"。 示例三:电商搜索“秋天第一条秋裤”,该返回什么? 放大 查看图片,亮点自现 这是个见仁见智的问题,究竟返回什么,各个电商公司都有自己的评判。 但,单纯站在用户的角度,高下立判。 铭毅一句话点评: 拼多多 “活该你发展快”,的确返回结果就是预期结果

睡前必读 | 如何系统性地学习分布式系统?

荒凉一梦 提交于 2020-10-28 00:07:33
点击上方“朱小厮的博客”,选择“设为星标” 后台回复"书",获取 导语:本文的缘起是回答知乎圆桌会议「分布式系统之美」的问题「如何系统性地学习分布式系统?」,后面稍微整理了一下,形成了这一篇文章(知乎 ID:kylin)。 前 言 学习一个知识之前,我觉得比较好的方式是先理解它的来龙去脉:即这个知识产生的过程,它解决了什么问题,它是怎么样解决的,还有它引入了哪些新的问题(没有银弹),这样我们才能比较好的抓到它的脉络和关键点,不会一开始就迷失在细节中。 所以,在学习分布式系统之前,我们需要解决的第一个问题是:分布式系统解决了什么问题? 分布式系统解决了什么问题? 第一个是单机性能瓶颈导致的成本问题,由于摩尔定律失效,廉价 PC 机性能的瓶颈无法继续突破,小型机和大型机能提高更高的单机性能,但是成本太大高,一般的公司很难承受; 第二个是用户量和数据量爆炸性的增大导致的成本问题,进入互联网时代,用户量爆炸性的增大,用户产生的数据量也在爆炸性的增大,但是单个用户或者单条数据的价值其实比软件时代(比如银行用户)的价值是只低不高,所以必须寻找更经济的方案; 第三个是业务高可用的要求,对于互联网的产品来说,都要求 7 * 24 小时提供服务,无法容忍停止服务等故障,而要提供高可用的服务,唯一的方式就是增加冗余来完成,这样就算单机系统可以支撑的服务,因为高可用的要求,也会变成一个分布式系统。

数据源管理 | 搜索引擎框架,ElasticSearch集群模式

ぐ巨炮叔叔 提交于 2020-10-26 23:37:15
本文源码: GitHub·点这里 || GitEE·点这里 一、集群环境搭建 1、环境概览 ES版本6.3.2,集群名称esmaster,虚拟机centos7。 服务群 角色划分 说明 en-master master 主节点:esnode1 en-node01 slave 从节点:esnode2 en-node02 slave 从节点:esnode3 ElasticSearch基础功能和用法: MySQL数据全量和增量方式向ES搜索引擎同步 Linux系统Centos7环境搭建ElasticSearch中间件 SpringBoot2整合ElasticSearch搜索引擎框架 在真正海量数据的业务场景中,ElasticSearch搜索引擎都是需要集群化管理的,实时搜素几十亿的数据十分常见。 2、集群配置 配置文件 vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml 主节点配置 # 集群主节点配置 cluster.name: esmaster node.master: true # 节点名称 node.name: esnode1 # 开发访问 network.host: 0.0.0.0 从节点配置 注意这里两个从节点配置,node.name分别配置为esnode2和esnode3即可。 # 集群名称 cluster.name: