Heimdall

MySQL 数据库导入导出工具
授权协议 MIT
开发语言 Google Go
所属分类 数据库相关、 数据库管理工具
软件类型 开源软件
地区 国产
投 递 者 黄朗
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
 相关资料
  • 问题内容: 我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示: 现在,我希望能够导入该数据库。我试过了 : 但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本? 问题答案: 文件资料。

  • 本文向大家介绍MySQL命令行导出与导入数据库,包括了MySQL命令行导出与导入数据库的使用技巧和注意事项,需要的朋友参考一下 举例为大家介绍如何运用命令行实现MySQL导出导入数据库 一、命令行导出数据库 1.进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录  如:cd C:\Program Files\MySQL\MySQL Server 4.1\bin  (或者直接

  • 本文向大家介绍oracle数据库导入导出命令解析,包括了oracle数据库导入导出命令解析的使用技巧和注意事项,需要的朋友参考一下 Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了or

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/userve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/oserve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 问题内容: 我想保留所有MySQL数据库的备份。我有100多个MySQL数据库。我想同时导出所有它们,然后一次将所有它们再次导入到我的MySQL服务器中。我怎样才能做到这一点? 问题答案: 出口: 查找有关mysqldump的文档。您可能要使用注释中提到的一些选项: 进口:

  • 与RDBMS类似,OrientDB还提供了导出和导入数据库等功能。 OrientDB使用JSON格式导出数据。 默认情况下,命令使用GZIP算法来压缩文件。 导出数据库时不会锁定数据库,这意味着您可以对其执行并发读取和写入操作。可以创建该数据的完全副本,因为并发的读取和写入操作。 在本章中,学习如何从OrientDB命令行导出数据库。 以下语句是命令的基本语法。 注 - 只有在连接到特定数据库后才

  • 如果想要导入数据库,必须使用由命令生成的JSON格式导出文件。 在本章中,学习如何从OrientDB命令行导入数据库。 以下语句是数据库命令的基本语法。 注 - 只有在连接到特定数据库后才能使用此命令。 示例 在这个例子中,我们将使用在前一章中创建的名为的数据库。可以使用以下命令将数据库导入名为的文件。 如果成功执行,将会看到以下输出以及成功的通知。