Using IoTDB as database for the time-series storage? #1369
Replies: 5 comments 22 replies
-
@dominikriemer thank you for starting this interesting discussion. |
Beta Was this translation helpful? Give feedback.
-
Thank you for initiating the discussion. I think a phased approach, starting with API optimization and followed by database migration, would be a good strategy. I think it would be beneficial to conduct a very brief comparison of the two databases to evaluate their respective advantages and disadvantages, especially how the data model maps to the one used in StreamPipes. If anyone has experience working with both, it would be helpful to share their insights. @SteveYurongSu do you have any thoughts on this discussion |
Beta Was this translation helpful? Give feedback.
-
@dominikriemer Thanks for starting this discussion. I'm so excited to see the discussion here! @bossenti Here are some key differences between IoTDB and InfluxDB (most of them are the main advantages of IoTDB): 1. [Cluster] The cluster version of IoTDB is open source (and of course under the ASF 😆), while the cluster version of InfluxDB is NOT open source and needs to be paid for use. IoTDB cluster document: https://iotdb.apache.org/UserGuide/Master/Cluster/Cluster-Concept.html 2. [Schema / Data Model] The data model of IoTDB is tree like, and it is more suitable for the IIoT scenario than the tag-field model (InfluxDB data model). Data in tree model can be naturally bound to the asset management of industrial sites. IoTDB Data Model: https://iotdb.apache.org/UserGuide/Master/Data-Concept/Data-Model-and-Terminology.html @tenthe Another key issue is how to convert data in tag-field model to tree model. I know a document which may help: https://iotdb.apache.org/UserGuide/Master/API/InfluxDB-Protocol.html 3. [Performance] In our test environment, IoTDB has better read and write performance than InfluxDB. There are many reasons for this. Take an example, IoTDB provides a native thrift based Java client, while InfluxDB's Java client is implemented by a simple HTTP client wrapper. We have a benchmark tool to test the performance differences between IoTDB and many other time series databases. You can also try it: https://github.com/thulab/iot-benchmark 4. [Data Processing]
Of course, IoTDB has its drawbacks, such as the richness of the surrounding ecological tools, the stability of the system, and so on. For the migration path:
I totally agree with your approach. @dominikriemer @tenthe @bossenti I think we can start the migration task as follows:
I am very excited to join in the migration task, but I am not completely familiar with the system, so I may need some help in the task disassembly process first. Can someone help me to disassemble the task? Then we can some more detailed discussions. 😄 |
Beta Was this translation helpful? Give feedback.
-
Hi, I'm Jialin Qiao, PMC of Apache IoTDB. Thanks for bringing up the integration between Apache StreamPipes and Apache IoTDB :) Both SreamPipes and IoTDB are built for IIoT scenarios, and SP is closer to the end-user. We will very glad to satisfy the interesting demand of SP, which will help IoTDB more deeply into the industry. Here is a comparison between TSDBs: https://iotdb.apache.org/UserGuide/Master/Reference/TSDB-Comparison.html#feature-comparison Some highlight points of IoTDB:
Looking forward to building close cooperation between Apache StreamPipes and Apache IoTDB communities 😄 |
Beta Was this translation helpful? Give feedback.
-
Hi everyone! @SteveYurongSu @qiaojialin thanks a lot for providing so much background information - that's very helpful! I've already started to get a deeper understanding and really like the features IoTDB offers. For the next steps, I'll have a look at the data explorer module to get a better understanding which Influx features we currently use. Afterwards I could create a page in our wiki where we can collect requirements, identify changes and mappings for the current implementation to the IoTDB model. Then, we can split the work into tasks and work towards a first prototype. I'm really excited to work with you on this topic! |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
currently, we use InfluxDB as the backend for our time-series storage. I'm not 100% satisfied with this setup as Influx is missing some query features such as grouping by fields. On the other hand, we now have a really cool database within the ASF IoT space - so I thought about why not using IoTDB as the storage backend of StreamPipes?
IoTDB should fit really well into our model, has many cool features Influx is missing (many built-in functions) and from my point of view it would just make sense to use an ASF sister project ;-)
The only thing is that we would need to find a good migration path - but I think it should be possible to start with refactoring the current implementation so that there are clear APIs for queries coming from the data explorer API, and then having IoTDB as an alternative database with Influx as default until we reach a stable state and could then switch to IoTDB as default.
What do you think of this idea?
Beta Was this translation helpful? Give feedback.
All reactions