开箱即用:免费的数据库管理平台 NineData 社区版

前言

数据库属于当代社会一个基础设施级别的技术,为各行各业提供数据存储、管理、分析和挖掘等关键服务。随着云计算、大数据和人工智能等技术的发展,数据库技术也在不断地进步和演化。分布式数据库、NoSQL 数据库、列式存储数据库、向量数据库、时序数据库等,各种新型数据库技术不断涌现,满足了各种新兴应用场景的需求。

既然数据库如此重要,而且种类繁多,如何管理好数据库,为业务提供持续稳定的数据库服务将是一件非常核心、极具挑战性且至关重要的任务。正因如此也催生了数据库管理员(DBA)职业,负责运维数据库,保障数据库安全、高效、稳定的运行。

一般具有一定数据库规模的企业才会招聘。

那么初创企业,如果在前期还没有具备一定的数据规模,也不会专门招聘 DBA,就可能会陷入 “先天不足,后天畸形” 的困境 —— 早期忽视数据库规范建设导致数据隐患,而业务增长后这些隐患又会反噬开发效率,最终不得不用更高的成本为初期的将就买单。

那么如何解决呢?这里推荐一款 完全免费功能强大 支持 本地部署 的数据库管理平台 —— NineData 社区版。

1. 本地部署

本小节,介绍从 0 开始部署 NineData 社区版。

笔者本地使用的服务器配置是 8C16G 200G 磁盘,操作系统是 Rocky Linux release 9.5 版本。

1.1 安装 Docker

如已安装可忽略,Linux 可能提供非 Docker 官方的包,所以安装前需要检查卸载。

sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

设置存储库:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

安装 Docker Engine:

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动 Docker 引擎:

sudo systemctl enable --now docker

1.2 安装 NineData

Docker 启动后,通过 NineData 官方文档 提供的命令,直接 一键部署

docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest

大约等待 10 多分钟,查看日志输出 Complete!表示安装成功。

docker logs -f ninedata

请添加图片描述

2. 功能体验

作为 NineData 商业化版本的首批用户,经过一段时间的深入使用,我逐渐察觉到该平台功能与 DBA 所提供的服务存在一定程度的重合,并且似乎一直在往这个趋势发展,令 DBA 细思极恐…

NineData 社区版和专业版的功能一致,唯一的限制是只支持 10 个数据源,详细功能列表可参考官方文档。

NineData 社区版功能列表

接下来,我将介绍 NineData 社区版(免费版)主要功能和我的体验感受。

2.1 SQL 窗口

研发人员在软件开发、迭代、维护阶段,都需要连接数据库。如果企业没有一个 统一访问 的数据库入口,一般都会在本地电脑上面安装自己顺手的工具,例如 Navicat、DataGrip、DBeaver 等工具。

这样做有很大的风险,例如:

  1. 研发数据库水平参差不齐:执行一些风险 SQL 导致故障。不是开玩笑,可能一条简单的 SQL 语句,就会造成严重的故障。
  2. 数据库直连风险:被删库都查不到谁干的。笔者曾遇到朋友求助,离职员工,因为对公司不满,设置定时任务删库跑路,大家都知道是谁干的,奈何没有证据。数据是企业非常宝贵的资产,你能安心让它暴露在防御真空之下?

NineData 社区版可以为企业提供一个数据库的统一入口,平台中有数百条规范限制,通过规范可以强制把所有人都拉到同一水平线上,从而满足研发人员查询数据库需求的同时,屏蔽掉风险操作,确保数据安全无忧。
在这里插入图片描述
下图为 NineData 社区版 SQL 窗口的界面,提供了不亚于 DataGrip 这类专业 IDE 的 SQL 编程体验。

在这里插入图片描述

所有的操作,平台都会记录日志,NineData 社区版的审计日志会保留 90 天。

在这里插入图片描述

2.2 SQL 任务

通过 NineData 社区版 SQL 窗口,可作为生产环境的统一查询入口。SQL 任务可以作为变更写入的入口。所有非代码功能的写入操作,都需要通过 SQL 任务审批后执行。

这时候可能会有人要问:我们公司都没有 DBA 审批工单要由谁审核呢?

经过我们的经验,数据库 95% 以上的问题,都是由人因造成的。例如代码 bug、慢 SQL、误操作等。

NineData 社区版支持百余规范配置,并且这些规范都经过多年 DBA 专家经验沉淀和生产验证出来的。系统会根据规范配置来识别提交的 SQL 任务是否有风险,若命中规范则由系统直接驳回。 初创企业在没有 DBA 的情况下,用好 NineData 的这个功能,基本可以消灭 80% 以上的人因造成的问题。

