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数据库详解和应用实践

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 系统磁盘空间扩容

根据提示可以看到此系统的磁盘是 50G 的&#xff0c;但是实际适用有28G左右可以扩容20G 1、磁盘分区 m 查看帮助信息 n&#xff08;表示增加分区&#xff09; p&#xff08;创建主分区&#xff09; partition number 输入3&#xff08;因为上面已经有两个分区 sda1 和 sda2&…

Qt中图片旋转缩放操作

在我们开发过程中&#xff0c;难免会遇到加载图片的问题&#xff0c;在上一个开发项目里我就遇到了图片缩放的问题&#xff0c;所以&#xff0c;我决定将这一部分好好研究&#xff0c;记录下来&#xff0c;希望对大家有帮助哟~ 在讲解之前&#xff0c;我们先看一看具体的展示效…

react antd,echarts全景视图

1.公告滚动&#xff0c;40s更新一次 2.echarts图标 左右轮播 60s更新一次 3.table 表格 import { useState, useEffect } from react;import Slider from react-slick; import slick-carousel/slick/slick-theme.css; import slick-carousel/slick/slick.css;import Layout fro…

MongoDB批量写入操作

一、概述 MongoDB为客户端提供了批量执行写入操作的能力。批量写入操作影响单个集合。MongoDB允许应用程序确定批量写入操作所需的可接受确认级别。 db.collection.bulkWrite&#xff08;&#xff09;方法提供了执行批量插入、更新和删除操作的能力。 MongoDB还支持通过db.col…

使用Apache POI将数据写入Excel文件

首先导入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version> </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>po…

Spring Cloud Gateway 缓存区异常

目录 1、问题背景 2、分析源码过程 3、解决办法 最近在测试环境spring cloud gateway突然出现了异常&#xff0c;在这里记录一下&#xff0c;直接上干货 1、问题背景 测试环境spring cloud gateway遇到以下异常 DataBufferLimitException: Exceeded limit on max bytes t…

Spring 面试题学习笔记整理

Spring 面试题学习笔记整理 Spring的理解IOC读取 xml注入 配置过程解析注解注入过程 高频 &#xff1a;IOC 理解 及原理 底层实现IoC的底层实现高频&#xff1a;Bean的生命周期&#xff08;图解&#xff09;高频&#xff1a;Bean的生命周期&#xff08;文解&#xff09;扩展知识…

STM32和ESP8266的WiFi模块控制与数据传输

基于STM32和ESP8266 WiFi模块的控制与数据传输是一种常见的嵌入式系统应用。在这种应用中&#xff0c;STM32作为主控制器负责控制和与外部传感器交互&#xff0c;而ESP8266 WiFi模块则用于实现无线通信和数据传输。本文将介绍如何在STM32上控制ESP8266模块&#xff0c;建立WiFi…

【React系列】React生命周期、setState深入理解、 shouldComponentUpdate和PureComponent性能优化、脚手架

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 生命周期 1.1. 认识生命周期 很多的事物都有从创建到销毁的整个过程&#xff0c;这个过程称之为是生命周期&…

3D 纹理的综合指南

在线工具推荐&#xff1a;3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 我们经常看到超现实主义的视频游戏和动画电影角色出现在屏幕上。他们皮肤上的…

EasyRecovery2024永久免费版电脑数据恢复软件

EasyRecovery是一款操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序&#xff0c;它不会往源驱上写任何东西&#xff0c;也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或者丢失的文件&#xff0c;其支持的媒体介质包括&#xff1a;硬盘驱动器、光驱、…

嵌入式(三)中断解析 | 中断基本概念 CC2530中断系统 中断编程全解析

文章目录 1中断的概念和作用1.1 概念1.2 作用1.3 中断 其他概念 2. CC2530的中断系统3 中断编程3.1 中断配置3.1.1 使能端口组的中断功能3.1.2 使能当前端口组有哪些端口引脚中断3.1.3 设置中断触发方式 3.2 中断处理函数编写3.2.1 基本编写格式3.2.2 识别触发外部中断的端口Po…

实验笔记之——bug:in /usr/local/lib/libfmt.a(format.cc.o) is referenced by DSO

最近在编译D-MAP的时候遇到下面的问题 在github issue好像也有类似的提问 compiling error with fmt Issue #4 hku-mars/D-Map GitHub 这应该是fmt配置没有连接上。为此寻找所有包含的fmt文件&#xff0c;在头文件处加入 #define FMT_HEADER_ONLY #include "fmt/for…

Java学习苦旅(十九)——详解Java的堆和优先级队列

本篇博客将详细讲解堆和优先级队列。 文章目录 堆概念向下调整 优先级队列概念内部原理入队列出队列返回队首元素java中的优先级队列常用操作 topK问题结尾 堆 概念 堆逻辑上是一棵完全二叉树。 堆物理上是保存在数组中。 满足任意结点的值都大于其子树中结点的值&#xff…

北京大学漏洞报送证书

获取来源&#xff1a;edusrc&#xff08;教育漏洞报告平台&#xff09; url&#xff1a;教育漏洞报告平台(EDUSRC) 兑换价格&#xff1a;30金币 获取条件&#xff1a;北京大学任意中危或以上级别漏洞

【React系列】Portals、Fragment

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) Portals 某些情况下&#xff0c;我们希望渲染的内容独立于父组件&#xff0c;甚至是独立于当前挂载到的DOM元素中&am…

浅谈基于物联网的建筑物综合环境能耗监测管理系统

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;随着社会经济的快速发展&#xff0c;我国建筑能源消费总量逐年增加&#xff0c;占社会能源消费总量的近30%。国际发达国家建设部科技司的相关研究表明&#xff0c;随着城市化进程的加快和人民生活质量的提高&…

案例091:基于微信小程序的农场驿站平台的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…

日常工作 经验总结

1,在使用vue2开发项目时,快捷有效的组件化component 若有参数传递时,可以通过这样传递 在component中: 2,上拉加载,下拉刷新 若是使用局部进行上拉加载 下拉刷新 且需要用到scroll-view时 那么需要切记scroll-view在内被mescroll-uni包裹。若场景有限 对于无数据显示…