摘要:数据库作为数据存储单元,是应用系统开发和运行的关键要素,也是进行数据存储、管理和使用的核心。数据库可以根据不同的标准进行分类,如按照数据模型、存储方式、应用场景等标准进行划分,按照数据模型,数据库可以分为关系型数据库和非关系数据库,关系型如MySQL、Orac
数据库作为数据存储单元,是应用系统开发和运行的关键要素,也是进行数据存储、管理和使用的核心。数据库可以根据不同的标准进行分类,如按照数据模型、存储方式、应用场景等标准进行划分,按照数据模型,数据库可以分为关系型数据库和非关系数据库,关系型如MySQL、Oracle、SQL Server等以表格形式存储数据的数据库,非关系型如Redis、MongoDB、Hbase等不以表格形式存储的数据库;按照存储方式可以分为集中式和分布式数据库;按应用场景可以分为在线事务处理(OLAP)和在线分析处理(OLTP)数据库。本次介绍的是Doris数据库的部署,它是一种MPP架构的OLAP数据库。
作为一种分布式的OLAP数据库,Doris更多适用于海量数据存储、查询以及数据分析挖掘的场景。在实际项目中,Doris主要用于DAP构建数仓时的数仓存储库,为数仓提供更高效的海量数据存储、查询、分析的能力。
Doris作为分析型数据库,采用分布式架构,不同于传统的MySQL等关系型数据库,Doris在部署时通过FE与BE两类进程进行数据存储与管理,提供更加高效、便捷的维护和部署方案。
1.数据库架构
Doris数据库的架构非常简单,只包括FE和BE节点,结构图参见Doris官方提供的架构图:
1.Doris采用MySQL协议,兼容MySQL语法,所以可以直接通过MySQL的客户端或MySQL的jdbc协议连接Doris数据库;
2.Doris的FE节点用于用户请求的接入、查询解析规划、元数据管理、节点管理,在生产部署时,会部署多个FE节点实现容灾备份,其中一个节点作为Master节点,其他作为Follower节点,在Master节点故障时会接替Master节点;在高可用模式(1个Master,2个Follower)下,可以通过增加Observer来扩展FE的读服务能力(Observer节点负责读取元数据,主要增加集群的查询并发能力,不参与集群Master的选择)。
3.BE节点主要作为数据的存储节点,通过部署多个BE节点实现数据存储的扩充,同时基于数据分片以及多副本存储实现数据备份。
2.部署说明
本次Doris部署采用Doris高可用的部署方案,通过3个FE + 3个BE进行部署,其中3个FE包括1个Master和2个Follower。
Doris的使用主要作为DAP的数仓存储数据库,通过DAP配置Doris数仓数据源:
3.数仓架构
数仓的建设是基于DAP平台配置的多层数仓体系,具体架构如下图:
数仓的建设过程主要是将源头数据汇聚到数仓(Doris),并进行分析配置的过程,包括了贴源层ODS、数仓DW和应用层ADS,而DW又分为数据明细层DWD和数据服务层DWS。数仓数据加工汇聚的过程:
1.源头数据首先进入ODS,一般直接以原始数据的形式存储,支撑数仓的同时,为湖仓一体、数据追溯提供原始数据;
2.ODS落地数据后,再基于ODS构建数仓中的基础事实表,形成DWD;
3.基于DWD根据实际需要进行进一步的数据汇总,构建数据宽表和模型,形成DWS;
4.基于DAP构建的数仓,其中ODS、DWD、DWS会直接进行数据落地存储,这些数据都是存储在Doris数据库中,而ADS的数据应用层,更多是以数据集、立方体等分析模型进行呈现。
在部署Doris数据库前,需要对服务器进行检查和调整,主要是确认Java环境、CPU信息以及服务器环境的优化。
1.版本信息
服务器OS:Kylin V10
Linux内核:Linux 4.19
Java:jdk 1.8
Doris:doris 2.1
2.Java部署
1.下载jdk8:jdk-8u401-linux-x64.tar.gz
2.环境变量:/etc/profile
3.环境检查
主要针对服务器的CPU进行检查,并优化Linux系统的配置。
>>>> CPU检查
通过确认服务器是否支持avx2,下载对应的Doris安装包。
1.下载Doris:apache-doris-2.1.8-bin-x64-noavx2.tar.gz
2.将安装包上传到服务器。
>>>> 关闭swap
1.临时关闭:
2.永久关闭:
>>>> 关闭透明大页
1.临时关闭:
2.永久关闭:
>>>> 修改虚拟内存
>>>>关闭省电模式
1.查询CPU是否支持Scaling Governor:
如果存在scaling_governor文件说明当前系统支持Scaling Governor,否则不支持
2.如果支持Scaling Governor,关闭 CPU 省电模式:
>>>> 自动重置新链接
>>>> 修改文件句柄数
>>>> NTP时间同步
1.修改NTP设置:
2.启动ntpd服务,设置开启自启:
>>>> 服务器防火墙
1.修改配置文件:
2.启动防火墙:
由于Doris的FE节点是基于Java开发的,所以Doris运行时需要Java运行环境,所以需要先部署Java运行环境,再部署Doris。
1.Java
1.创建目录:
2.上传并解压:
3.配置环境变量:vi /etc/profile
4.配置生效:
5.查看:
2.Doris
Doris主要部署FE与BE节点,FE采用集群部署,部署3个FE节点,同时Doris自带Web UI管理页面,可以通过Web UI进行访问测试。
>>>> FE部署
1.创建目录:
2.上传并解压安装包:
3.修改目录名:
4.进入安装目录:
5.修改配置:
6.修改内容:
7.启动 FE 进程:
8.查看启动日志:
2.用root或admin登录,默认密码为空:
>>>> FE集群
1.参考2.2.1部署两个 FE Follower 节点,但注意不要先启动;
2.通过MySQL Client连接Doris集群:
3.在FE集群中注册新的FE节点:edit_log_port默认9010
4.启动FE Follower,并自动同步元数据:
--helper:只应用于第一次启动FE时同步元数据,后续重启FE的操作不需要指定helper_fe_ip:FE集群中任一存活的节点fe_edit_log_port:默认90105.查看日志:
>>>> BE部署
1.创建目录及上传、解压,同2.2.1FE部署步骤1~4;
2.修改配置:
3.修改内容:
4.通过MySQL Client连接Doris集群,在Doris中注册BE节点:
be_heartbeat_service_port:默认端口90505.启动 BE 进程:
6.查看启动日志:
7.通过WEB UI查看BE信息:
8.通过MySQL Client查看:
9.修改root用户密码:
测试验证主要通过MySQL Client或连接工具连接Doris,并进行建库、建表、增删改查、删表、删库等操作进行数据库操作和测试。
1.连接测试
1.通过Navicat或MySQL Client连接测试::9030
2.查看数据库及表的信息:
2.数据操作
1.创建数据库:
2.创建数据表:
3.插入数据:
4.查询数据:
5.删除数据:
6.删除表:
7.删除数据库:
3.平台测试
1.创建数据库:
2.DAP注册数据源:
3.配置ODS:
4.创建数据表:
Doris作为高性能的MPP分析型数据库,主要应用在数据分析场景,实现海量的存储与分析,主要作为数仓的数据存储库,用于DAP构建数仓和数据分析,本次主要针对Doris的部署过程进行记录和说明。
1.过程总结
Doris数据库的架构精简、易于部署和维护,只有FE和BE两类进程,在部署时只需要规划好服务器节点,调整配置文件后就能启动运行。Doris采用MySQL协议,兼容MySQL语法,FE集群构建和BE节点加入通过MySQL Client就可以实现,同时也能通过MySQL Client进行库、表、数据的操作,无论是使用还是管理都非常便捷。
2.产品功能
基于目前的产品方案,主要是数据治理分析、数据中台和AiBOS等涉及DAP平台会采用Doris作为数仓存储库使用,满足海量数据的存储和分析需求,提升分析展现、数据检索、数据预测、数据服务等数据深度应用的性能。在DAP平台中,目前也完全支持Doris数据库的注册与配置,可以直接将ODS、EDW的数据表建立在Doris数据库中,并通过ESB数据总线实现数据采集和数据写入。
3.说在最后
Doris作为DAP的数仓存储库,目前在DAP项目中都是采用Doris作为数仓,并且在生产环境使用高可用的部署方式,即3个FE+3个BE,BE节点数量可以基于数仓实际存储大小进行调整,另外在DAP平台中针对Doris提供了分区字段、副本数的配置,从而提升数据检索的性能,提高数据使用的效率。
本文是Doris数据库部署以及应用实战的第一篇文档,主要介绍Doris部署和初步测试验证的过程,后续会针对Doris的实战效果进行介绍,包括通过DAP创建Doris的数据表,通过ESB进行数据写入,以及基于ESB的实时集成构建Doris实时数仓等内容。
本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~
来源:数通畅联