困惑。一个 clickhouse 的命令字符串要怎么写才是正确的呢?

2021-04-13 06:57:45 +08:00
 sjmcefc2

clickhouse-client --format_csv_delimiter="^C" --query="INSERT INTO tutorial.TABLE FORMAT CSV" < CSV.txt

想着把上面的命令写到 python 的 call 中,应该怎么写才能正确调用呢?“”这种字符串总是会断掉正常的解析。用 r 也貌似没有用处。 或者调用这样的命令还有什么比较好的方式呢?

1285 次点击
所在节点    问与答
4 条回复
NilChan
2021-04-13 07:00:56 +08:00
看成了 clubhouse
sjmcefc2
2021-04-13 07:13:54 +08:00
感觉应该是^C 这个符号,是不是要转义呢
yzwduck
2021-04-13 07:31:50 +08:00
对于复杂的命令行,我觉得直接传递参数数组会容易一些,转义交给 Python 来做。
PS: 我没有 clickhouse 环境,所以没测试过是否正确。

fobj = open('CSV.txt', 'rb')
p = subprocess.call(['clickhouse-client', '--format_csv_delimiter=^C', '--query=INSERT INTO tutorial.TABLE FORMAT CSV'], stdin=fobj)
sjmcefc2
2021-04-13 08:06:54 +08:00
@yzwduck 这个提示--format_csv_delimiter="" --query= "INSERT INTO tutorial.table FORMAT CSV "< /home/ja/data/data/csv.txt
Code: 19. DB::Exception: A setting's value string has to be an exactly one character long

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/770234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX