ClickHouse数据库详解和应用实践

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 概述
    • 1.适用场景
    • 2.不适用场景
  • 一、核心特性
    • 1.完备的DBMS功能
    • 2.列式存储与数据压缩
  • 二、安装部署
    • 1.在线安装
    • 2.离线安装
  • 三、jdbc访问
  • 总结


概述

  • ClickHouse 是一个用于联机分析 (OLAP) 的开源的列式数据库管理系统 (DBMS)。来自于俄罗斯本土搜索引擎企业 Yandex 公司。
  • ClickHouse具有ROLAP、在线实时查询、完整的 DBMS 功能支持、列式存储、支持批量更新、拥有非常完善的SQL支持和函数、支持高可用、不依赖 Hadoop 复杂生态、开箱即用等许多特点。
  • 在 1 亿数据集体量的情况下,ClickHouse 的平均响应速度是 Vertica 的 2.63 倍、InfiniDB 的 17 倍、MonetDB 的 27 倍、Hive 的 126 倍、MySQL 的429 倍以及Greenplum 的 10 倍。

1.适用场景

  • ClickHouse在存储数据超过20万亿行的情况下,做到了90%的查询都能够在1秒内返回的惊人之举。可以说ClickHouse具备了人们对一款高性能OLAP数据库的美好向往,所以它基本能够胜任各种数据分析类的场景,并且随着数据体量的增大,它的优势也会变得越为明显。
  • ClickHouse非常适用于商业智能领域(也就是我们所说的BI领域),除此之外,它也能够被广泛应用于广告流量、Web、App流量、电信、金融、电子商务、信息安全、实时数仓、物联网等众多其他领域。
  • 在国内的应用:
    今日头条内部用 ClickHouse来做用户行为分析,几千个 ClickHouse 节点,单集群最大 1200 节点,总数据量几十PB,日增原始数据300TB左右。
    腾讯内部用 ClickHouse做游戏数据分析,并且为之建立了一整套监控运维体系。
    携程内部80%的业务都跑在ClickHouse 上。每天数据增量十多亿,近百万次查询请求。
    快手内部也在使用 ClickHouse,存储总量大约10PB,每天新增 200TB,90% 查询小于 3S。

2.不适用场景

不支持高并发
没有完整的事务支持
稀疏索引导致 ClickHouse 不擅长细粒度或者 key-value 类型数据的查询需求
缺少高频率,低延迟的修改或删除数据的能力
两张大表join性能不高


一、核心特性

1.完备的DBMS功能

