活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      云数据库ClickHouse

      云数据库ClickHouse

        • 产品公告
        • 【资源池下线】云数据库ClickHouse下线部分资源池
        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 功能特性
        • 应用场景
        • 术语解释
        • 功能约束
        • 计费说明
        • 计费模式
        • 到期与欠费
        • 包年/包月
        • 续订与退订
        • 变更配置
        • 查看消费账单
        • 快速入门
        • 快速入门总流程
        • 创建实例
        • 创建账号
        • 连接数据库
        • 经典场景示例
        • ClickHouse数据迁移
        • ClickHouse数据迁移概述
        • 从MySQL迁移数据
        • 从本地存储迁移数据
        • 从Flink迁移数据
        • 从ClickHouse 自建集群迁移数据(方案一)
        • 从ClickHouse 自建集群迁移数据(方案二)
        • 从Kafka迁移数据
        • 用户指南
        • 集群管理
        • 实例管理
        • 实例变更
        • 计划重启时间
        • 标签管理
        • 可维护时间
        • 账号管理
        • 监控
        • 客户端连接
        • JDBC客户端
        • 命令行客户端
        • HTTP客户端
        • MySQL客户端
        • 查询
        • 正在运行的语句
        • 慢查询
        • 字典
        • ClickHouse可视化
        • 最佳实践
        • 实践教程
        • 开发指南
        • 基本SQL语法
        • CREATE DATABASE
        • CREATE TABLE
        • CREATE USER
        • CREATE VIEW
        • GRANT
        • INSERT INTO
        • SELECT
        • 常见数据类型
        • 数据库引擎
        • 表引擎概述
        • MaterializedMySQL引擎
        • 常见问题
        • 计费类
        • 管理类
        • 操作类
        • 购买类
        • 安全白皮书
        • 云数据库ClickHouse安全白皮书
        • 相关协议
        • 服务等级协议
        • 服务条款
          无相关产品

          本页目录

          帮助中心云数据库ClickHouse开发指南MaterializedMySQL引擎
          MaterializedMySQL引擎
          更新时间 2023-12-20 18:53:48
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2023-12-20 18:53:48
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本页面介绍了MaterializedMySQL引擎。

          MaterializedMySQL是一个用于从MySQL数据库中获取数据的表引擎。它的工作原理是:

          • MaterializedMySQL会定期从MySQL拉取数据,同步到云数据库ClickHouse本地。
          • 数据同步后,会存储在本地云数据库ClickHouse表中,表引擎设置为合适的引擎(如MergeTree)。
          • 查询时,云数据库ClickHouse不会访问MySQL,而是直接从本地已同步的表中读取数据。
          • 同步的时间间隔可以通过 mysql_materialized_tables_ttl参数设置,默认10分钟同步一次。

          MaterializedMySQL的主要优点是:

          • 减少了跨网络访问MySQL的开销,查询性能更好。
          • 可以对同步的数据进行云数据库ClickHouse的查询优化,实现更快的分析。
          • 支持增量同步,只同步新增或修改的数据,而不是整表同步。
          • 支持只同步指定的列,以减少不需要的数据量。
          • 本地表引擎可自定义,使存储方式更灵活。

          创建数据库

          语法

          创建使用MaterializedMySQL引擎的表的语法:

          CREATE TABLE [IF NOT EXISTS] table_name 
          ENGINE = MaterializedMySQL(`mysql_source_host`, `mysql_source_database`, `mysql_source_table`, `clickhouse_sink_database`, `clickhouse_sink_table`, `clickhouse_engine`)
          
          • mysql_source_host:MySQL的源主机地址
          • mysql_source_database:MySQL源数据库名
          • mysql_source_table:MySQL源表名
          • clickhouse_sink_database:云数据库ClickHouse目标数据库名
          • clickhouse_sink_table:云数据库ClickHouse目标表名
          • clickhouse_engine:云数据库ClickHouse目标表的引擎

          示例

          -- 从MySQL sync_test库的data表同步到ClickHouse的sync数据库sync_data表
          
          CREATE TABLE sync.sync_data
          ENGINE = MaterializedMySQL('localhost', 'sync_test', 'data', 'sync', 'sync_data', 'MergeTree() order by id');
          

          这个表会定期从MySQL localhost上的sync_test库的data表同步数据到云数据库ClickHouse的sync库的sync_data表,目标表的引擎是MergeTree。

          MaterializedMySQL提供了从MySQL增量同步数据的便捷途径,可以让云数据库ClickHouse对MySQL数据进行更优化的存储和查询。

          MySQL服务器端配置

          为了 MaterializedMySQL的正确工作,有一些必须设置的 MySQL端配置设置:

          • default_authentication_plugin = mysql_native_password,因为 MaterializedMySQL 只能授权使用该方法。
          • gtid_mode = on,因为基于GTID的日志记录是提供正确的 MaterializedMySQL复制的强制要求。
          说明

          当打开 gtid_mode 时需要指定 enforce_gtid_consistency = on。

          支持的数据类型

          MySQL 云数据库ClickHouse
          TINY Int8
          SHORT Int16
          INT24 Int32
          LONG UInt32
          LONGLONG UInt64
          FLOAT Float32
          DOUBLE Float64
          DECIMAL, NEWDECIMAL Decimal
          DATE, NEWDATE Date
          DATETIME, TIMESTAMP DateTime
          DATETIME2, TIMESTAMP2 DateTime64
          YEAR UInt16
          TIME Int64
          ENUM Enum
          STRING String
          VARCHAR, VAR_STRING String
          BLOB String
          GEOMETRY String
          BINARY FixedString
          BIT UInt64
          SET UInt64

          MySQL中的Time 类型,会被云数据库ClickHouse转换成微秒来存储。如果MySQL表包含此类类型的列,云数据库ClickHouse抛出异常"Unhandled data type"并停止复制。

          规范和推荐用法

          兼容性限制

          除了数据类型的限制之外,还有一些限制与 MySQL数据库相比有所不同,这应该在复制之前解决:

          • MySQL 中的每个表都应该包含 PRIMARY KEY。
          • 对于表的复制,那些包含 ENUM 字段值超出范围的行(在 ENUM 签名中指定)将不起作用。

          DDL Queries

          MySQL DDL 语句会被转换成对应的云数据库ClickHouse DDL 语句,比如: (ALTER, CREATE, DROP, RENAME). 如果云数据库ClickHouse 无法解析某些语句DDL 操作,则会跳过。

          数据复制

          MaterializedMySQL不支持直接的 INSERT, DELETE 和 UPDATE 查询。然而,它们在数据复制方面得到了支持:

          • MySQL INSERT查询被转换为 _sign=1的INSERT查询。
          • MySQL DELETE查询被转换为 INSERT,并且 _sign=-1。
          • 如果主键被修改了,MySQL的 UPDATE 查询将被转换为 INSERT 带 _sign=1 和INSERT 带有_sign=-1;如果主键没有被修改,则转换为 INSERT和 _sign=1。

          MaterializedMySQL 数据表查询

          SELECT 查询从 MaterializedMySQL表有一些细节:

          • 如果在SELECT查询中没有指定 _version,则FINAL修饰符被使用,所以只有带有 MAX(_version)的行会返回每个主键值。
          • 如果在SELECT查询中没有指定 _sign,则默认使用 WHERE _sign=1。所以被删除的行不是 包含在结果集中。
          • 结果包括列注释,以防MySQL数据库表中存在这些列注释。

          索引转换

          在云数据库ClickHouse表中,MySQL的 PRIMARY KEY 和 INDEX 子句被转换为 ORDER BY 元组。

          云数据库ClickHouse只有一个物理排序,由 order by 条件决定。要创建一个新的物理排序,请使用materialized views。

          说明
          • _sign=-1 的行不会被物理地从表中删除。

          • 级联 UPDATE/DELETE 查询不支持 MaterializedMySQL 引擎。

          • MaterializedMySQL 受 optimize_on_insert 设置的影响。当MySQL服务器中的一个表发生变化时,数据会合并到 MaterializedMySQL 数据库中相应的表中。

          使用示例

          MySQL 查询语句:

          mysql>CREATE DATABASE db;
          mysql>CREATE TABLE db.test (a INTPRIMARYKEY, b INT);
          mysql>INSERT INTO db.test VALUES (1,11),(2,22);
          mysql>DELETE FROM db.test WHERE a=1;
          mysql>ALTER TABLE db.test ADDCOLUMN c VARCHAR(16);
          mysql>UPDATE db.test SET c='Wow!', b=222;
          mysql>SELECT * FROM test;
          
          ┌─a─┬───b─┬─c────┐
          │ 2 │ 222 │ Wow! │
          └───┴─────┴──────┘
          

          云数据库ClickHouse中的数据库,与MySQL服务器交换数据:

          创建的数据库和表:

          CREATE DATABASE mysql ENGINE = MaterializedMySQL('localhost:3306','db','user','***');
          SHOW TABLES FROM mysql;
          
          ┌─name─┐
          │ test │
          └──────┘
          

          数据插入之后:

          SELECT * FROM mysql.test;
          
          ┌─a─┬──b─┐
          │ 1 │ 11 │
          │ 2 │ 22 │
          └───┴────┘
          

          删除数据后,添加列并更新:

          SELECT * FROM mysql.test;
          
          ┌─a─┬───b─┬─c────┐
          │ 2 │ 222 │ Wow! │
          └───┴─────┴──────┘
          

          完整同步示例

          CREATE TABLE mysql_sync.full_table 
          ENGINE = MaterializedMySQL('A.A.A.A:3306', 'sales', 'products', 'sync', 'products_mv', 'MergeTree() order by id');  
          

          这会完整同步MySQL server,其ip地址为 A.A.A.A 上的sales库中products表到云数据库ClickHouse中的sync库的products_mv表。

          增量同步示例

          CREATE TABLE mysql_sync.updated_data
          ENGINE = MaterializedMySQL('A.A.A.A:3306', 'sales', 'products', 'sync', 'product_updates', 'MergeTree() order by id', 1);
          

          该表仅同步products表中新增或修改过的数据。第6个参数 1表示启用增量同步。

          只同步部分列示例

          CREATE TABLE mysql_sync.product_names
          ENGINE = MaterializedMySQL('A.A.A.A:3306', 'sales', 'products', 'sync', 'product_names', 'MergeTree() order by id', 0, ['name', 'description']);
          

          这里只同步products表的name和description两列。第7个参数定义同步的列。

          设置同步周期示例

          CREATE TABLE mysql_sync.orders
          ENGINE = MaterializedMySQL('A.A.A.A:3306', 'store', 'orders', 'sync', 'orders_mv', 'MergeTree() order by id', 0, [], 3600);
          

          这里通过第8个参数将同步周期设置为3600秒,即每小时同步一次。

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  表引擎概述
          下一篇 :  常见问题
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明