本节介绍如何通过官方客户端clickhouse-client从本地文件中导入数据。
操作步骤
- 获取数据库连接信息,详情请参见连接集群。
- 根据ClickHouse版本号、操作系统类型,下载clickhouse-client客户端程序。下载地址如下表所示。
操作系统 ClickHouse版本号 下载链接 Linux OS 19.15.2.2 单击下载 - 使用如下命令进行导入。
cat <data_file> | ./clickhouse-client --host=<host> --port=<port> --user=<username> --password=<password> --query="INSERT INTO <table_name> FORMAT <format>";
说明 从外网导入数据速度较慢,如果数据量较大,或者要测试导入性能。请采用以下方法:- 从内网导入:购买ECS,将ECS实例加入云数据库ClickHouse集群同一个VPC网络,从ECS通过集群内网地址连接集群并导入数据。
- 多进程导入:将原始文件等分为多份,然后启动多个client多进程并发导入。
表 1. 导入数据文件格式说明 常用文件格式 说明 TabSeparated 数据按行写入文本文件中,列与列之间通过Tab分割。需要对tab、换行符、反斜线进行转义处理,分别对应为:\t, \n, \\。 NULL值使用\N进行表示。 TabSeparatedWithNames 与TabSeparated类似,区别是第一行是列名。解析时,第一行会被忽略,因此不能够使用第一行列名来决定列的位置。 TabSeparatedWithNamesAndTypes 与TabSeparated类似,区别是第一行是列名,第二行是类型。解析时,第一行、第二行会被忽略。 CSV 数据按行写入文件中,默认使用逗号进行列与列之间的分割。字符串类型使用双引号括起来,字符串的双引号本身使用两个双引号进行转义。数值类型不使用双引号,可以使用--format_csv_delimiter指定其他列分隔符,例如如果列与列之间使用竖线分割,则命令示例如下: cat data.csv | clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV"
CSVWithNames 与CSV类似,第一行表示列名。解析时,第一行会被直接忽略。
在文档使用中是否遇到以下问题
更多建议
匿名提交