【问题标题】:Can InfluxDB store serialized objects?InfluxDB 可以存储序列化对象吗?
【发布时间】:2017-07-17 14:50:13
【问题描述】:

目前正在评估 InfluxDB 并想了解是否可以从 InfluxDB 存储/检索序列化对象(例如使用 Java)以及它的过程是什么?

【问题讨论】:

  • 似乎没有什么其他东西进来了;所以..如果我的回答足够有帮助;请考虑接受...

标签: java serialization influxdb


【解决方案1】:

根据wikipedia,此数据库支持以下类型的值:

值可以是 64 位整数、64 位浮点数、字符串和布尔值。

您可以将 Java 对象序列化为字节流;和字节流可以表示为 hex 字符串。

所以,理论上答案是肯定的——应该可以在这个数据库中存储序列化的 Java 对象。要回读,您只需反转该过程。

如果这是一个好主意是一个完全不同的问题。这听起来相当低效;并且存储 序列化 对象本身并不是一个好主意。首先,这是一个很大的弯路——将一个对象变成一个字节流变成一个十六进制字符串(并将其反转)。然后:java 对象序列化本身就是一头野兽 - 例如,您必须小心不要引入版本不兼容性。当您发布一个新版本的 Java 代码并且当您尝试反序列化 以前 存储的对象时,该代码会引发异常,这真的很烦人。

因此,更现代的方法更喜欢序列化为不同的格式(例如 JSON),或者使用工具将字段直接转换为不同的表列。

【讨论】:

  • 太好了,我的想法是一样的 - 存在将序列化对象存储到其他字段(例如字符串字段)的理论方法。我对序列化的所有优点/缺点没有经验(它只是我的团队使用) - 为什么通常不是一个好主意?什么是更好的方法?谢谢。
  • 我稍微更新了我的答案。但是为了提供“这会更好”的方法,您可能应该增强您的问题。比如:你想序列化什么样的对象?需要存储哪些数据等。见:meta.stackexchange.com/questions/66377/what-is-the-xy-problem
猜你喜欢
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多