使用 Databend Cloud 归档 OceanBase 数据数据库
数据归档的必要性: 随着生产数据库数据量持续增长,不仅备份负担加重,数据库性能也会受到显著影响。通过数据归档方案,我们可以将主库中不再频繁访问的早期数据(如历史订单或日志)迁移到归档库中。这能有效减小生产数据库的规模,从而提升其性能。
数据归档是生产数据库管理中的一项关键任务。本文将以 Databend Cloud 归档 OceanBase 数据 为例进行说明。该方案同样适用于 MySQL, TiDB, PostgreSQL, Oracle, SQL Server 等其他数据库。
方案核心要素:
- 使用工具: db-archiver
- 数据存储: 用户指定的对象存储桶 (Bucket)
- 计算资源: Databend Cloud (按需付费模式)
整体架构图
本次 Demo 以阿里云为基础:
上图描述:
- 使用 db-archiver 连接 OceanBase 读取数据写入 Databend Cloud 中
- Databend Cloud 使用外部表把数据存储在用户的 Bucket 中
- Databend Cloud 在不使用时不会产生任何费用,使用时直接通过 Databend Cloud 平台访问,大大简化了使用和运维操作。
接下来我们演示一下上面的操作
环境准备
- 下载 db-archiver: https://github.com/databendcloud/db-archiver/releases
- 注册 Databend Cloud https://app.databend.cn/
- 准备要存储数据的 bucket 及对应的 ak/sk 信息和连接串信息
下载 db-archiver
db-archiver 是基于 Golang 开发, 如果能力也可以基于 main 编译,这样发现不爽的地方,可以直接修改,但做作为使用者,我一般是偷懒主义下载可用的二进制版本, 注意
-
linux-amd64 对应 64 位 X86 CPU
-
linux-arm64 对应 64 位的 ARM CPU 下载解压后只有一个 db-archiver 执行程序,对于配置文件,可以参考: https://docs.databend.com/tutorials/migrate/migrating-from-mysql-with-db-archiver
#cat jobs/20250716/ob-sbtest1-lt2000w-to-databend/ob-sbtest1-lt2000w-to-databendcloud.json { "sourceHost": "192.168.1.207", "sourcePort": 2883, "sourceUser": "root", "sourcePass": "OB密码", "sourceDB": "wubx", "sourceTable":"sbtest1", "sourceQuery": "select * from wubx.sbtest1", "sourceWhereCondition": "id <= 20000000", "sourceSplitKey": "id", "databendDSN": "https://wubx:password@租户名.gw.aliyun-cn-beijing.default.databend.cn/wubx?warehouse=small-wubx", "databendTable": "wubx.sbtest1", "batchSize": 20000, "batchMaxInterval": 30, "maxThread": 5, "deleteAfterSync": false }
上述配置文件简要说明
- sourceHost 源端 IP
- sourcePort 源端 port
- sourceUser 源端用户名
- sourcePass 源端密码
- sourceDB 源端 DB
- sourceTable 源端要迁移的 Table
- sourceQuery 归档读取数据的 SQL ,可以指定列
- sourceWhereCondition 归档条件, 数据过滤的条件可以写在这里
- sourceSplitKey 归档任务数据区间拆分的 key
- databendDSN 写入 Databend Cloud 的连接地址
- databendTable 写入的 Table
- batchSize 读取和写入的每个 Batch 多大
- batchMaxInterval 一个 Batch 最大间隔时间,用于对源库做一个保护,单位 秒
- maxThread 归档任务数
- deleteAfterSync 归档成功后是否会删除源端数据
db-archiver 限制, 目前 db-archiver 归档对源表要求:
-
有整数的主键
- sourceWhereCondition 基于任务拆分键的条件
- sourceSplitKey 任务拆分键
-
或是有基于明确的时间列做归档
- sourceWhereCondition 基于时间过滤的条件
- sourceSplitTimeKey 时间字段
- timeSplitUnit 任务切分的单位
任务的 json 文件后续可以考虑用工具生成,这样就方便集成 db-archiver
这里提供一个基于时间归档的配置: { "sourceHost": "127.0.0.1", "sourcePort": 3306, "sourceUser": "root", "sourcePass": "12345678", "sourceDB": "mydb", "sourceTable": "test_table1", "sourceQuery": "select * from mydb.test_table1", "sourceWhereCondition": "t1 >= '2024-06-01' and t1 < '2024-07-01'" and status=1, "sourceSplitTimeKey": "t1", "timeSplitUnit": "hour", "databendDSN": "https://cloudapp:password@tn3ftqihs--medium-p8at.gw.aws-us-east-2.default.databend.com:443", "databendTable": "default.test_table1", "batchSize": 10000, "batchMaxInterval": 30, "copyPurge": true, "copyForce": false, "disableVariantCheck": true, "userStage": "~", "deleteAfterSync": false, "maxThread": 10 }
注册 Databend Cloud
注册完 Databend Cloud 需要创建归档的 DB 及对应的表,获取连接 Databend Cloud 的连接。
创建DB及外部表
创建 DB 并使用
create database wubx; use wubx;
创建连接名称对应的存储(bucket),需要提前准备好存储的连接 URL 和对应的 AK/SK 信息:
CREATE or replace CONNECTION wubx_oss STORAGE_TYPE = 'oss' ENDPOINT_URL='oss-cn-beijing-internal.aliyuncs.com' ACCESS_KEY_ID = '替换用户 AK' access_key_secret = '替换用户 SK';
创建外部表,需要准备好用户名准备的 bucket 名,及在 bucket 下存放的 prefix
CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL DEFAULT '0', c char(120) NOT NULL DEFAULT '', pad char(60) NOT NULL DEFAULT '' ) 'oss://wubx-bj01/wubx/' connection=( connection_name='wubx_oss' );
例如 sbtest1 存储在 oss://wubx-bj/wubx/ 下面。
表结构一般是删除源库中的索引后,直接在 Databend 中创建。不过,创建外部表时,需注意指定连接信息。 表结构转换也可以使用: https://github.com/wubx/databend-workshop/blob/main/datax_mysql2databend/mysql_str2databend.py 这个脚本自动转换
获取连接 Databend Cloud 信息
创建一个连接 Databend Cloud 使用用的程序用的用户名和密码
create role wubx_admin; grant ownership on wubx.* to role wubx_admin; create user 'wubx' identified by 'password'; grant role wubx_admin to wubx; alter user wubx with default_role='wubx_admin';
通过 Role 来控制权限,方便后期做权限规划
获取连接串,首页概览:连接(DSN)。
在这个里面选择使用的数据库和计算集群,对于归档来讲,创建一个 xsmall 的集群即可,如果将来不够用了,可以创建 multi-cluster 的集群。主要关注一下主机连接串。
例如这里获取的为: 租户名.gw.aliyun-cn-beijing.default.databend.cn 补全一个 DSN 为: https://wubx:password@租户名.gw.aliyun-cn-beijing.default.databend.cn/wubx?warehouse=small-wubx
参考格式: https://用户名:密码@租户名.gw.aliyun-cn-beijing.default.databend.cn/数据库名?warehouse=集群名
也可以直接使用平台上 cloudapp 这个用户生成的连接。
其它注意事项: 使用 bendsql 连接 Databend Cloud 有两种方式: 1. 使用 DSN 方式,也是推荐的方式: https://docs.databend.cn/tutorials/connect/connect-to-databendcloud-bendsql export databend://用户名:密码@租户名.gw.aliyun-cn-beijing.default.databend.cn:443/wubx?warehouse=small-wubx bendsql 2. 使用命令行参数: bendsql -h 租户名.gw.aliyun-cn-beijing.default.databend.cn -P 443 --tls true -u 用户名 -p 密码 --set warehouse=small-wubx
数据归档
./db-archiver -f ./jobs/20250716/ob-sbtest1-lt2000w-to-databend/ob-sbtest1-lt2000w-to-databendcloud.json >> ./jobs/20250716/ob-sbtest1-lt2000w-to-databend/ob-sbtest1-lt2000w-to-databendcloud.log 2>&1
把任务生成的 log 直接存到对应的目录下面,后面方便分析。 任务运行完会提示源库多少条,目标同步完成多少条,也可以在 Databend Cloud 平台直接查询。另外一些报表任务也可以在 Databend Cloud 中体验一下。
总结
该方法的优点:
- 完全利用云上基础设施可以实现按需付费。 存储的按需储费, 计算 Databend Cloud 按需付费。
- 基于无运维操作,算力可以根据需求秒级伸缩
- 合理的调整数据摄入接点休眠时间,来节省费用
关于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
👨💻 Databend Cloud:databend.cn
📖 Databend 文档:docs.databend.cn
💻 Wechat:Databend
✨ GitHub:github.com/databendlab...

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
全新高效模型架构!RWKV-7s闪耀WAIC
2025 年 7 月 26-29 日,RWKV 团队受邀参加2025世界人工智能大会(WAIC 2025), 并在大会公开了 RWKV 最新的高效大模型架构:RWKV-7s,吸引了来自产业界、学术界及媒体的广泛关注与讨论。 战略合作 广泛落地 7月26日,移远通信宣布与RWKV公司建立全面合作关系,双方将依托移远的算力平台,优化并支持RWKV最新模型架构,共同推动大模型在端侧设备的低资源占用部署。 端侧大模型迎来“轻”革命!移远通信 × RWKV 打造“轻量AI大脑” 凭借RWKV架构“资源占用和推理速度恒定”的特性,RWKV系列模型在端侧部署具有天然优势。现在,RWKV已与多家芯片厂商、具身智能厂商合作将RWKV模型部署在芯片及机器人上,如:高通、联发科、Intel、AMD、英伟达、地平线机器人、有鹿机器人等等。 全新技术 全面领先 WAIC 大会首日,承接 RWKV-7 优势的 RWKV-7s 新型高效大模型架构正式发布。凭借其原创的 DeepEmbed 和 DeepEmbedAttention 技术,成为现场焦点并 荣获WAIC“镇馆之宝-未来之星”称号。 镇馆之宝|WAIC 2...
- 下一篇
TPU Deep Dive:Google TPU 架构深度分析
编者按: 在人工智能算力军备竞赛愈演愈烈的今天,为什么 Google 会选择与主流 GPU 截然不同的技术路线,开发出架构独特的 TPU?这种专用芯片究竟凭借什么优势,能够支撑起 Gemini、Veo等AI 模型的训练与推理? 文章从单芯片架构出发,深入剖析了 TPU 的核心设计理念:首先解释了 TPU 如何通过脉动阵列和流水线技术优化矩阵运算,然后阐述了 XLA 编译器如何通过预先编译减少缓存依赖,大幅降低能耗。在多芯片层面,作者详细介绍了 TPU 从托盘、机架、Pod 到 Multi-Pod 的层级扩展架构,特别是 OCS 光交换技术如何实现灵活的拓扑重构和故障容错。文章还通过具体案例展示了不同拓扑结构对并行训练策略的影响,以及 Multi-Pod 架构如何支撑超大规模模型训练。 作者 | Henry Ko 编译 | 岳扬 最近我大量使用 TPU,发现它们与 GPU 的设计理念非常不同,感觉很有趣。 TPU 的主要优势在于其可扩展性。这是通过硬件层面(例如能效方面和模块化)与软件层面(例如 XLA compiler)的协同设计实现的。 01 背景信息 简单介绍一下 TPU,它是谷歌...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主