V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sjmcefc2
V2EX  ›  问与答

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

  •  
  •   sjmcefc2 · 72 天前 · 356 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    4 条回复    2021-04-13 08:06:54 +08:00
    NilChan
        1
    NilChan   72 天前 via Android
    看成了 clubhouse
    sjmcefc2
        2
    sjmcefc2   72 天前
    感觉应该是^C 这个符号,是不是要转义呢
    yzwduck
        3
    yzwduck   72 天前
    对于复杂的命令行,我觉得直接传递参数数组会容易一些,转义交给 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
        4
    sjmcefc2   72 天前
    @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
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1246 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:50 · PVG 01:50 · LAX 10:50 · JFK 13:50
    ♥ Do have faith in what you're doing.