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
优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/p/heimdall-mysql

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。