5

我想从 MySQL 转储导入 Clickhouse。我试过浏览官方文档,但找不到任何东西。我尝试在Stack Overflow answer之后使用 CSV 进行导入。任何帮助表示赞赏。我有一个 Ubuntu 16.04 LTS。

4

2 回答 2

7

在小数据上,导出到 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 亿行

于 2017-12-13T08:41:30.200 回答
2

您可以使用 MySQL 命令行将数据从 MySQL 导出到 TSV 文件:

mysql -Bse "select * from TABLE_NAME" > table.tsv

然后将数据导入 ClickHouse:

cat table.tsv | clickhouse-client --query="INSERT INTO TABLE_NAME FORMAT TabSeparated"
于 2017-12-08T09:50:03.823 回答