MPP数据库入门介绍及集群部署

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: MPP数据库入门介绍及集群部署

ClickHouse介绍

ClickHouse是一个开源的分布式列式数据库管理系统,专门用于在线分析处理(OLAP)。它被设计用于高速查询和分析大规模数据集,适用于需要进行实时分析和快速数据处理的场景。以下是关于ClickHouse的一些介绍和必要性:

1. 特点:

 - 列存储:数据按列存储,这样可以更有效地处理大量数据。

 - 高性能:ClickHouse优化了查询引擎来处理海量数据,速度快且稳定。

 - 扩展性:支持分布式架构,可以水平扩展以应对大规模数据处理需求。

 - 实时分析:适用于实时查询和分析,可快速生成报表和数据分析。

 - 灵活性:支持SQL查询语言,易于使用和集成到现有系统中。

2. 必要性:

 - 处理大规模数据:ClickHouse适用于需要处理大规模数据并进行实时分析的场景,如大数据分析、日志分析等。

 - 实时性:对于需要快速查询和分析数据以获得实时反馈的业务,ClickHouse可以提供高效率和性能。

 - 数据仓库:作为数据仓库,ClickHouse可以帮助组织存储和分析不断增长的数据,并提供快速的查询结果。

 - 支持多种数据类型:ClickHouse支持各种数据类型和复杂的查询,适用于不同类型的数据分析。

 - 容错和可靠性:作为分布式系统,ClickHouse具有高可用性和容错能力,确保数据的安全性和稳定性。

总的来说,ClickHouse是一种强大的工具,适合处理大量数据的实时分析和查询需求。对于那些需要高性能、可扩展性和灵活性的数据处理场景来说,ClickHouse是一个非常有必要的部署选择。

一、安装前准备

1、修改主机名

[root@node1 ~]# hostnamectl set-hostname node1

在hosts文件里面做映射

安装jdk。

二、安装zookeeper集群

1、将zookeeper的压缩包上传到/tmp目录

2、解压到/usr/local目录下

[root@node1 tmp]# tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/

进入到zookeeper的conf目录,将zoo_sample.cfg复制,并且命名为zoo.cfg

[root@node1 ~]# cd /usr/local/apache-zookeeper-3.8.0-bin/conf/

[root@node1 conf]# cp zoo_sample.cfg zoo.cfg

修改zoo.cfg配置文件内容

dataDir=/data

dataLogDir=/datalog

autopurge.snapRetainCount=3

autopurge.purgeInterval=0

maxClientCnxns=60

server.1=10.100.1.10:2888:3888

server.2=10.100.1.11:2888:3888

server.3=10.100.1.12:2888:3888

创建数据目录和日志目录

[root@node1 conf]# mkdir /data /datalog/

配置每一台的myid

(1)、node1

echo 1 > /data/myid

(2)、node2

echo 2> /data/myid

(3)、node3

echo 3 > /data/myid

进入到zookeeper的bin目录,分别启动zookeeper

[root@node1 conf]# cd /usr/local/apache-zookeeper-3.8.0-bin/bin/

[root@node1 bin]# ./zkServer.sh start

启动后,分别查看zookeeper的状态

三、安装clickhouse集群

1、、将clickhouse的rpm包上传到/opt目录下

clickhouse-client-21.9.5.16-2.noarch.rpm

clickhouse-common-static-21.9.5.16-2.x86_64.rpm

clickhouse-common-static-dbg-21.9.5.16-2.x86_64.rpm

clickhouse-server-21.9.5.16-2.noarch.rpm

安装:

rpm -ivh *.rpm

数据存储路径修改(默认是系统盘的/var/lib/clickhouse/):

1) 在数据盘新建目录:

mkdir /data/clickhouse

2) 修改用户权限:

chown clickhouse:clickhouse /data/clickhouse

3) 软连接:

ln -s /data/clickhouse /var/lib/clickhouse

5、编辑config.xml文件,添加如下内容

[root@node1 opt]# vim /etc/clickhouse-server/config.xml

