合 人大金仓KingBase之分析型数据库KADB的安装和使用
- 简介
- 产品优势
- 配套工具
- KStudio For KADB
- KMonitor For KADB
- 软件下载适用
- 产品架构
- 选择KADB安装方式
- 环境申请
- 所有节点创建用户和目录
- 免密配置
- 安装数据库软件(以下内容都只在master节点操作)
- 安装软件
- 安装licence.dat
- 环境变量配置
- 其它节点安装软件
- KADB数据库初始化(最重要一步,只在master操作)
- 远程访问(只在master操作)
- 系统性能环境测试
- 卸载KADB
- 删除集群
- 删除程序
- gpcc安装和卸载(不能使用)
- 安装
- 故障处理:Error occurred: non-zero rc: 1
- libc.so.6: version `GLIBC_2.18' not found
- due to bash: 08:00: command not found
- 卸载
- 总结
简介
官网:https://www.kingbase.com.cn/
在线文档:https://help.kingbase.com.cn/kadb/admin/intro/index.html
KingbaseAnalyticsDB 官网:https://kingbase.com.cn/fxxsjk/index.htm
KingbaseAnalyticsDB 官方文档:https://kingbase.com.cn/kadb_wdxz/index.htm
KingbaseAnalyticsDB 下载使用:https://kingbase.com.cn/kadb_rjxz/index.htm
金仓分析型数据库系统KingbaseAnalyticsDB(以下简称为 KADB)是北京人大金仓信息技术股份有限公司推出的MPP数据库产品。产品应大数据时代海量数据分析处理的需求,采用shared-nothing分布式架构,具有高性能,高扩展性能力,承载了人大金仓在大规模并行计算和数据库管理领域先进的研发成果,它定位于数据分析类应用市场,可以处理TB-PB级别的数据,并能集成多种异构数据源进行数据挖掘和分析。在处理复杂查询,如:多表连接、聚合等,也体现出了很好的性能。适用于数据仓库、决策支持、高级分析等分析类应用场景。
KingbaseAnalyticsDB(简称KADB)是人大金仓为应对大数据时代海量数据分析处理的需求推出的具备高性能、高扩展能力的MPP数据库。它具有分布式集群部署、数据分片无共享存储、大规模并行处理技术(MPP)、数据分区、行列混存、数据库内压缩、MapReduce、在线扩容、内嵌数十种AI算法等技术特点,能满足当前各行业对大量数据采集、存储、挖掘及分析等多种需求的能力。
目前,该产品主要定位于数据分析类应用市场,可处理PB级甚至更大存储量的数据,并能集成多种异构数据源进行数据挖掘和分析,在处理多表连接、聚合等各类复杂查询方面也体现出了很好的性能。
产品优势
多源数据整合
- 提供高效数据加载工具,面向异构数据源,支持更简洁的源端与目标端映射方式,更方便的清洗转化规则设计
- 同时支持联邦查询,部分场景下免去复杂ETL过程1
海量数据存储
- 支持多存储引擎及行列混存技术,1:20的高压缩比有效减少I/O开销
- 支持多种数据分布及表分区策略,满足不同场景查询性能需求
并行计算能力
- 基于MPP+SN的分布式架构,所有数据节点能力完全对等,充分利用集群中的计算资源完成任务
- 存储及计算能力随节点扩展线性提升,扩展过程简单,对在线业务无影响
智能多维分析
- 支持流水线执行器,支持多种索引,支持热数据内存驻留,并在高并发场景进行优化,上亿级别数据点查毫秒级响应
- 基于SQL2003标准,提供OLAP扩展及基于SQL的GIS计算、机器学习、图计算及扩展自定义计算类型支持,以满足不同业务计算需求
高可用易拓展
- 全面的容错体系,具备不间断服务能力
- 支持管理/数据节点自动failover及接口重连重试机制,最大限度保障数据不丢,连接不断
- 在线扩容缩容,不影响生产业务,性能线性增长
深度兼容适配
- 兼容主流linux操作系统、主流服务器架构,包括国产操作系统、国产服务器架构等
- 深度适配国内外主要GIS产品, 形成联合解深度适配国内外主要GIS产品, 形成联合解决方案。
配套工具
KStudio For KADB
KStudio For KADB 是金仓自主研发的一款功能强大的分析型数据库管理工具。请参考:https://www.kingbase.com.cn/kstudioforkadb/index.htm
下载:https://kingbase.oss-cn-beijing.aliyuncs.com/KADB/KStudio/KStudio.zip
KMonitor For KADB
KMonitor For KADB是一款针对金仓分析型数据库的全方位监控平台。请参考:https://www.kingbase.com.cn/kmonitorforkadb/index.htm
下载: https://kingbase.oss-cn-beijing.aliyuncs.com/KADB/KMonitor/KMonitor.zip
软件下载适用
下载适用:https://www.kingbase.com.cn/kadb_rjxz/index.htm
产品架构
KADB的数据库服务器部分采用MPP+无共享式的分布式架构。集群组件包括集群中包括主控(Master)节点以及计算(Segment)节点。
图 2 MPP架构
主控(Master)节负责接收应用连接、为应用的请求生成执行计划并将计划分派给计算(Segment)节点执行并将执行结果汇总返回给应用。
计算(Segment)节点是独立的数据存储和查询执行引擎,用户数据以分片的方式存储在计算(Segment)节点上。计算(Segment)节点会执行主控节点分派的计算任务和将本节点的数据分发给需要数据的其他计算节点。
KADB数据库是一种大规模并行处理(MPP)数据库服务器,其架构特别针对管理大规模分析型数据仓库以及商业智能工作负载而设计。
MPP(也被称为shared nothing架构)指有两个或者更多个处理器协同执行一个操作的系统,每一个处理器都有其自己的内存、操作系统和磁盘。 KADB使用这种高性能系统架构来分布数T字节数据仓库的负载并且能够使用系统的所有资源并行处理一个查询。
KADB数据库是基于PostgreSQL开源技术的。它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS)。 它基于PostgreSQL 9.4开发,其SQL支持、特性、配置选项和最终用户功能在大部分情况下和PostgreSQL非常相似。 与KADB数据库交互的数据库用户会感觉在使用一个常规的PostgreSQL DBMS。
KADB数据库可以使用追加优化(append-optimized,AO)的存储格式来批量装载和读取数据,并且能提供HEAP表上的性能优势。 追加优化的存储为数据保护、压缩和行/列方向提供了校验和。行式或者列式追加优化的表都可以被压缩。
KADB数据库和PostgreSQL的主要区别在于:
- 在基于Postgres查询规划器的常规查询规划器之外,可以利用GPORCA进行查询规划。
- KADB数据库可以使用追加优化的存储。
- KADB数据库可以选用列式存储,数据在逻辑上还是组织成一个表,但其中的行和列在物理上是存储在一种面向列的格式中,而不是存储成行。 列式存储只能和追加优化表一起使用。列式存储是可压缩的。当用户只需要返回感兴趣的列时,列式存储可以提供更好的性能。 所有的压缩算法都可以用在行式或者列式存储的表上,但是行程编码(RLE)压缩只能用于列式存储的表。KADB数据库在所有使用列式存储的追加优化表上都提供了压缩。
为了支持KADB数据库的并行结构,PostgreSQL的内部已经被修改或者增补。 例如,系统目录、优化器、查询执行器以及事务管理器组件都已经被修改或者增强,以便能够在所有的并行PostgreSQL数据库实例之上同时执行查询。 KADB的interconnect(网络层)允许在不同的PostgreSQL实例之间通讯,让系统表现为一个逻辑数据库。
KADB数据库也可以使用声明式分区和子分区来隐式地生成分区约束。
KADB数据库也包括为针对商业智能(BI)负载优化PostgreSQL而设计的特性。 例如,KADB增加了并行数据装载(外部表)、资源管理、查询优化以及存储增强,这些在PostgreSQL中都是无法找到的。 很多KADB开发的特性和优化都在PostgreSQL社区中找到了一席之地。例如,表分区最初是由KADB开发的一个特性,现在已经出现在了标准的PostgreSQL中。
KADB数据库的查询使用一种火山式查询引擎模型,其中的执行引擎拿到一个执行计划并且用它产生一棵物理操作符树,然后通过物理操作符计算表,最后返回结果作为查询响应。
KADB数据库通过将数据和处理负载分布在多个服务器或者主机上来存储和处理大量的数据。 KADB数据库是一个由基于PostgreSQL 8.3的数据库组成的阵列,阵列中的数据库工作在一起呈现了一个单一数据库的景象。 Master是KADB数据库系统的入口。客户端会连接到这个数据库实例并且提交SQL语句。 Master会协调与系统中其他称为Segment的数据库实例一起工作,Segment负责存储和处理数据。
Figure 1. 高层的KADB数据库架构
选择KADB安装方式
KADB数据库安装提供两种安装方式,一种为单机、一种为多机。
- 单机安装
安装 KADB 在一台服务器上,master、segment使用同一IP不同端口运行,适合在于适配、介绍、开发以及功能测试等工作中使用,无法确保高可用。
- 多机安装
安装 KADB 在多台服务器上,master、segment及其备用节点使用不同IP不同端口运行,适合在部署、上线、POC以及性能测试等工作中使用。
环境申请
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | -- 网卡 docker network create --subnet=172.72.0.0/16 lhrnw -- 若是多台主机,则可以考虑使用swarm网络 /*-- manager node1节点 docker swarm init --advertise-addr 172.18.0.15 docker info docker node ls -- node2和node3节点加入swarm docker swarm join --token SWMTKN-1-3hpzg7r6t8ql15ttyxxpe3g80hmv54s5k9l1lny55058o4qt1x-6lypi3esbdn7mvoe7yvxuv0vv 172.18.0.15:2377 -- node1主节点 docker network rm lhrnw docker network create --subnet=172.72.0.0/16 -d overlay lhrnw --attachable */ docker rm -f kmdw docker run -itd --name kmdw -h kmdw \ --net=lhrnw --ip 172.72.6.60 \ -p 6432:5432 -p 10000-10004:10000-10004 -p 28086:28080 -p 622:22 -p 63389:3389 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true \ --add-host='kmdw:172.72.6.60' \ --add-host='ksdw1:172.72.6.62' \ --add-host='ksdw2:172.72.6.63' \ lhrbest/lhrcentos76:9.2 \ /usr/sbin/init docker rm -f ksdw1 docker run -itd --name ksdw1 -h ksdw1 \ --net=lhrnw --ip 172.72.6.62 -p 622:22 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true \ --add-host='kmdw:172.72.6.60' \ --add-host='ksdw1:172.72.6.62' \ --add-host='ksdw2:172.72.6.63' \ lhrbest/lhrcentos76:9.2 \ /usr/sbin/init docker rm -f ksdw2 docker run -itd --name ksdw2 -h ksdw2 \ --net=lhrnw --ip 172.72.6.63 -p 622:22 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ --privileged=true \ --add-host='kmdw:172.72.6.60' \ --add-host='ksdw1:172.72.6.62' \ --add-host='ksdw2:172.72.6.63' \ lhrbest/lhrcentos76:9.2 \ /usr/sbin/init docker cp ./ kmdw:/soft/ -q |
所有节点创建用户和目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | groupadd -g 530 mppadmin useradd -g 530 -u 530 -m -d /home/mppadmin -s /bin/bash mppadmin mkdir -p /home/mppadmin/mpp/bin/ mkdir -p /home/mppadmin/dbdata/master mkdir -p /home/mppadmin/dbdata/primary mkdir -p /home/mppadmin/dbdata/mirror mkdir -p /home/mppadmin/dbbackup chown -R mppadmin:mppadmin /home/mppadmin echo "mppadmin:lhr" | chpasswd cat > /home/mppadmin/allhostfile <<EOF kmdw ksdw1 ksdw2 EOF cat >/home/mppadmin/seghostfile <<EOF ksdw1 ksdw2 EOF |
创建数据目录/dbdata,备份目录/dbbackup。如果用户提供单独磁盘,建议直接软链接到/home/mppadmin/dbdata和dbbackup目录
1 2 3 4 5 6 7 8 9 10 11 | #软链接 gpssh -f /home/mppadmin/hostfile -e 'ln -s /dbdata /home/mppadmin/' gpssh -f /home/mppadmin/hostfile -e 'ln -s dbbackup /home/mppadmin/' #如果全部空间在/home下,建议如下创建目录 gpssh -f /home/mppadmin/hostfile -e 'mkdir -p /home/mppadmin/dbdata' gpssh -f /home/mppadmin/hostfile -e 'mkdir -p /home/mppadmin/dbbackup' #创建次一级master实例目录和segment实例目录 gpssh -f /home/mppadmin/hostfile -e 'mkdir -p /home/mppadmin/dbdata/master' gpssh -f /home/mppadmin/hostfile -e 'mkdir -p /home/mppadmin/dbdata/primary' |
免密配置
只在master节点(172.72.6.60)操作:
1 2 3 4 5 | ./sshUserSetup.sh -user root -hosts "kmdw ksdw1 ksdw2" -advanced -noPromptPassphrase ./sshUserSetup.sh -user mppadmin -hosts "kmdw ksdw1 ksdw2" -advanced -noPromptPassphrase # 所有节点 chmod 600 /home/mppadmin/.ssh/config |
1、为了后续的维护方便,建议root和mppadmin用户都做互信的配置。
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!