• 二进制协议:直接从报文中获取数据,带宽占用比文本协议低,性能高。 在.Net中以DataTable为参数写入;在java中以PreparedStatement配合addBatch,并且所有数据都必须使用参数。

    松果时序数据库支持一次写入一条或多条数据,不管是文本协议还是二进制协议都必须满足下面的条件:
    (1) 单次请求只能向一个表中写入数据。
    (2) 单次请求写入数据的上限为1000条。
    (3) 单次请求写入的数据报文大小不超过4MB。 (4) 写入数据的时间戳必须处于写入时间窗口。

    写入数据时,必须指定设备Id(devid)和时间戳(tstamp)的值,其他字段若没有指定值,会以该类型的默认值填充。

    高频写入数据会由于数据库服务内存不能及时写入磁盘,插入数据时返回 PdbE_RETRY错误码,此时可以暂停3-5秒后重新执行。

    2. 以文本协议写入数据

    使用松果时序数据库的SDK执行写入,传递如下数据即可:

    注意:以文本协议写入多条数据时,若某条数据写入失败,则中止后面的数据写入,返回对应的错误码及成功写入的数据条数。

    • DataTable中出现的列都在相应的表中存在,并且类型匹配。列名不区分大小写。

    在Java中以PreparedStatement配合addBatch,并且每个值都必须使用参数指定。来使用二进制协议写入数据。具体细节参考JDBC的SDK文档。
    注意:与以文本协议写入数据不同,当其中某条数据写入失败时,其后的数据会继续写入,最终返回对应的错误码、成功写入的数据条数以及每条数据执行的结果。具体使用方式参考对应SDK文档。

    若需要更新已写入的数据,将新数据重新写入即可。需要注意的是,未指定的列将会以默认值填充