<include_from>/etc/clickhouse-server/metrika.xml</include_from>

<remote_servers incl="clickhouse_remote_servers" />

<zookeeper incl="zookeeper-servers" optional="true" />

<macros incl="macros" optional="true" />

编辑metrika.xml,复制以下内容

<yandex>

<!-- 集群配置 -->

<clickhouse_remote_servers>

<!-- 3分片1备份 -->

<cluster_3shards_1replicas>

<!-- 数据分片1 -->

<shard>

<replica>

<host>node1</host>

<port>9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

<!-- 数据分片2 -->

<shard>

<replica>

<host>node2</host>

<port> 9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

<!-- 数据分片3 -->

<shard>

<replica>

<host>node3</host>

<port>9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

</cluster_3shards_1replicas>

</clickhouse_remote_servers>

<!---zokeeper配置 -->

<zookeeper-servers>

<node>

<host>node1</host>

<port>2181</port>

</node>

<node>

<host>node2</host>

<port>2181</port>

</node>

<node>

<host>node3</host>

<port>2181</port>

</node>

</zookeeper-servers>

<!--副本名称-->

<macros>

<replica>node3</replica>

</macros>

<networks>

<ip>::/0</ip>

</networks>

</yandex>


9、启动clickhouse服务

[root@node1 opt]# systemctl start clickhouse-server

10、登录clickhouse客户端

[root@node1 opt]# clickhouse-client -u default --password 123456

11、查看集群状态,对比集群名称是否正确

node1 :) select * from system.clusters;

四、clickhouse操作

1、集群分片与备份测试

(1)、创建集群测试仓库(node1操作)

create database testdb on cluster cluster_3shards_1replicas;

(2)、查看数据库

show databases;

(3)、创建本地表(node1操作)

create table testdb.person_local on cluster cluster_3shards_1replicas (ID Int8, Name String, BirthDate Date) ENGINE = MergeTree(BirthDate, (Name, BirthDate), 8192)

(4)、在各个节点建分布表(所有节点操作)

create table testdb.person_all as testdb.person_local ENGINE = Distributed(cluster_3shards_1replicas, testdb, person_local, rand());

person_local为本地表,数据只是在本地

person_all为分布表,查询这个表,引擎自动把整个集群数据计算后返回

(5)、插入数据(node1操作)

insert into testdb.person_all (*) values ('1','a','2021-10-01');

insert into testdb.person_all (*) values ('2','b','2021-10-01');

insert into testdb.person_all (*) values ('3','c','2021-10-01');

insert into testdb.person_all (*) values ('4','d','2021-10-01');

insert into testdb.person_all (*) values ('5','e','2021-10-01');

insert into testdb.person_all (*) values ('6','f','2021-10-01');

insert into testdb.person_all (*) values ('7','g','2021-10-01');

insert into testdb.person_all (*) values ('9','i','2021-10-01');

insert into testdb.person_all (*) values ('10','j','2021-10-01');

(6)、查看数据

select * from testdb.person_local

selec * from testdb.person_all

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
3月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
147 3
SpringBoot入门 - 添加内存数据库H2
|
3月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
69 4
SpringBoot入门(4) - 添加内存数据库H2
|
4月前
|
SQL 数据库
LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
52 2
|
1月前
|
关系型数据库 OLAP 分布式数据库
瑶池数据库微课堂|PolarDB/RDS+ADB Zero-ETL:一种免费、易用、高效的数据同步方式
瑶池数据库微课堂介绍阿里云PolarDB/RDS与ADB的Zero-ETL功能,实现免费、易用、高效的数据同步。内容涵盖OLTP与OLAP的区别、传统ETL存在的问题及Zero-ETL的优势(零成本、高效同步),并演示了从RDS MySQL到AnalyticDB MySQL的具体操作步骤。未来将优化和迭代此功能,提供更好的用户体验。
|
6月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
584 0
|
3月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
4月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
56 2
SpringBoot入门(4) - 添加内存数据库H2
|
3月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
82 13
|
3月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
80 4
|
4月前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
381 6

热门文章

最新文章