1年零7个月前有一个同标题的问题,该问题已关闭。
我使用了答案中的脚本
import socket
import sys
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def send_utf8(msg):
print(msg)
sock.sendall(msg.encode())
if __name__ == '__main__':
try:
sock.connect(('localhost', 9009))
with open("YOUR_FILE") as infile:
for line in infile:
# print(line)
send_utf8(line)
except socket.error as e:
sys.stderr.write(f'Got error: {e}')
sock.close()
它可以工作,但几秒钟后我收到一个错误:
出现错误:[Errno 32] 管道破损
我尝试用 sleep(0.01) 来减慢脚本速度,所以我在 questDB 中添加了更多数据,但几分钟后又出现了错误。 我还尝试了一些在堆栈溢出中找到的“信号”,但我没有让它对我的整个 18GB 文件起作用。 有人可以帮助我扩展脚本以实现持续工作吗?
您可以使用
CURL
curl -i -XPOST 'http://localhost:9000/write' --data-binary @data.txt
鉴于文件不大,应该可以一次性上传。如果是,最好将其分成多个,但不要破坏 ILP 线。
QuestDB 现在与 InfluxDB 兼容进行写入,它接受 HTTP,因此与 CURL 上传兼容。