运行mysql和postgresql查询并将结果存储在csv中
sql2csv的Python项目详细描述
运行mysql和postgresql查询并将结果存储在csv中。
为什么选择sql2csv
sql2csv是一个运行mysql和postgresql查询和 将输出存储在csv文件中。
在某些环境中,比如在aws rds中使用mysql或aurora时, 使用本机工具无法将查询结果导出到CSV。 sql2csv是一个提供此功能的简单模块。
安装
pip3 install sql2csv # Basic usage mysql [...] -e "SELECT * FROM table"| sql2csv # or psql [...] -c "SELECT * FROM table"| sql2csv
示例
来自stdin
对于简单查询,可以直接从mysql或 psql到sql2csv。
对于更复杂的查询,建议使用cli(请参见下文) 以确保CSV格式正确。
mysql -U root -p"secret" my_db -e "SELECT * FROM some_mysql_table;"| sql2csv id,some_int,some_str,some_date 1,12,hello world,2018-12-01 12:23:12 2,15,hello,2018-12-05 12:18:12 3,18,world,2018-12-08 12:17:12
psql -U postgres my_db -c "SELECT * FROM some_pg_table"| sql2csv id,some_int,some_str,some_date 1,12,hello world,2018-12-01 12:23:12 2,15,hello,2018-12-05 12:18:12 3,18,world,2018-12-08 12:17:12
使用sql2csvcli
输出到标准输出
$ sql2csv --engine mysql \
--database my_db --user root --password "secret"\
--query "SELECT * FROM some_mysql_table"1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12
输出保存在文件中
$ sql2csv --engine mysql \
--database my_db --user root --password "secret"\
--query "SELECT * FROM some_mysql_table"\
--out file --destination_file export.csv
# * Exporting rows...
# ...done
# * The result has been exported to export.csv.
$ cat export.csv
1,12,hello world,2018-12-01 12:23:12
2,15,hello,2018-12-05 12:18:12
3,18,world,2018-12-08 12:17:12
用法
usage: sql2csv [-h][-e {mysql,postgresql}][-H HOST][-P PORT] -u USER [-p PASSWORD] -d DATABASE -q QUERY [-o {stdout,file}][-f DESTINATION_FILE][-D DELIMITER][-Q QUOTECHAR] optional arguments: -h, --help show this help message and exit -e {mysql,postgresql}, --engine {mysql,postgresql} Database engine -H HOST, --host HOST Database host -P PORT, --port PORT Database port -u USER, --user USER Database user -p PASSWORD, --password PASSWORD Database password -d DATABASE, --database DATABASE Database name -q QUERY, --query QUERY SQL query -o {stdout,file}, --out {stdout,file} CSV destination -f DESTINATION_FILE, --destination_file DESTINATION_FILE CSV destination file -D DELIMITER, --delimiter DELIMITER CSV delimiter -Q QUOTECHAR, --quotechar QUOTECHAR CSV quote character