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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 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推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
14天前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
63 0
|
18天前
|
分布式计算 关系型数据库 数据处理
深度揭秘:ADB之外的数据库战场,Planner与ORCA优化器,谁才是性能提升的幕后推手?
【8月更文挑战第27天】在数据库和Android调试领域,优化器如Planner与ORCA扮演着提升性能的关键角色。Planner作为传统数据库的核心,以成熟稳定、高度集成及易于扩展著称,适用于大多数查询优化场景。ORCA则凭借其模块化设计、高并发性和基于成本的优化策略,在处理复杂查询和大规模数据集时展现出色性能。尽管ADB本身不包含这些优化器,但其调试理念与优化器的设计理念相辅相成,共同推动技术进步。例如,在使用ORCA的数据库中,一个涉及多表连接的复杂查询可以被自动优化,通过评估不同连接策略的成本来选择最佳执行计划。这两种优化器各有所长,共同促进数据处理技术的发展。
36 0
|
18天前
|
存储 监控 安全
阿里云数据库(ADB)的多租户秘籍:资源隔离的魔法如何施展?
【8月更文挑战第27天】多租户系统在云计算与大数据领域日益重要,它让不同用户或组织能在共享基础设施上独立运行应用和服务,同时确保资源隔离与安全。ADB(如阿里云数据库)通过资源组及标签实现高效多租户隔离。资源组作为一种软隔离策略,允许为不同租户分配独立的计算和存储资源,并设置资源上限;资源标签则支持更细粒度的硬隔离,可为每个数据库表或查询指定特定标签,确保资源有效分配。此外,ADB还提供了资源监控与告警功能,帮助管理员实时监控并调整资源分配,避免性能瓶颈。这种灵活且高效的资源隔离方案为多租户环境下的数据处理提供了强大支持。
64 0
|
1月前
|
存储 机器学习/深度学习 自然语言处理
LangChain与向量数据库:高效的信息检索方案
【8月更文第4天】随着自然语言处理技术的发展,特别是深度学习的进步,我们能够更加高效地处理大量的文本数据。LangChain 作为一种强大的工具链,旨在简化和加速构建复杂的自然语言处理应用程序。结合向量数据库,LangChain 可以实现高效且精准的信息检索功能。本文将探讨这一组合的工作原理,并通过一个具体的实现案例来展示其在实际应用中的效果。
191 2
|
26天前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
29天前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
13天前
|
SQL Java OLAP
Hologres 入门:实时分析数据库的新选择
【9月更文第1天】在大数据和实时计算领域,数据仓库和分析型数据库的需求日益增长。随着业务对数据实时性要求的提高,传统的批处理架构已经难以满足现代应用的需求。阿里云推出的 Hologres 就是为了解决这个问题而生的一款实时分析数据库。本文将带你深入了解 Hologres 的基本概念、优势,并通过示例代码展示如何使用 Hologres 进行数据处理。
62 2
|
23天前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
30 2
|
29天前
|
SQL 存储 关系型数据库
数据库SQL入门指南
数据库SQL入门指南
|
29天前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】