ClickHouse

基于ClickHouse造实时计算引擎,百亿数据秒级响应!

China☆狼群 提交于 2020-10-24 00:44:05
前言 为了能够实时地了解线上业务数据,京东算法智能应用部打造了一款基于ClickHouse的实时计算分析引擎,给业务团队提供实时数据支持,并通过预警功能发现潜在的问题。 本文结合了引擎开发过程中对资源位数据进行聚合计算业务场景,对数据实时聚合计算实现秒级查询的技术方案进行概述。ClickHouse是整个引擎的基础,故下文首先介绍了ClickHouse的相关特性和适合的业务场景,以及最基础的表引擎MergeTree。接下来详细的讲述了技术方案,包括Kafka数据消费到数据写入、结合ClickHouse特性建表、完整的数据监控,以及从几十亿数据就偶现查询超时到几百亿数据也能秒级响应的优化过程。 ClickHouse ClickHouse是Yandex公司内部业务驱动产出的列式存储数据库。为了更好地帮助自身及用户分析网络流量,开发了ClickHouse用于在线流量分析,一步一步最终形成了现在的ClickHouse。在存储数据达到20万亿行的情况下,也能做到90%的查询能够在1秒内返回结果。 ClickHouse能够实现实时聚合,一切查询都是动态、实时的,用户发起查询的那一刻起,整个过程需要能做到在一秒内完成并返回结果。ClickHouse的实时聚合能力和我们面对的业务场景非常符合。 ClickHouse支持完整的DBMS。支持动态创建、修改或删除数据库、表和视图,可以动态查询、插入

小红书推荐大数据在阿里云上的实践

血红的双手。 提交于 2020-10-22 12:09:04
简介: 本篇内容主要分三个部分,在第一部分讲一下实时计算在推荐业务中的使用场景。第二部分讲一下小红书是怎么使用Flink的一些新的功能。第三部分主要是讲一些OLAP的实时分析的场景,以及和阿里云MC-Hologres的合作。 作者:小红书推荐工程负责人 郭一 小红书推荐业务架构 首先这个图上画了一些比较典型的推荐业务,使用大数据的主要模块,其中最左边是线上推荐引擎,一般推荐引擎会分成召回、排序、后排等几步,在这里就不细说了。主要是从大数据的角度来说,推荐引擎主要是运用预测模型来预估用户对每个候选笔记的喜欢程度。根据一定的策略来决定给用户推荐哪些笔记。推荐模型在运用时需要抓取笔记特征,这些特征又会回流到我们的训练数据中,来训练新的模型。推荐引擎返回笔记之后,用户对笔记的消费行为,包括展示、点击、点赞等行为,会形成用户的行为流。这些用户行为流结合了特征流,从而产生了模型训练的数据来迭代模型。结合用户和笔记的信息之后,就会产生用户和笔记画像和推荐业务所用到的一些分析报表。 经过一年多的改造,小红书在推荐场景中,除了从分析数据到策略这一块,需要人为参与迭代策略之外,其他的模块的更新基本上是做到了实时或近实时的进行。 推荐业务的实时计算应用 这里稍微展开讲一下特征和用户行为的数据回流之后的实时计算,以及我们怎么使用他们产生的数据。在推荐引擎产生特征流的时候,特征流因为量特别大

PostgreSQL libpq 客户端接口(一)

戏子无情 提交于 2020-10-22 10:27:35
前言 Libpq 是为 C 语言开发这提供的关于 PostgreSQL 的接口。Libpq 由相关库函数组成,可以允许客户端程序通过将查询传递给 PostgreSQL 后台服务器并接收这些查询返回的结果。同时,libpq 也是其它几个 PostgreSQL 应用程序接口的基础引擎,包括 C++,Perl,Python,Tcl和ECPGC编程的嵌入式 SQL。 连接字符串 以下函数处理 PostgreSQL 后台服务器的连接。一个应用程序同时可以有多个打开的连接,这也是 PostgreSQL 服务器能够同时访问多个库的原因。每一个连接都通过 PGconn 对象表示,该对象可以从函数 PQconnectdb,PQconnectdbParams 中或者 PQsetdbLogin 获取信息。需要注意的是,这些对象通常返回一个非空的对象指针。除非由于内存太小导致无法分配 PGconn 对象。PQstatus 函数用来检查在执行查询前连接是否成功的状态。 函数介绍如下: PQconnectdbParams 该参数用来创建连接到数据库服务器的新的连接。如下: PGconn *PQconnectdbParams(const char * const *keywords, const char * const *values, int expand_dbname); 该函数使用传入的两个 NULL

OLAP数据库ClickHouse,补充你的弹药库

戏子无情 提交于 2020-10-20 04:13:54
ClickHouse是由俄罗斯搜索引擎公司Yandex公司开源的OLAP数据库,性能表现优异,官方的基准测试中,平响速度是Hive的126倍,MySQL的429倍。 从2016年开源以来,飞速发展,在官网的使用者列表里,你会发现有许多国内互联网公司在用,有云产品、日志产品、银行数据分析等等。每个后面都会有相对应的PPT或视频。 官网在介绍ClickHouse是什么时,用下面两张图形象的来传达一个「列式」数据库带来的查询速度的提升,以及在OLAP是多么的合适。 短短几年的发展,从DB-Engines上的这条红线就能看出势头迅猛 除了基础数据类型外,ClickHouse还提供了对复合数据类型的支持,像数组、元组、枚举和嵌套,通过 array、json、tuple、set等复合数据类型,业务Schema 能更灵活。 由于ClickHouse设计之初,就是OLAP的需求,所以提供的特性,自然契合和满足OLAP的场景,比如下面的特点: 读多于写 不同于事务处理(OLTP)的场景,比如电商场景中加购物车、下单、支付等需要在原地进行大量insert、update、delete操作,数据分析(OLAP)场景通常是将数据批量导入后,进行任意维度的灵活探索、BI工具洞察、报表制作等。数据一次性写入后,分析师需要尝试从各个角度对数据做挖掘、分析,直到发现其中的商业价值、业务变化趋势等信息

篇三|ClickHouse的数据类型

谁说我不能喝 提交于 2020-10-16 18:21:09
ClickHouse提供了许多数据类型,它们可以划分为基础类型、复合类型和特殊类型。我们可以在 system.data_type_families 表中检查数据类型名称以及是否区分大小写。 SELECT * FROM system.data_type_families 上面的系统表,存储了ClickHouse所支持的数据类型,注意不同版本的ClickHouse可能数据类型会有所不同,具体如下表所示: ┌─name────────────────────┬─case_insensitive─┬─alias_to────┐ │ IPv6 │ 0 │ │ │ IPv4 │ 0 │ │ │ LowCardinality │ 0 │ │ │ Decimal │ 1 │ │ │ String │ 0 │ │ │ Decimal64 │ 1 │ │ │ Decimal32 │ 1 │ │ │ Decimal128 │ 1 │ │ │ Float64 │ 0 │ │ │ Float32 │ 0 │ │ │ Int64 │ 0 │ │ │ SimpleAggregateFunction │ 0 │ │ │ Array │ 0 │ │ │ Nothing │ 0 │ │ │ UInt16 │ 0 │ │ │ Enum16 │ 0 │ │ │ UInt32 │ 0 │ │ │ Date │ 1 │ │