Stream Load 数据加载CK -> StarRocks
-- Stream Load 本地数据导入
-- streaming_load_max_mb:单个源数据文件的大小上限。默认文件大小上限为 10 GB
curl --location-trusted -u devuser:password -H "label:table_name009_${LAB_TIME}" \
-H "max_filter_ratio:0.2" \
-H "column_separator:|" \
-H "format: CSV" \
-T /home/dzh/data_test01.csv -XPUT \
http://IP.207:8039/api/temp/table_name009/_stream_load
采坑点
1 -H "row_delimiter: <row_delimiter>" -- 行换行符设置
一般采用默认行换行符即可,\n,\t 等容易出问题;
2 数据文件涉及内型问题 date,datetime 不能加双引号,复杂导入异常;
-- 查看参数BE 相关参数
curl http://BE_IP:BE_HTTP_PORT/varz
例如:curl http://IP.210:8049/varz
-- ClinkHouse 测试环境上的数据
select SUBSTR(cast(t1.create_time as varchar),1,10) as pt_date,
t1.*
from database_pg.table_name009 t1 limit 1000;
-- CK 登录客户端
clickhouse-client -m -u zhanghu -h IP.120 --password password密码
CSV文件形式的导入导出
CSV导出:clickhouse-client -h 127.0.0.1 -d dbname -m -u name --password passwd --format_csv_delimiter="|" --query="select * from db_name.table_name FORMAT CSV" > tahle_name.csv
CSV导入:clickhouse-client -h 127.0.0.1 -d dbname -m -u name --password passwd --format_csv_delimiter="|" --query="insert into db_name.table_name FORMAT CSV" < table_name.csv
注意:如果query语句后面不加FORMAT CSV,默认是\t作为分隔符。只有指定FORMAT CSV后,指定--format_csv_delimiter 才生效。
例如: 导出数据
clickhouse-client -h IP.120 -d "database_pg" -m -u zhanghu --password password密码 --format_csv_delimiter="|" --query="select * from table_name009 limit 10 FORMAT CSV" > date_test003.csv
-- CK 导出数据特殊处理( 通过sed 处理一些特殊数据 ) --
sed -e"s/\"\"/\"/g" -e"s/\"|/|/g" -e"s/|\"/|/g" -e's/\\N//g' -e's/^"//g' -i /home/dzh/test1.csv
备注1:
-e"s/\"\"/\"/g" : "" 替换 "
-e"s/\"|/|/g" : "| 替换 |
-e"s/|\"/|/g" : |" 替换 |
-e's/\\N//g' : \N 替换 空值
-e's/^"//g' : 空行 删除
这里可以参考 linux sed 命令相关资料
备注2: 这里处理主要是因为 StarRocks 导出的字符串带双引号无法识别;
ClinkHose 命令行参数
--host, -h -– 服务端的host名称, 默认是localhost。您可以选择使用host名称或者IPv4或IPv6地址。
--port – 连接的端口,默认值:9000。注意HTTP接口以及TCP原生接口使用的是不同端口。
--user, -u – 用户名。 默认值:default。
--password – 密码。 默认值:空字符串。
--query, -q – 使用非交互模式查询。
--database, -d – 默认当前操作的数据库. 默认值:服务端默认的配置(默认是default)。
--multiline, -m – 如果指定,允许多行语句查询(Enter仅代表换行,不代表查询语句完结)。
--multiquery, -n – 如果指定, 允许处理用;号分隔的多个查询,只在非交互模式下生效。
--format, -f – 使用指定的默认格式输出结果。
--vertical, -E – 如果指定,默认情况下使用垂直格式输出结果。这与–format=Vertical相同。在这种格式中,每个值都在单独的行上打印,这种方式对显示宽表很有帮助。
--time, -t – 如果指定,非交互模式下会打印查询执行的时间到stderr中。
--stacktrace – 如果指定,如果出现异常,会打印堆栈跟踪信息。
--config-file – 配置文件的名称。
--secure – 如果指定,将通过安全连接连接到服务器。
--history_file — 存放命令历史的文件的路径。
--param_<name> — 查询参数配置查询参数.