【发布时间】:2018-05-22 08:22:50
【问题描述】:
我想从 MySQL 转储导入 Clickhouse。我试过通过official docs,但找不到任何东西。我尝试在Stack Overflow answer 之后使用 CSV 导入。任何帮助表示赞赏。我有一个 Ubuntu 16.04 LTS。
【问题讨论】:
标签: mysql ubuntu-16.04 clickhouse
我想从 MySQL 转储导入 Clickhouse。我试过通过official docs,但找不到任何东西。我尝试在Stack Overflow answer 之后使用 CSV 导入。任何帮助表示赞赏。我有一个 Ubuntu 16.04 LTS。
【问题讨论】:
标签: mysql ubuntu-16.04 clickhouse
在小数据上,导出到 tsv 可以,但在大数据上就不行了,因为只导出会花费很多时间。
这种情况下,需要直接从stdout导入,clickhouse知道如何完美做到。
示例代码:
mysql -u user -ppass --compress -ss -e "SELECT * FROM table WHERE id >0 AND id <=1000000" db_name | sed 's/\"//g;s/\t/","/g;s/^/"/;s/$/"/' | clickhouse-client --query="INSERT INTO db_name.table FORMAT CSV"
使用这种方法,我在 clickhouse 中在 7-10 小时内导入 500 GB 和 19 亿行
【讨论】:
您可以使用 MySQL 命令行将数据从 MySQL 导出到 TSV 文件中:
mysql -Bse "select * from TABLE_NAME" > table.tsv
然后将数据导入ClickHouse:
cat table.tsv | clickhouse-client --query="INSERT INTO TABLE_NAME FORMAT TabSeparated"
【讨论】: