近期很多用户采用了离线大数据解决方案产品,这里为大家推荐Doris数据仓托管解决方案;
由于 Doris 高度兼容 Mysql 协议,两者在 SQL 语法方面有着比较强的一致性,另外 Mysql 客户端也是 Doris 官方选择的客户端。因此,如需对 Mysql 进行数据分析,使用 Doris 的迁移成本较低。另外加上 Doris 各种优秀的计算能力,对原 Mysql 开发人员来说,基于 Doris 进行 Mysql 数据分析是一个良好的选择。
可以基于 Doris ODBC 外表的机制建立 Mysql 外表。语法如下:
CREATE EXTERNAL TABLE `doris_mysql_external_tbl1` (
`aaaa` int(11) NULL COMMENT "",
`bbbb` varchar(256) NULL COMMENT ""
) ENGINE=ODBC
COMMENT "ODBC"
PROPERTIES (
"host" = "xxxxx",
"port" = "3306",
"user" = "root",
"password" = "xxxxx",
"driver" = "MySQL ODBC 8.0 Driver",
"odbc_type" = "mysql",
"charest" = "utf8",
"database" = "abc",
"table" = "abc_utf8"
)
有多种生态组件可以方便实现实时导入 Mysql 数据到 Doris。第一种是基于 Mysql binlog + Canal 的方案,第二种是 Mysql binlog + Flink CDC。
Flink CDC 基于数据库日志的 Change Data Capture 技术,实现了全量和增量的一体化读取能力,并借助 Flink 优秀的管道能力和丰富的上下游生态,支持捕获多种数据库的变更,并将这些变更实时同步到下游存储。Flink SQL 原生支持的 Changelog 机制,可以让 CDC 数据的加工变得非常简单。用户通过 SQL 便能实现数据库全量和增量数据的清洗、打宽、聚合等操作,极大地降低了用户门槛。此外, Flink DataStream API 支持用户编写代码实现自定义逻辑,给用户提供了深度定制业务的自由度。
适用场景:
用户需要先在 Doris 端创建好与 Mysql 端对应的目标表。
Binlog Load 只能支持 Unique 类型的目标表,且必须激活目标表的 Batch Delete 功能。
开启 Batch Delete 的方法可以参考ALTER TABLE PROPERTY
中的批量删除功能。
示例:
--create Mysql table
CREATE TABLE `source_test` (
`id` int(11) NOT NULL COMMENT "",
`name` int(11) NOT NULL COMMENT ""
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- create Doris table
CREATE TABLE `target_test` (
`id` int(11) NOT NULL COMMENT "",
`name` int(11) NOT NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`id`) BUCKETS 8;
-- enable batch delete
ALTER TABLE target_test ENABLE FEATURE "BATCH_DELETE";
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。