Doris 导入导出Mysql表数据
使用EXPORT
命令导出csv格式的 Doris 中存储的数据。
使用 Stream Load 进行导入。Stream Load 可以保证一批导入任务的原子性,要么全部导入成功,要么全部导入失败。
一、表数据导出
1.注意事项
export 数据导出到本地文件系统,需要在 fe.conf 中添加enable_outfile_to_local=true
并且重启 FE。
导出的路径为be节点下的文件夹,提前创建好,否则会报路径找不到!!!
2.导出代码如下
通过mysql客户端执行
# 按分区导出test 表到 绝对路径下
EXPORT TABLE test TO "file:///home/back/export-data-"
PROPERTIES(
"parallelism" = "5",
"format" = "csv",
"column_separator"=",",
"data_consistency" = "partition",
"max_file_size" = "1024MB"
);
3.批量修改格式
ssh 连接be节点。进入/home/back文件夹下。
此时导出的文件没有文件后缀,通过Stream Load 导入会报错。必须添加.csv 的文件后缀
vim renameFiles.sh
#!/bin/bash
# 批量修改文件
path="/home/back"
cd $path
for file in *
do
new_file="${file}.csv"
mv "$file" "$new_file"
# 检查是否成功
if [ $? -eq 0 ]; then
echo "文件重命名成功: $file -> $new_file"
else
echo "文件重命名失败"
fi
done
./renameFiles.sh
二、导入
1.导入单个csv 文件
通过 curl
命令可以提交 Stream Load 导入作业。
curl -v --http0.9 --location-trusted
-u 用户名:密码
-H "Expect:100-continue"
-H "column_separator:,"
-T 你的csvs文件.csv
-XPUT http://<fe_ip>:<fe_http_port>/api/导入的数据库名/导入的表明/_stream_load
注意 导入的端口是fe的http_port 默认为8030
导入成功截图
红框内显示导入结果 sucess 和 导入的数据条数
2.批量导入
shell 脚本如下,注意每个be节点下的文件都要导入。
vim importBatchCsv.sh
#!/bin/bash
path="/home/back"
cd $path
a=0
for var in $(ls *.csv)
do
let a++
curl -v --http0.9 --location-trusted -u 用户名:密码 -H "Expect:100-continue" -H "column_separator:," -T $var -XPUT http://FE节点的ip:8030/api/你的的库名/需要导入的表名/_stream_load
echo "这是第"$a"次数据导入"
done
三、总结
以上就是今天要讲的内容,本文仅仅简单介绍了doris csv文件的导入导出,引用官网的原话
Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、湖仓一体等使用场景,用户可以在此之上构建大屏看板、用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。