我在尝试使用csv文件插入数据到使用curl的clickhouse时遇到问题,第一个值是添加一些字符,如下所示:
┌─name─ ┬─lastname─┐
│&'Mark'│ Olson │
│ Joe │ Robins │
└────── ┴──────────┘
我的csv文件正常,如下所示:
'Mark','Olson'
'Joe','Robins'
如您所见,该表将第一条记录中的第一个值作为 &'Mark'
这是我在bash中的代码
query="INSERT INTO Myschema.persons FORMAT CSV"
cat ${csv} | curl -X POST -d "$query" $user:$password@localhost:8123 --data-binary @-
你知道有什么问题吗?
谢谢
1条答案
按热度按时间daolsyd01#
我认为您应该使用以下格式,其中查询是url的一部分
我不知道为什么你的curl不工作,但我最好的猜测是clickhouse有解析规则,不能使用你指定的格式,
${query}
以及${csv}
两者都是post的参数,在最终的httpurl中被“&”追加,而解析clickhouse无法考虑这种情况。引用clickhouse文档-
您可以在post body或url参数中发送查询本身。
和
post方法传输数据是insert查询所必需的。在这种情况下,可以在url参数中写入查询的开头,并使用post传递要插入的数据。例如,要插入的数据可以是与mysql分开的标签转储。通过这种方式,insert查询替换了从mysql加载数据的local infile。
查看此处了解更多详细信息和示例-https://clickhouse.yandex/docs/en/interfaces/http_interface/