首页 > 解决方案 > 在 QuestDB 中插入数据时如何通过 Python 捕获错误消息?

问题描述

目前我正在通过 Python 通过 Influx Line Protocol (ILP) 将数据保存到 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 并捕获任何错误消息,以便我知道我的保存方法对特定行失败。

标签: pythondatabasesocketspython-socketsquestdb

解决方案


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

ILP 似乎是一种以“一劳永逸”的方式将数据流式传输到服务器的协议。


推荐阅读