Drasi:微软开源EDA数据处理平台支持Cypher


Drasi 是一个数据处理平台,可简化检测数据变化并立即采取行动的过程。它是一种全面的解决方案,提供内置功能来跟踪特定事件的系统日志和更改源、评估它们的相关性并自动启动适当的反应。请访问我们的文档网站https://drasi.io了解详细信息。

Drasi 提供实时可操作的洞察,无需传统数据处理方法的开销。它可以跟踪系统变化和事件,而无需将数据复制到中央数据湖或反复查询数据源。Drasi 使用查询来持续评估传入的数据变化。当变化符合这些查询中指定的标准和条件时,这些查询的结果集就会更新。然后,这些更新会触发根据您的特定要求定义的上下文感知反应。

Drasi 通过三个组件来运作:

  • 源连接到软件系统内的数据存储库以监控日志和反馈,从而跟踪变化的数据。
  • 连续查询通过应用标准和条件来解释监控到的变化,以识别重大变化。在 Drasi 中,这些连续查询是使用 Cypher 查询语言编写的。
  • 反应会根据连续查询的结果集的更新触发有意义的响应。

为了说明 Drasi 如何解释事件并触发适当的响应,我们以在线订购服务的配送系统为例。订单通过订单管理系统进行处理,配送司机需要在订单准备好取货时收到实时通知。Drasi 通过以下方式实现此流程的自动化:

  • 配置一个源来监控订单管理系统中订单状态的变化,并配置第二个源来检测何时有司机可以进行送货。
  • 创建一个连续查询Cypher,结合两个来源的数据,将准备提货的订单与可用的司机进行匹配。
  • 定义反应以向司机发送警报,通知他们前往取货区。这种简化的设置可确保及时通知司机,并通过实时数据集成和自动响应优化交付流程。

Cypher 支持
连续查询是使用Cypher 查询语言的子集编写的。如果您是 Cypher 新手,Cypher 查询语言的原始创建者 Neo4J 有很多资源可以帮助您理解、学习和尝试 Cypher,包括:

2014 年,构建了一个类似的事件驱动系统(但专门用于文档分发(文档可以分发给目标实体集;如果添加了新实体,我们需要解决哪些分布匹配))并且最终通过 Neo4j 使用了 Cypher(因为我们映射实体的方式具有复杂的分类结构)。

它是一种被严重低估的查询语言,虽然大多数查询也可以转换为关系 SQL,使用 WITH 子句的 Cypher 线性构造更容易推理。

Cypher 的关键之一(至少在图形数据库的上下文中)是它有一种很好的方法将“JOIN”操作表示为图形遍历。

    MATCH (p:Person)-[r]-(c:Company) RETURN p.Name, c.Name

其中 r 可以表示两个集合 PersonCompany 之间的任何关系(又称为 JOIN),例如 WORKS_ATEMPLOYED_BYCONTRACTOR_FOR 等。

Drasi 不仅仅是在数据上运行图形查询,它还使用 Cypher 查询语言作为一种方便的方式来表达您想要观察的数据变化。

Cypher 唯一问题是简单的查询看起来很棒,但:

  • 一旦你需要非线性连接,它就会变得非常像 SQL。
  • 当你使用 ORM 时,它就不再重要了。
  • 当你需要迁移时,它会变得很痛苦!

网友:
以 Azure 为中心。两个安装指南(https://drasi.io/how-to-guides/install-sample-applications/b...和https://drasi.io/how-to-guides/install-sample-applications/c...)都需要 Azure 才能运行

在 EKS 集群中安装 Drasi 比在其他平台上进行标准安装要复杂得多。这种方法不需要使用提供的安装脚本下载 CLI 二进制文件,而是需要修改 Drasi CLI 的源代码并构建 CLI 的本地版本。