在数据管理领域,一款优秀的工具能够极大地提升工作效率,而 NineData 社区版正是这样一款工具。NineData 社区版功能强大、永y久免费、一键安装,为开发者、初创团队、教育机构提供了极大的便利。
什么是 NineData 社区版
NineData 社区版是玖章算术推出的永y久免费、一键安装的数据管理解决方案。包含 NineData 的数据库 DevOps、数据复制、数据库对比三个核心功能。NineData 社区版是一个完全离线运行的本地化部署版本,所有数据与操作 100% 留存于您的本地环境,满足敏感业务的数据合规要求。NineData 提供用户管理,支持普通账号和 SSO 账号两种类型,提供权限管理,颗粒度细化到数据源、库、表、敏感列、模块、操作,并且支持 SQL 任务审核,为数据管理提供了安全保障。
NineData 社区版支持高性能实时数据迁移同步,基于自研 CDC 技术,专业解决数据库迁移、同步、容灾等业务需求,支持每秒数万 TPS 实时数据复制。NineData 社区版支持同构、异构数据源之间数据一致性校验,在不一致的情况下支持自动生成变更 SQL,支持结构对比、全量对比、抽样对比、周期性对比等多种对比方式,动态监测数据库负载,对比速度自适应,保障数据库稳定性。
如何安装 NineData 社区版
NineData 社区版基于 Docker 技术,用户通过几条简单的命令即可在本地电脑完成安装。
1. 前提条件
服务器中已安装 Docker 或者 Podman。服务器配置至少为 4 核 CPU / 16 GB 内存 / 200 GB 磁盘空间。
2. 拉取镜像
NineData 提供了多地域镜像下载,用户可以根据自己的地理位置选择合适的镜像地址,以获取更快的下载速度。
- NineData Docker Hub 官方地址:
ninedata/ninedata:latest
- 华北-北京:
swr.cn-north-4.myhuaweicloud.com/ninedata/ninedata:latest
- 华东-上海:
swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
- 华南-广州:
swr.cn-south-1.myhuaweicloud.com/ninedata/ninedata:latest
登录服务器,执行命令,拉取镜像。
podman pull swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
查看镜像信息。
[shawnyan@rl9 ~]$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata latest 17f99ce461fa 2 days ago 2.67 GB
3. 启动容器
推荐使用 CentOS 7 操作系统。执行命令,启动容器。
docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 \
--name ninedata -d 17f99ce461fa
如果使用 Rocky Linux 9,可以使用 Podman 来管理容器。
podman run -p 9999:9999 --privileged -v /opt/ninedata:/u01 \
--cgroupns=host \
--name ninedata -d 17f99ce461fa
需要注意的是,由于 Rocky Linux 9 默认使用 cgroup-v2
。
[shawnyan@rl9 ~]$ mount | grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
而当主机为 cgroups v2 时,podman 的 cgroup 命名空间模式默认使用 private
,来为容器创建一个新的 cgroup 命名空间,这会导致容器无法正常启动。
E0312 10:45:32.821969 42 kubelet_node_status.go:453] "Error getting the current node from lister" err="node \"server-sh90d\" not found"
E0312 10:45:32.824543 42 node_container_manager_linux.go:61] "Failed to create cgroup" err="cannot enter cgroupv2 \"/sys/fs/cgroup/kubepods\" with domain controllers -- it is in an invalid state" cgroupName=["kubepods"]
E0312 10:45:32.824844 42 kubelet.go:1566] "Failed to start ContainerManager" err="cannot enter cgroupv2 \"/sys/fs/cgroup/kubepods\" with domain controllers -- it is in an invalid state"
因而,启动容器时需增加参数 --cgroupns=host
指定容器使用宿主机的 cgroups 命名空间。
NineData 社区版的使用
1. 登录 NineData
容器启动完成后,NineData 服务会自动在容器内部署并初始化服务,该过程预计需要 5 ~ 10 分钟。初始化完成后,在浏览器中输入 NineData 的连接地址即可打开 NineData 控制台的登录页,NineData 服务默认端口号为 9999
,初始管理员账号与密码均为 admin
。首次登录后页面会弹出修改密码窗口,提示立即更改管理员密码。
2. 数据源管理
用户可以在 NineData 控制台中添加需要管理的数据源,支持多云、多类型、多个数据源。社区版目前支持添加 10 个数据源。
如下图,数据源已成功添加 MySQL 8.0、TiDB 8.5、IvorySQL 4.4、达梦数据库 DM8 等数据库。
典型场景:从 MySQL 复制数据到 TiDB
众所周知,MySQL 是蓝色星球上广泛流行的开源数据库。自 MySQL 诞生至今已有三十年,生命力依旧旺盛。TiDB 是一款 HTAP 分布式数据库产品,兼容 MySQL 协议和 MySQL 生态。面对企业业务高速增长,数据量级增长到 TB 或 PB 后,MySQL 的性能和扩展性严重受限。可以将 MySQL 按微服务对应的库表进行拆分,且不说拆分后成百上千个实例的运维成本很高,有很多金融业务和传统行业库表之间强耦合,关联业务代码改造的成本也极高。云原生分布式数据库 TiDB 可以帮助用户应对挑战,在保障数据库可靠性、数据一致性的前提下,可有效提升开发效率、降低维护成本、提升写入性能。将数据从 MySQL 迁移、整合到 TiDB 数据库,从容面对未来五到十年甚至更长线的挑战。
NineData 社区版提供数据复制和数据库对比功能。数据复制支持多种同异构数据源之间的离线、实时数据复制,支持结构复制、全量复制、增量复制。数据库对比功能则可以对两个数据源之间的内容进行一致性对比,支持结构对比、数据对比、增量对比,并在结构不一致的情况下自动生成变更 SQL。这些功能均可在 NineData 可视化控制台中进行操作,简单易用、轻松上手。
以 MySQL 到 TiDB 为例,演示如何使用 NineData 社区版的数据复制功能。
1. 环境准备
演示环境,这里准备了 MySQL 8.0.41 和 TiDB 8.5.1。
mysql> select version()\G
*************************** 1. row ***************************
version(): 8.0.41
1 row in set (0.00 sec)
tidb> select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v8.5.1
Edition: Community
Git Commit Hash: fea86c8e35ad4a86a5e1160701f99493c2ee547c
Git Branch: HEAD
UTC Build Time: 2025-01-16 07:38:34
GoVersion: go1.23.4
Race Enabled: false
Check Table Before Drop: false
Store: tikv
1 row in set (0.00 sec)
2. 操作步骤
- 创建复制
在 NineData 控制台上,点击【数据复制】-【数据复制】-【创建复制】。填写任务名称,选择源数据源和目标数据源,选择结构复制和全量复制。
- 选择复制对象
选择需要复制的表,这里有一项黑名单功能,可以排除指定对象。
- 配置映射
配置映射环节中的【映射与过滤】功能,可以自定义列名同步到目标数据源之后的名称。并且,还支持设置数据过滤条件,仅符合过滤条件的数据会同步到目标数据源。
- 预检查
预检查提供 16 项检测,通过检查后,点击【启动任务】,可以勾选【开启数据一致性对比】,当全量数据复制完成后,会自动进行数据比对。
- 启动任务
同步任务开始运行,可返回列表查看数据复制状态。
- 查验数据
同步任务完成后,控制台返回比对结果“一致”。
演示数据较少,我们分别登陆 MySQL 和 TiDB 查验表结构和数据。
一次完整的数据复制流程演示到这里,还有一些注意事项参见 NineData 官方文档:
https://docs.ninedata.cloud/replication/mysql_to_others/mysql_to_tidb
总结
NineData 社区版通过本地化部署、永y久免费,及极简而有效的用户体验,为数据管理提供了安全高效的解决方案。帮助个人开发者、初创团队提升全链路数据管控能力、数据流转处理效率,从容应对未来业务增长需求和数据管理中的各种挑战。
Have a nice day ~ ☕
🌻 往期精彩 ▼
-- / END / --
👉 这里可以找到我
- 微信公众号:@少安事务所
- TiDB 专栏:@ShawnYan
👉 这里有得聊
如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。 关注微信公众号:少安事务所,后台回复[群],即可看到入口。
如果这篇文章为你带来了灵感或启发,请帮忙『三连』吧,感谢!ღ( ´・ᴗ・` )~