apache-spark - Cassandra 的时间序列可视化
问题描述
我有一个Cassandra数据库和一个Spark集群,可以从 Cassandra 获取他的输入以进行一些处理。
在我的 Cassandra 数据库中,我有一些时间序列表。我正在寻找一种在不增加数据库的情况下轻松可视化这些时间序列的方法。
Grafana是一个很好的工具,但不幸的是,似乎没有办法将它插入 Cassandra。
所以,现在我使用我的 Cassandra/Spark 集群使用Zeppelin笔记本,但显示时间序列的可用功能不如 Grafana 中的功能好。
我也不能用 InfluxDB 替换我的 Cassandra,因为我的 Cassandra 不仅仅用于时间序列存储。
解决方案
不幸的是,Cassandra 没有直接的插件作为 Grafana 的数据源。以下是实现 Cassandra 到 Grafana 集成的不同可能方式。
有一个 Cassandra 作为数据源的拉取请求https://github.com/grafana/grafana/pull/9774,但这并没有合并到 Grafana 主分支。您可以使用此 PR 运行 Grafana 的一个分支并使用该插件。
您可以在 Cassandra 之上使用KairosDB(我们可以将 KairosDB 配置为使用 Cassandra 作为数据存储,因此不需要多个数据库:)并使用 KairosDB 插件。但这种方法有一些缺点:
- 我们需要将 Cassandra 模式映射到 KairosDB 模式,KairosDB 模式是基于指标的模式。
- 虽然 KairosDB 使用 cassandra 作为 Datastore,但它会将数据存储在不同的 schema 和 table 中,因此数据是重复的。
- 如果您的应用程序直接向 Cassandra 写入数据,您需要编写简单的客户端从 cassandra 中提取最新数据并推送到 KairosDB
您可以为 Grafana ( https://github.com/grafana/simple-json-datasource )实现SimpleJSON插件。有很多可用于 SimpleJSON 实现的示例,为 Cassandra 和开源编写一个 :)
您可以推送数据ElasticSearch并将其用作数据源。ES 被支持作为所有主要可视化工具的数据源。
推荐阅读
- javascript - Firebase:名为“[DEFAULT]”的 Firebase 应用程序已经存在,具有不同的选项或配置(应用程序/重复应用程序)
- r - 根据每组的最后一次观察删除一个子组
- authentication - AddOpenIdConnect() 和 DefaultPolicy 作为 FallbackPolicy 导致 signin-oidc 循环
- flask - Heroku Flask 部署 - 应用程序错误
- xml - XPath:比较所有属性的第一个和最后一个并返回唯一值
- spring-boot - 如何从 application.yml 中读取 Long 类型的值
- prometheus - Nginx Prometheus 导出器无法启动连接被拒绝错误
- python - 如何在不使用 kv 文件的情况下向弹出窗口内的 Kivy 按钮添加圆角?
- .net - 带有 dbcontext 参数的单元测试控制器
- flutter - Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”