0

我正在检查是否可以将 kairosdb 用于我的项目。我正在检查 REST api,我有一个用例,我需要保存我的设备状态和状态(状态告诉设备是打开还是关闭,状态告诉我设备是被占用还是空着)

kairosdb version: 1.1.1


I came across this link https://kairosdb.github.io/docs/build/html/restapi/AddDataPoints.html
but when I try to post data from REST client I am getting the error 400 BAD Request error. The error is 

{"errors":["Unregistered data point type 'complex-number'"]}

My request I am posting is ,
 {
      "name": "device_data",
      "type": "complex-number",
      "datapoints": [
          [
              1470897496,
              {
                  "state": 0,
                  "status": "empty"
              }
          ]
      ],
      "tags": {
          "device_id": "abc123"
      }
  }

In tried doing the same in Java as specified in  https://kairosdb.github.io/docs/build/html/kairosdevelopment/CustomData.html

我得到同样的错误我请让我知道如何使用 REST 中的复数或自定义数据类型

4

1 回答 1

3

最近,我想出了如何使用它。

使用 KairosDB 官方文档中的示例。

  1. 创建 2 个名为的文件ComplexDataPoint.javaComplexDataPointFactory.java然后将教程提供的代码粘贴到文档上:https ://kairosdb.github.io/docs/build/html/kairosdevelopment/CustomData.html#example-for-creating-custom-types
  2. 下载 KairosDB 源,然后解压缩.zip文件。
  3. 将2个文件粘贴到/KAIROSDB_DOWNLOADED_SOURCE/src/main/java/org/kairosdb/core/datapoints/
  4. 配置CoreModule.javaat /KAIROSDB_DOWNLOADED_SOURCE/src/main/java/org/kairosdb/core/,在函数中添加以下行protected void configure()

    bind(ComplexDataPointFactory.class).in(Singleton.class);
    
  5. 打开终端, cd to KAIROSDB_DOWNLOADED_SOURCE/,然后按照文件how_to_build.txt中的说明进行操作

  6. 完成后,将创建一个名为build的文件夹,编译后的 kairosdb jar 文件位于KAIROSDB_DOWNLOADED_SOURCE/build/jar

  7. 在您的 kairosdb 安装文件夹中,备份YOUR_KAIROSDB_INSTALLATION/libkairosdb-X.X.X.jar中的文件

    mv kairosdb-X.X.X.jar kairosdb-X.X.X.jar.backup
    
  8. mv新编译的 jar 文件到YOUR_KAIROSDB_INSTALLATION/lib

  9. 通过添加以下行来修改配置文件:

    kairosdb.datapoints.factory.complex=org.kairosdb.core.datapoints.ComplexDataPointFactory
    
  10. 重启你的 kairosdb

对于您的查询,由于注册名称是,请在您的查询字符串中kairosdb.datapoints.factory.complex替换complex-number为。complex

希望对你有帮助!我现在在绘制复杂数据时遇到问题。我还在想...

于 2016-10-26T03:22:07.117 回答