近期,在做k8s相关的项目时,涉及到了ck数据库的导入导出的问题。
一开始就想到采用导出数据到csv文件,再从csv文件导入的做法。所以,导出和导入的语句分别为:
导出:
kubectl exec -it ck_pod_name -n namespace --clickhouse-client --host=127.0.0.1 --port=9000 --user=username --password=password --query="select * from log.test FORMAT CSV" > /opt/test.csv
其中参数值根据实际值填写,到这里导出是没问题的,导出的csv打开可以看到是以逗号为分割的列数据
但是当导入时会报错,此时导入语句如下:
kubectl exec -it ck_pod_name -n namespace --clickhouse-client --host=127.0.0.1 --port=9000 --user=username --password=password --query="insert into table log.test FORMAT CSV" < /opt/test.csv
报错内容:cannot parse input:expcted ,at the end of stream
报错内容提示的意思应该是在文件最后缺少逗号,但是csv文件打开看又没有毛病,无解。
后来直接不用默认的逗号分割列,用|来分割试了下,有效,解决问题。
导出导入语句如下:
导出:
kubectl exec -it ck_pod_name -n namespace --clickhouse-client --host=127.0.0.1 --port=9000 --user=username --password=password --query="select * from log.test FORMAT CSV" --format_csv_delimiter='|' > /opt/test.csv
导入:文章来源:https://www.toymoban.com/news/detail-564880.html
kubectl exec -it ck_pod_name -n namespace --clickhouse-client --host=127.0.0.1 --port=9000 --user=username --password=password --query="insert into table log.test FORMAT CSV" --format_csv_delimiter='|' < /opt/test.csv文章来源地址https://www.toymoban.com/news/detail-564880.html
到了这里,关于k8s中clickhouse导出导入遇到的问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!