赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
不支持高并发
没有完整的事务支持
稀疏索引导致 ClickHouse 不擅长细粒度或者 key-value 类型数据的查询需求
缺少高频率,低延迟的修改或删除数据的能力
两张大表join性能不高
作为一个DBMS,它具备了一些基本功能,如下所示:
DDL(数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。
DML(数据操作语言):可以动态查询、插入、修改或删除数据。
ClickHouse提供了DELETE和UPDATE的能力,这类操作被称为Mutation操作,是一种“很重”的操作,更适用于批量数据的修改和删除;
ALTER TABLE 表名 DELETE WHERE nodeid = ‘’;
ALTER TABLE表名 UPDATE 字段名=新值 WHERE xxx=xxx
权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。
数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。
分布式管理:提供集群模式,能够自动管理多个数据库节点。
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
需要下载以下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命令对数据库进行访问
1、单机环境
官方最新驱动
com.clickhouse
clickhouse-jdbc
0.4.1
all
获取单节点连接代码示例:
2、集群环境
1 使用Nginx、F5等三方软件或设备做负载均衡。代码中访问地址为负载均衡ip地址。
2 使用jdbc的负载均衡功能,此种方式没有故障转移功能。
基础类型:
数值类型:整数、浮点数和定点数三类
字符串类型:String、FixedString和UUID三类
时间类型:DateTime、DateTime64和Date三类
复合类型:
Array、Tuple、Enum和NestedNested四类
复合类型:
Nullable、Domain(IPv4和IPv6)
1、Atomic
默认引擎,在此引擎下可以使用任意类型的表引擎。
2、MySQL
MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。引擎会将对其的查询转换为MySQL语法并发送到MySQL服务器中。
3、MaterializedMySQL
试验性特性,ClickHouse服务器作为MySQL副本工作。它读取binlog并执行DDL和DML查询。
4、Lazy
在最后一次访问之后,只在RAM中保存expiration_time_in_seconds秒。只能用于*Log表。
5、PostgreSQL
允许连接到远程PostgreSQL服务。支持读写操作(SELECT和INSERT查询),以在ClickHouse和PostgreSQL之间交换数据。
6、MaterializedPostgreSQL
同MaterializedMySQL
7、[experimental]Replicated
它支持通过将DDL日志写入ZooKeeper并在给定数据库的所有副本上执行的元数据复制。
一个ClickHouse服务器可以同时运行和更新多个复制的数据库。但是同一个复制的数据库不能有多个副本。
8、SQLite
允许连接到SQLite数据库,并支持ClickHouse和SQLite交换数据, 执行 INSERT 和 SELECT 查询。
MergeTree作为家族中最基础的表引擎,提供了主键索引、数据分区和数据TTL等基本能力,家族中其他的表引擎则在MergeTree的基础之上各有所长。
PARTITION BY:分区键。指定表数据以何种标准进行分区。分区键既可以是单列字段,也可以多个列字段,也支持使用列表达式。
ORDER BY:排序键,用于指定在一个数据片段内,数据以何种标准排序。默认情况下主键(PRIMARY KEY)与排序键相同。
PRIMARY KEY:主键。声明后会依照主键字段生成一级索引。默认情况下,主键与排序键(ORDER BY)相同,所以通常使用 ORDER BY 代为指定主键。如果同时声明了ORDER BY与PRIMARY KEY,MergeTree会强制要求PRIMARY KEY列字段必须是ORDER BY的前缀。
ClickHouse拥有合并树(MergeTree) 、外部存储、内存、文件、接口和其他6大类20多种表引擎。而在这众多的表引擎中,又属合并树(MergeTree)表引擎及其家族系列(*MergeTree)最为强大,在生产环境的绝大部分场景中,都会使用此系列的表引擎。
zookeeper配置如下:
zookeeper配置如下:
<zookeeper>
<node>
<host>td65</host>
<port>2181</port>
</node>
<node>
<host>td66</host>
<port>2181</port>
</node>
</zookeeper>
<test_s1r3>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>ck65</host>
<port>9000</port>
</replica>
<replica>
<host>ck66</host>
<port>9000</port>
</replica>
<replica>
<host>ck67</host>
<port>9000</port>
</replica>
</shard>
</test_s1r3>
<macros>
<shard>01</shard>
<replica>每台机器不同</replica>
</macros>
详细内容请下载 ClickHouse数据库详解和应用实践
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。