如下图,笔者执行了一条 SQL 语句,属于全表扫描,并且影响行数百万。生产环境中如果执行这条 SQL 语句,可能会造成锁争用,以及主从延迟和 IOPS 资源波动。NineData 社区版识别到后,会驳回提交,并提示 SQL 影响行数过大,帮助用户拦截掉风险。

请添加图片描述

PS:NineData 社区版 支持多种数据源,规范和审批流配置,在此就不再演示,大家可以自行部署体验。

DBA 需兼具风险洞察与化解能力,而 NineData 社区版在特定场景中已实现风险识别与问题解决的闭环管理。

拿刚才的案例来讲,影响行数 180w NineData 会拦截掉风险,只要再调整一下 NineData 的配置,打开 OnlineDML 功能。

请添加图片描述

原本不能提交的风险 SQL 现在可以利用 NineData 的 OnlineDML 功能,将 SQL 进行拆分,每次更新 2000 行,完美化解大事务对数据库的影响,风险识别和处理形成闭环。

在这里插入图片描述

PS:NineData 社区版 SQL 任务执行的时候,会自动备份受影响的行。影响行数越大,备份所需的时间就越长,这块建议根据实际情况跳过备份。

2.3 数据生成

NineData 社区版还有一个功能令人眼前一亮,就是数据生成模块。无论是 DBA 还是研发、测试人员都有制造测试数据的场景,常规的造数工具往往只考虑数据量,该工具简单的配置一下就可以制造带有业务属性的数据。
在这里插入图片描述

2.4 慢查询分析

所谓 慢 SQL 是指在数据库中执行时间超过指定阈值的语句。慢查询太多,对于业务而言,是有很大风险的,可能随时都会因为某种原因而被触发,并且根据我们的经验,数据库最常出现的问题,都是因为慢查询导致数据库慢了,进而导致整个实例 “雪崩” 从而导致线上故障。

NineData 社区版也提供了慢查询分析功能,可以实时查看慢 SQL 分析执行计划。各云厂商提供的 RDS 数据库服务,都会自带配套的慢 SQL 分析平台,所以该功能比较适用于自建数据库。由于数据库慢日志大部分都是非结构化的,DBA 都会通过一些专业工具来分析,而 NineData 平台展示出的慢日志已经是结构化的而且支持聚合分析,还有诊断优化功能,会根据 SQL 语句提出优化建议。

对于 DBA 来讲,该功能减少了繁琐的采集分析工作,使其更专注于优化。对于研发人员来讲,该功能是一个慢 SQL Review 神器。对于企业管理层来讲,通过查看慢查询 Dashboard 监控系统健康度,用于构建数据治理的量化决策体系。

在这里插入图片描述

2.5 数据复制

NineData 社区版内置高效且安全的数据复制功能,专为数据迁移、结构迁移及数据同步等多种应用场景设计。此功能不仅可以保证数据传输的安全性,还提升了传输效率。

在业务开发过程中,数据迁移、结构迁移的需求还是挺多的,一般由 DBA 负责操作,如果没有 DBA 则有运维或者直接由开发人员操作。

笔者曾遇到过求助,开发人员独立使用 mysqldump 逻辑备份工具,将测试表迁移到生产环境,该工具默认会带有 DROP TABLE IF EXISTS 研发人员不太熟悉,造成生产环境的表被误删,酿成故障。虽然是一起意外事件,本质是缺少风险隔离机制。

NIneData 社区版将数据库管理常用的操作都实现了平台化,如数据对比、数据导入和导出、以及结构转换,可以从标准、安全、开发效率、流程效率等多角度对数据库环境带来全面提升,重要的还是免费开放给社区版。

请添加图片描述

总结

本文简单介绍了数据库的发展,说明了数据库的重要性,以及初创企业可能会面临的困境,最后介绍了 NineData 社区版的一些重要功能,经过测评验证了 NineData 社区版可以是初创企业的 “数据库管理员”,可以从标准、安全、开发效率、流程效率等多角度对数据库环境带来全面提升,帮助企业拦截人因造成的故障,并且它是完全免费。

真正的铜墙铁壁是刻在所有工程师 DNA 里面的安全意识,如今 AI 知识库技术发展迅猛,如果 NineData 可以带一些知识普及的功能,例如在拦截风险 SQL 后,提供一个原因分析,告诉工程师如果执行这条 SQL 可能会带来哪些影响,拦截人因还能解决人因,将安全能力沉淀为组织无形资产,相信这也是管理层喜欢看到的。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值