数据同步快速入门
数据同步的重要性
数据同步是现代数据架构中的关键组件,它帮助您实现数据在不同系统间的无缝流动。使用 ProtonBase 数据同步服务,您可以:
- 简化数据迁移:轻松将数据从现有系统迁移到 ProtonBase
- 实时数据集成:保持多个数据系统间的数据一致性
- 降低运营成本:减少手动数据处理和维护工作
- 提高数据可用性:确保数据在需要时可用且最新
ProtonBase 提供数据同步服务(Teleport),可以方便、快捷地将数据一站式导入/导出到 ProtonBase。支持 MySQL、Postgres、Kafka 等数据源,集数据同步、迁移于一体。
核心功能
支持的同步操作
- 支持单表、多表、整库、整实例同步
- 支持字段裁剪、字段映射、类型转换等操作
- 支持分库分表同步到一个目标逻辑表
- 支持 DDL 变更,包括新增表、新增字段等操作
产品优势
- 高可靠性:企业级数据同步,确保数据一致性
- 高性能:优化的同步引擎,提供高吞吐量
- 易用性:直观的界面和简化的配置流程
- 灵活性:支持多种数据源和复杂映射规则
快速开始
以 MySQL 同步到 ProtonBase 作为例子
配置网络
一般云厂商的 RDS,需要配置白名单才能访问。数据同步的公网 IP 地址如下,请按照云厂商方式将数据同步公网 IP 设置为 RDS 白名单。
云产商 | 地域 | 公网 IP |
---|---|---|
Alibaba Cloud | cn-beijing | 39.105.121.234 |
Alibaba Cloud | cn-hangzhou | 47.111.11.209 |
AWS-CN | cn-north-1 | 140.179.51.205 |
AWS-CN | cn-northwest-1 | 161.189.222.97 |
安全建议:
- 仅添加必要的 IP 地址到白名单
- 定期审查白名单配置
- 使用最小权限原则配置数据库用户
创建同步任务
左侧导航栏中选择数据同步 -> 数据导入,然后点击右上角创建按钮
在弹框中,输入作业名称和选择数据源类型 MySQL。
命名规范:
- 使用描述性的作业名称,如 "mysql-to-protonbase-ecommerce"
- 遵循统一的命名约定,便于管理和识别
配置数据源
在左边输入 MySQL 的连接方式,通过"连接测试"按钮测试是否连接成功;在右边选择目标 Warebase,同样选择"连接测试"测试连接,都出现"连接成功"字样后代表源端和目标端连通正常。更多有关数据源的介绍,参考文章选择数据源。
连接配置最佳实践:
- 使用专用的同步账户,避免使用管理员账户
- 配置适当的连接超时和重试机制
- 定期轮换访问凭证
选择同步对象
如何快速选择或者过滤同步对象,参考同步对象筛选
对象筛选建议:
- 初期同步时选择少量表进行测试
- 使用正则表达式批量筛选相似命名的对象
- 排除不需要同步的系统表或临时表
配置映射规则
本同步任务的默认映射方式为:将 MySQL 数据库(Database)的表映射到 Warebase 的 public 模式(schema)下,具体参考 同步对象映射。
映射配置提示:
- 理解默认映射规则,避免数据覆盖
- 对于分库分表场景,配置合适的映射规则
- 测试映射结果确保符合预期
设置同步策略
同步策略选择:
- 全量同步:适用于一次性数据迁移
- 增量同步:适用于持续数据同步
- 全量+增量:结合两者优势,确保数据完整性
启动同步
同步任务配置结束后,点击启动按钮启动任务
启动完成后,可以查看同步任务状态,具体参考作业操作和状态。
启动后检查:
- 监控作业状态和进度
- 检查错误日志和警告信息
- 验证同步数据的完整性和准确性
端到端示例:MySQL 到 ProtonBase 数据同步
以下是一个完整的端到端示例,演示如何将 MySQL 数据库中的数据同步到 ProtonBase。
1. 准备源数据
首先,在 MySQL 数据库中创建示例表并插入数据:
-- 创建示例数据库
CREATE DATABASE ecommerce;
USE ecommerce;
-- 创建用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建订单表
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
product_name VARCHAR(100) NOT NULL,
quantity INT NOT NULL,
price DECIMAL(10,2) NOT NULL,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- 插入示例数据
INSERT INTO users (username, email) VALUES
('alice', 'alice@example.com'),
('bob', 'bob@example.com'),
('charlie', 'charlie@example.com');
INSERT INTO orders (user_id, product_name, quantity, price) VALUES
(1, 'Laptop', 1, 1200.00),
(1, 'Mouse', 2, 25.00),
(2, 'Keyboard', 1, 75.00),
(3, 'Monitor', 1, 300.00);
2. 配置网络连接
- 获取您的 ProtonBase 数据同步服务的公网 IP 地址
- 将该 IP 地址添加到 MySQL RDS 的白名单中
- 确保防火墙规则允许从该 IP 地址的连接
3. 创建数据同步作业
- 登录 ProtonBase 控制台
- 导航到"数据同步" -> "数据导入"
- 点击"创建"按钮
- 输入作业名称,例如"mysql-to-protonbase-ecommerce"
- 选择数据源类型为"MySQL"
4. 配置数据源连接
在数据源配置页面:
-
输入 MySQL 连接信息:
- 主机地址:您的 MySQL RDS 地址
- 端口:3306
- 数据库名:ecommerce
- 用户名和密码
-
选择目标 Warebase:
- 选择您要同步到的 Warebase 实例
-
点击"连接测试"验证连接
5. 筛选同步对象
- 在对象筛选页面,选择"ecommerce"数据库
- 选择要同步的表:
- users 表
- orders 表
6. 配置对象映射
- 默认映射会将 MySQL 表映射到 ProtonBase 的 public schema
- 如果需要自定义映射,可以修改映射规则:
concat('ecommerce', '.', 'public', '.', SOURCE_OBJECT)
7. 配置同步策略
-
选择同步方式:
- 全量同步:同步所有现有数据
- 增量同步:持续同步新增和变更的数据
-
根据业务需求选择合适的同步策略
8. 启动并监控作业
- 点击"启动"按钮开始数据同步
- 在作业详情页面监控同步进度
- 查看关键指标:
- 已处理记录数
- 处理速度(RPS)
- 同步延迟
9. 验证同步结果
在 ProtonBase 中验证数据是否成功同步:
-- 连接到目标数据库
\c ecommerce
-- 查看同步的用户数据
SELECT * FROM public.users;
-- 查看同步的订单数据
SELECT * FROM public.orders;
-- 执行关联查询验证数据完整性
SELECT u.username, o.product_name, o.quantity, o.price
FROM public.users u
JOIN public.orders o ON u.id = o.user_id;
10. 处理常见问题
连接失败
- 检查网络白名单配置
- 验证 MySQL 用户权限
- 确认防火墙规则
数据不一致
- 检查映射规则是否正确
- 验证源表和目标表结构
- 查看同步日志排查错误
性能问题
- 调整同步作业的并发度
- 优化源数据库查询性能
- 检查网络带宽限制
通过以上步骤,您已经成功完成了从 MySQL 到 ProtonBase 的端到端数据同步。这个示例展示了数据同步的基本流程,您可以根据实际需求调整配置参数和同步策略。