关于mysql:使用-Databend-助力-MySQL-的数据分析

46次阅读

共计 2426 个字符,预计需要花费 7 分钟才能阅读完成。

指标

Databend 是一个十分先进的基于对象存储云原生数仓 1 能够提弱小的计算剖析及存储能力。让 MySQL DBA 十分眼馋。明天想把 MySQL 的 wubx 库从 MySQL 全量迁徙到 Databend 中。
借助工具:dumpling2

Dumpling 介绍

Dumpling3 是反对以 SQL 文本或者 CSV 格局将 MySQL/TiDB 数据导出的工具。设计初衷是为了代替 Mydumper4, 所以根本用法能够参考 Mydumper, 当然在实现中没有齐全照搬 Mydumper, 因而存在与 Mydumper 不同的用法。更多帮忙:https://github.com/pingcap/ti…

遗憾的 TiDB 没有提供 dumpling 的独自下载,只提供了大的 package:https://pingcap.com/zh/produc… 内含:dumpling 二进制包,下载安装就省略了。

环境阐明

当初 MySQL 中 wubx 库是 sysbench 生成的数据,10 个表,每个表 1000 万数据。迁徙指标:DatabendDatabend 装置部署参考:https://databend.rs/doc/deploy

应用 dumpling 备份现有数据库

dumpling -uwubx -pwubxwubx -P3306 -h 192.168.2.10 --filetype csv -t 8 -o ./ -F 256M -B wubx

命令阐明:
-u   mysql 用户名
-p   mysql 明码
-P   mysql 端口
-h   mysql 机器 ip
–filetype csv  指定应用 CSV 格局导出(十分重要)
-t  8  应用 8 过程导出
-o  ./ 指定导出来的文件寄存地位
-F 导出文件的大小
-B  wubx  指定导出的数据库
命令运行后导出来文件如下:

因为 Databend 对 MySQL 的语法并没有齐全兼容,这里须要去除 schema 上的一定义:

  • engine=InnoDB

<!—->

  • 二级索引

<!—->

  • 正文,这个在新的 planner 中曾经反对

针对 sbtest 表处理能够比拟爆力的:

sed -i 's/ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci//g' *.sql

解决完表构造如下:

 cat wubx.sbtest1-schema.sql 
/*!40101 SET NAMES binary*/;
CREATE TABLE `sbtest1` (
  `id` int NOT NULL,
  `k` int NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
);

好了,后续的咱们开始应用 streaming_load 来加载数据了。

应用 databend 的 streaming load 加载数据

这里导入数据的外围是利用了 databend streaming load 性能,具体参考:https://databend.rs/doc/load-…
首先在 databend 中创立 wubx 数据库

echo "create database wubx"|mysql -h 127.0.0.1 -P3307 -uroot 

因为表的数量较多,这里应用了一个脚本 cat im.sh

#!/bin/bash
t=''
getTable(){str=${1#*.}
 t=${str%%-*}
}

for i in `ls *-schema.sql`
do
        getTable $i
        echo $t
        cat $i | mysql -h127.0.0.1 -P3307 -uroot wubx
        time ls *$t*.csv |xargs -P 8 -I{} curl -H "insert_sql:insert into wubx.$t format CSV" -H "skip_header:1" -F "upload=@{}" -XPUT http://root:@localhost:8000/v1/streaming_load
done

脚本比拟毛糙,能够依据理论状况调整。运行脚本就能够实现数据加载。

进行剖析计算

到这里数据曾经加载到 Databend 中了,如果是你用的实在数据,你能够运行一下统计分析类数据测试一下了。顺便说一下,如果你为了体验 databend 的 join 性能。能够把新 planner 关上

set enable_planner_v2=1;

利用 show settings 确认 enable_planner =1 就能够应用 Databend 的 join 性能。目前 join 差不多 1-2 周就能够对外默认凋谢,大家在应用有余的方也能够在 github 上反馈一下。

对于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也能够做实时剖析的旧式数仓。期待您的关注,一起摸索云原生数仓解决方案,打造新一代开源 Data Cloud。

  • Databend 文档:https://databend.rs/
  • Twitter:https://twitter.com/Datafuse_…
  • Slack:https://datafusecloud.slack.com/
  • Wechat:Databend
  • GitHub:https://github.com/datafusela…


文章首发于公众号:Databend


  1. https://github.com/datafusela… ↩
  2. https://github.com/pingcap/ti… ↩
  3. https://github.com/pingcap/ti… ↩
  4. https://github.com/pingcap/my… ↩

正文完
 0