作为一个DBMS,它具备了一些基本功能,如下所示:
DDL(数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。
DML(数据操作语言):可以动态查询、插入、修改或删除数据。
ClickHouse提供了DELETE和UPDATE的能力,这类操作被称为Mutation操作,是一种“很重”的操作,更适用于批量数据的修改和删除;
ALTER TABLE 表名 DELETE WHERE nodeid = ‘’;
ALTER TABLE表名 UPDATE 字段名=新值 WHERE xxx=xxx

权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。
数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。
分布式管理:提供集群模式,能够自动管理多个数据库节点。

2.列式存储与数据压缩

  • 列式存储和数据压缩,是高性能数据库必不可少的特性。列式存储和数据压缩通常是伴生的,因为一般来说列式存储是数据压缩的前提。
  • 列式存储避免了多余的数据扫描
  • ClickHouse默认使用LZ4算法压缩,在Yandex的生产环境中,数据总体的压缩比可以达到8:1。

二、安装部署

1.在线安装

ClickHouse 可以通过源码编译、在线安装、Docker 镜像和 RPM 等多种方法进行安装。
Yum在线安装命令:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
修改配置文件config.xml,允许所有ip访问
<listen_host>::</listen_host>
启动clickhouse
sudo /etc/init.d/clickhouse-server start

2.离线安装

需要下载以下4个安装包文件:
clickhouse-client-21.7.4.18-2.noarch.rpm
clickhouse-common-static-21.7.4.18-2.x86_64.rpm
clickhouse-server-21.7.4.18-2.noarch.rpm
clickhouse-server-common-21.7.4.18-2.x86_64.rpm
执行如下命令后即可安装RPM文件:
rpm -ivh ./*.rpm

可以使用clickhouse-client命令对数据库进行访问

三、jdbc访问

1、单机环境
官方最新驱动

com.clickhouse
clickhouse-jdbc
0.4.1
all

获取单节点连接代码示例:
在这里插入图片描述

2、集群环境
1 使用Nginx、F5等三方软件或设备做负载均衡。代码中访问地址为负载均衡ip地址。
2 使用jdbc的负载均衡功能,此种方式没有故障转移功能。
在这里插入图片描述


总结

详细内容请下载 ClickHouse数据库详解和应用实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324821.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPT插件-大珩助手-免费功能-特殊格式介绍

上、下标切换 直接切换选中的字符为上、下标。 大小金额 支持超大金额的大写金额转换 当前日期 本次打开文件的时间 转二维码 将当前选中的文字&#xff0c;转为二维码图片&#xff0c;并插入到PPT当前位置 特殊字符 内置常用的特殊字符&#xff0c;点击使用 软件介绍 …

202366读书笔记|《人间小满》——心静江湖远,取舍有道、进退有度

202366读书笔记|《人间小满》——心静江湖远&#xff0c;取舍有道、进退有度 《人间小满》作者姑苏阿焦。很棒的一本书&#xff0c;有扎根生活的无奈&#xff0c;但处处透露着热爱生活的蓬勃气息。是那种有英雄主义热爱生活的精神。非常非常非常值得一读的小书。 部分节选如下:…

(八)矩阵按键

文章目录 本章学习类比独立按键矩阵按键原理图三行代码法简单概述代码书写键码推算如何使用短按键长按键不松手长按键松手长按键 状态机法简单概述代码书写键码推算如何使用短按键长按键不松手长按键松手长按键 部分代码展示现象演示 本章学习类比独立按键 矩阵按键原理图 三行…

图纸防泄密软件有哪些用处?

公司电脑文件数据透明加密防泄密软件系统——德人合科技 提供软件系统及技术支持 防止公司内部数据泄密 通过动态加解密技术&#xff0c;有效防止公司内部数据泄密。即员工在创建、编辑文档时会被自动加密存放在硬盘上&#xff0c;防止员工故意或由于疏忽而造成泄密或对文件恶…

贝锐花生壳全新功能:浏览器一键远程访问SSHRDP远程桌面

为了满足特定场景的远程访问需求&#xff0c;如&#xff1a;远程群晖NAS设备、远程SQL Server数据库/MySQL数据库、3389远程桌面&#xff08;RDP远程桌面&#xff09;、远程SSH、我的世界游戏联机…… 贝锐花生壳推出了场景映射服务&#xff0c;不仅提供满足相应场景的网络带宽…

gitlab高级功能之Kubernetes Agent介绍

文章目录 1. 前置条件2. 简介3. GitLab Kubernetes Agent 的部署3.1 启用 Agent 服务端3.2 创建 Agent 配置和清单仓库 4. 安装agent4.1 连接k8s集群4.2 在集群中部署4.3 修改资源清淡&#xff0c;调整pod的副本数 5. 思考 1. 前置条件 gitlab 14.5 专业版k8s集群helm客户端工…

【DevOps-07-2】Sonarqube基本使用

一、简要说明 Sonar Qube的使用方式很多&#xff0c;Maven可以整合&#xff0c;也可以采用sonar-scanner的方式&#xff0c;再查看Sonar Qube的检测效果 Sonarqube集成在Maven实现代码检测使用sonar-scanner客户端的方式 二、Sonarqube管理后台安装中文插件 1、登录Sonarqube管…

使用(?<!pattern) 负向后行断言正则表达式提取一个双引号开头和结尾的字符串

如下是一段java代码&#xff0c;我想用正则表达从中提取代码中的字符串 cond_buffer.append(" ORDER BY \"name\" \"").append(join(order_by_column,"\","));java是通过前后用双引号包含定义字符串的。但简单使用正则表达式".…

【SpringMVC】常用注解

什么是MVC&#xff1f; MVC是一种程序分层开发模式&#xff0c;分别是Model&#xff08;模型&#xff09;&#xff0c;View&#xff08;视图&#xff09;以及Controller&#xff08;控制器&#xff09;。这样做可以将程序的用户界面和业务逻辑分离&#xff0c;使得代码具有良好…

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode&q…

java大数据hadoop2.92安装伪分布式文件系统

Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster. 1、解压缩到某个路径 /usr/local/hadoop 2、修改配置文件 /usr/local/hadoop/etc/hadoop/hadoop-env.sh export JAVA_HOME/usr/local/javajdk 3、修改配置文件 /usr/local/hadoop/etc/hadoop/core-sit…

聊聊spring事务12种场景,太坑了

前言 对于从事java开发工作的同学来说&#xff0c;spring的事务肯定再熟悉不过了。 在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同时写入多张表的数据。为了保证操作的原子性&#xff08;要么同时成功&#xff0c;要么同时失败&#xff09;&#xff0c;避免数…