Heimdall —— MySQL 数据库导入导出工具
Heimdall 是一款专门为 MySQL 设计的命令行导入导出工具,使用它,你可以通过写 SQL 的方式,将查询结果直接导出 xlsx、csv、markdown、html、json、yaml、xml、sql 等格式的文件,也可以将 xlsx 和 csv 格式的文件导入到数据库表中。
命令行选项
heimdall 支持以下命令
- import (别名 load) 将 xlsx 或者 csv 文件导入到数据库表中
- export (别名 query) 将 SQL 查询结果导出到各种格式的文件
import/load
使用 import/load 命令,你可以从 xlsx 或者 csv 文件导入数据库到数据表中。支持以下命令行选项:
- --host value, -H value MySQL host (default: "127.0.0.1")
- --port value, -P value MySQL port (default: 3306)
- --user value, -u value MySQL user (default: "root")
- --password value, -p value MySQL password
- --database value, -d value MySQL database
- --connect-timeout value database connect timeout (default: 3s)
- --debug, -D Debug mode (default: false)
- --file value, -i value, --input value [ --file value, -i value, --input value ] input excel or csv file path, this flag can be specified multiple times for importing multiple files at the same time
- --table value, -t value target table name
- --field value, -f value [ --field value, -f value ] field map, eg: excel_field:db_field, this flag can be specified multiple times
- --include value, -I value [ --include value, -I value ] include fields, if set, only these fields will be imported, this flag can be specified multiple times
- --exclude value, -E value [ --exclude value, -E value ] exclude fields, if set, these fields will be ignored, this flag can be specified multiple times
- --csv-sepertor value csv file sepertor, default is ',' (default: ",")
- --tx, -T import data using transaction, all success or all failure, only work with InnoDB or other engines that support transaction (default: false)
- --dry-run perform import tests to verify correctness of imported files, but do not commit transactions, only work with InnoDB or other engines that support transaction (default: false)
- --help, -h show help (default: false)
export/query
使用 export/query 命令,你可以将 SQL 查询结果导出到各种格式的文件,当前支持 JSON/YAML/Markdown/CSV/XLSX/HTML/SQL 等格式。支持以下命令行选项:
- --host value, -H value MySQL host (default: "127.0.0.1")
- --port value, -P value MySQL port (default: 3306)
- --user value, -u value MySQL user (default: "root")
- --password value, -p value MySQL password
- --database value, -d value MySQL database
- --connect-timeout value database connect timeout (default: 3s)
- --debug, -D Debug mode (default: false)
- --sql value, -s value SQL statement
- --format value, -f value output format, support csv, json, yaml, xml, table, html, markdown, xlsx, plain, sql (default: "csv")
- --output value, -o value write output to a file, default output directly to STDOUT
- --streaming, -S whether to use streaming output, if using streaming output, it will not wait for the query to complete, but output line by line during the query process. The output format only supports csv/xlsx/json/plain/sql (default: false)
- --no-header, -n do not write table header (default: false)
- --query-timeout value, -t value query timeout, when the stream option is specified, this option is invalid (default: 2m0s)
- --xlsx-max-row value the maximum number of rows per sheet in an Excel file, including the row where the header is located (default: 1048576)
- --table value when the format is sql, specify the table name
- --help, -h show help (default: false)
示例
将 xlsx 文件内容导入到数据库表 people 中,标题 区域 对应字段 area,姓名对应 name,身份证号对应 idcard:
heimdall import --host 127.0.0.1 --port 3306 --database example --user root --password root \ --table people \ --field 区域:area \ --field 姓名:name \ --field 身份证号码:idcard \ --file ~/Downloads/data.xlsx
从业务库中导出最近 30 天新增的客户企业清单为 Excel 文件
heimdall export --database example --host 127.0.0.1 --user root --password root \ --sql "SELECT id, name AS '企业名称', address AS '企业地址', city_name AS '城市', district_name AS '区县', DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS '创建时间' FROM enterprise WHERE created_at > DATE_SUB(NOW(), INTERVAL 30 DAY) ORDER BY id DESC" \ --streaming \ --format xlsx \ --output 最近30天新增企业列表.xlsx

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 多线程安全问题原理和 4 种解决办法
摘要:多线程访问了共享的数据,会产生线程安全问题。 本文分享自华为云社区《多线程安全问题原理和解决办法Synchronized和ReentrantLock使用与区别》,作者:共饮一杯无。 线程安全问题概述 卖票问题分析 单窗口卖票 一个窗口(单线程)卖100张票没有问题 单线程程序是不会出现线程安全问题的 多个窗口卖不同的票 3个窗口一起卖票,卖的票不同,也不会出现问题 多线程程序,没有访问共享数据,不会产生问题 多个窗口卖相同的票 3个窗口卖的票是一样的,就会出现安全问题 多线程访问了共享的数据,会产生线程安全问题 线程安全问题代码实现 模拟卖票案例 创建3个线程,同时开启,对共享的票进行出售 public class Demo01Ticket { public static void main(String[] args) { //创建Runnable接口的实现类对象 RunnableImpl run = new RunnableImpl(); //创建Thread类对象,构造方法中传递Runnable接口的实现类对象 Thread t0 = new Thread(run...
- 下一篇
Kotlin 异步框架 Ktor 2023 路线图公布
Ktor 是一个异步框架,用于创建微服务、Web 应用等。从头到尾都是用 Kotlin 编写的。Ktor 团队近日确定了 2023 年 Ktor 的路线图,并将专注于 3.0.0 版本的发布。虽然一个主要版本通常通常会带来重大的变化,但 Ktor 3.0.0 大多数变化是关于 API 和包,特别是: 将发布一直在研究的新的简化路由 API。 要切换到 Tomcat 11、Jetty 11,并升级 Apache Client 以支持版本 5。 正在将 IO 功能提取到一个单独的库中。这是一项长期的任务,我们一直在逐步进行,目标是在 2023 年最终完成。 长期存在的问题 谈到长期存在的问题,Ktor 从 2022 年的 150 个 issue,下降到 17 个。Ktor 团队将继续解决这些问题,直到所有的 issue 达到零。此外,Ktor 还设法做了一些内务管理,将 Flaky Tests 的数量减少到三个。Ktor 团队的目标是在今年解决这些最后剩下的问题。 启动与引导 Ktor 的目标之一仍然是简化模板代码,并使应用程序以较少的工作量启动和运行。在这方面,Ktor 团队在 2022...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G