第4.1章:StarRocks数据导出--导出总览

一般来说,业务上涉及到的数据导出包括表结构导出和表数据导出,通常用来进行数据备份或数据迁移。

一、表结构导出

StarRocks的元数据持久化在FE的BDB中,并不能直接访问或者导出,不过为了兼容MySQL协议,StarRocks在information_schema库下面也模拟了一部分,至少获取表结构信息是足够的。举一个场景,假设我们在StarRocks中的表非常多,我们希望将表中的字段名称、注释或类型等做成页面展示或者搜索,就可以直接去information_schema.columns表中去取相关的信息。

StarRocks目前还未支持批量导出建表语句,社区也有同学问起过该功能的排期,其实低调内涵的Astralidea老大(StarRocks研发)早就在git上分享了一款表结构导出工具:

GitHub - Astralidea/olapdb-toolicon-default.png?t=M1L8https://github.com/Astralidea/olapdb-tool

工具介绍言简意赅:

OlapDb Tools

A set of Tools For OlapDb

olapdump - dump mysql/starrocks/doris table structure

olapdb-tool需要依赖Python3和PyMSQL,这两个工具的安装可以参考第3.0章:StarRocks SSB性能测试,按照咱们的安装方式,导出命令的语法为:

python3 olapdump.py [-h HOST] [-P PORT] [-u USER] [-p PASSWORD] [-d DATABASE]

例如:

python3 olapdump.py -h192.168.110.101 -P9030 -uroot -proot -dssb_1g > dump_ssb.sql

备注:Astralidea大在git上提到olapdb-tool需要安装argparse和pymysql,如果当前系统中已经有Python3,可以依次执行:python3 -> help() -> modules,在交互式命令行中查看已有的模块。

二、表数据导出

StarRocks中表数据的导出方式就比较丰富了,按数据读取方式的不同,可以大致分为以下四类:

读取方式

读取工具

数据去向

适用量级

Connector

Flink Connector、Spark Connector

较灵活

较灵活[常用于ETL]

Export/Backup

StarRocks Broker

HDFS、OSS、S3等

较灵活[常用于较大数据量的备份或迁移]

JDBC

Flink、Spark、DataX(mysqlreader)等

较灵活

GB级[效率不高]

第三方可视化工具

DBeaver、Navicat、SQLyog、Datagrip等

本地文件

MB级[仅供测试]

其中,JDBC我们肯定不陌生,在操作上也不复杂,将StarRocks视为MySQL来处理就可以,通常仅用于小数据量的数据,同时效率可能也不是很高。

需要注意的是,StarRocks目前还未支持使用SQL语句直接导出数据到本地,如果需要导出的数据量不大,可以使用第三方工具自带的导出功能,或者,借助mysql client导出,例如:

mysql -h192.168.110.101 -uroot -proot -P9030 -Ne "use loong;select * from car_status;" > /out/dump_car.csv

注意:使用JDBC SQL或者mysql client的方式时需要合理的调整StarRocks的查询超时时间。

从推荐程度上,表中前两项为官方提供的导出方式,最为推荐,也适用于较大量级的数据量。Flink Connector Source和DataX mysqlreader我们已经在导入部分的3.4章与3.5章中介绍过了,后面的章节,我们会主要介绍Export、Spark Connector以及Backup/Restore。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值