QuestDB插入数据时如何通过Python捕获错误信息?

How to capture error messages via Python when inserting data in QuestDB?

目前我正在通过 Influx Line Protocol (ILP) Python 将数据保存到 QuestDB,如下所示:

    import socket

    ilp_msg = 'my_table,name=server_timestamp value=12.4\n'
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        sock.connect((HOST, PORT))
        sock.send((ilp_msg).encode())
    except socket.error as e:
        raise ValueError(f'Got error: {e}')
    sock.close()

如果我的 ilp_msg 或服务器或数据库有问题,上面的代码将执行而不会引发任何错误。它将在数据库上登录 sdr out(或 std err)。

我的问题:如何通过 python 将数据保存到 QuestDB 并捕获任何错误消息,以便我知道我的保存方法对特定行失败。

我看到的唯一方法是不使用 ILP,而是通过 Postgres 驱动程序 psycopg2 插入行。

ILP 似乎是一种以即发即弃的方式将数据流式传输到服务器的协议。