gpt4 book ai didi

neo4j - Apache Samza 本地存储 - OrientDB/Neo4J 图而不是 KV 存储

转载 作者:行者123 更新时间:2023-12-01 07:47:20 26 4
gpt4 key购买 nike

Apache Samza 使用 RocksDB 作为本地存储的存储引擎。这允许有状态的流处理和 here's a very good overview .

我的用例:

  • 我希望处理来自 Apache Kafka 等系统的多个事件流。
  • 这些事件创建状态 - 我希望跟踪的状态基于之前收到的消息。
  • 我希望根据计算出的状态生成新的流事件。
  • 输入流事件高度相关,OrientDB/Neo4J 等图形是查询数据以创建新流事件的理想媒介。

我的问题:

是否可以使用非 KV 存储作为 Samza 的本地存储?有没有人用 OrientDB/Neo4J 做过这个,有人知道一个例子吗?

最佳答案

我一直在评估 Samza,我绝不是专家,但我建议您阅读 the official documentation ,甚至通读源代码——除了它是在 Scala 中,它非常容易上手。

在这种特殊情况下,朝向 the documentation's page on State Management 的底部你有这个:

Other storage engines

Samza’s fault-tolerance mechanism (sending a local store’s writes to a replicated changelog) is completely decoupled from the storage engine’s data structures and query APIs. While a key-value storage engine is good for general-purpose processing, you can easily add your own storage engines for other types of queries by implementing the StorageEngine interface. Samza’s model is especially amenable to embedded storage engines, which run as a library in the same process as the stream task.

Some ideas for other storage engines that could be useful: a persistent heap (for running top-N queries), approximate algorithms such as bloom filters and hyperloglog, or full-text indexes such as Lucene. (Patches accepted!)

实际上,我大约在两周前通读了默认 StorageEngine 实现的代码,以便更好地了解它的工作原理。我的知识肯定不够多,无法明智地谈论它,但我可以指出:

主要的实现问题似乎是:

  1. 记录对主题的所有更改,以便在任务失败时可以恢复商店的状态。
  2. 以高效的方式恢复商店的状态
  3. 批量写入和缓存频繁读取,以节省前往原始存储的次数。
  4. 报告有关商店使用情况的指标。

关于neo4j - Apache Samza 本地存储 - OrientDB/Neo4J 图而不是 KV 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com