命令行

kuiper的完整目录结构为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.
├── bin
│   ├── kuiper # 客户端工具
│   └── kuiperd # 服务进程
├── data
├── etc
│   ├── client.yaml
│   ├── functions
│   │   ├── accumulateWordCount.json
│   │   ├── countPlusOne.json
│   │   ├── echo.json
│   │   ├── internal.json
│   │   ├── resize.json
│   │   ├── thumbnail.json
│   │   └── windows.json
│   ├── kuiper.yaml
│   ├── mqtt_source.json
│   ├── mqtt_source.yaml
│   ├── multilingual
│   │   ├── en_US.ini
│   │   └── zh_CN.ini
│   ├── sinks
│   │   ├── edgex.json
│   │   ├── file.json
│   │   ├── influx.json
│   │   ├── log.json
│   │   ├── mqtt.json
│   │   ├── nop.json
│   │   ├── options.json
│   │   ├── properties.json
│   │   ├── rest.json
│   │   ├── tdengine.json
│   │   └── zmq.jso
│   └── sources
│   ├── edgex.json
│   ├── edgex.yaml
│   ├── httppull.json
│   ├── httppull.yaml
│   ├── random.json
│   ├── random.yaml
│   ├── test.yaml
│   ├── zmq.json
│   └── zmq.yaml
├── log
└── plugins
├── functions
├── sinks
└── sources

kuiper 安装目录下的bin/kuiper就是kuiper的命令行工具。

流管理相关

  1. 创建流

    bin/kuiper create stream $stream_name $stream_def **| create stream -f **$stream_def_file

    • stream_name 自定义流的名字
    • stream_def 流的定义
    • stream_def_file 如果流的定义太复杂,可以通过把定义写在文本中,然后指定文本创建
  2. 显示所有已经创建的流

    bin/kuiper show streams

  3. 获取已创建流的信息

    bin/kuiper describe stream $stream_name

  4. 删除流

    bin/kuiper drop stream $stream_name

  5. 进入交互查询环境

    bin/kuiper query

规则管理相关

  1. 创建规则

    1
    bin/kuiper create rule $rule_name $rule_json | create rule $rule_name -f $rule_def_file
    • rule_name 自定义规则名称
    • rule_json 规则的定义json文件
    • rule_def_file 如果规则定义json太复杂,可以通过配置文件的方式来创建, 比如rule.txt
  2. 显示规则

    1
    bin/kuiper show rules
  3. 获取规则详细信息

    1
    bin/kuiper describe rule $rule_name
  4. 删除规则

    1
    bin/kuiper drop rule $rule_name
  5. 运行规则

    1
    bin/kuiper start rule $rule_name
  6. 停止规则

    1
    bin/kuiper stop rule $rule_name
  7. 重启规则

    1
    bin/kuiper restart rule $rule_name
  8. 获取规则状态

    1
    bin/kuiper getstatus rule $rule_name   # 共有两种状态
    • 运行: $metrics
    • 停止: $reason

插件管理

如果删除插件需要重新启动kuiper

  1. 创建插件 (插件的定义以 JSON 格式指定)

    bin/kuiper create plugin $plugin_type $plugin_name $plugin_json | create plugin $plugin_type $plugin_name -f $plugin_def_file

    • plugin_type:插件类型,可用值为 ["source", "sink", "functions"]

    • plugin_name:插件的唯一名称。名称首字母必须小写。例如,如果导出的插件名称为 Random,则此插件的名称为 Random

    • file:插件文件的网址。 它必须是一个 zip 文件,其中包含:编译后的 so 文件和 yaml 文件(仅源文件需要)。 文件名称必须与插件名称匹配。 关于命名规则,查看 扩展名

  2. 显示插件

    bin/kuiper show plugins function

  3. 获取插件信息

    bin/kuiper describe plugin $plugin_type $plugin_name

  4. 删除插件

    bin/kuiper drop plugin $plugin_type $plugin_name -s $stop

Rest API

除了可以在命令行操作kuiper,kuiper还提供了Rest API的方式对 流 规则 插件等进行管理.

地址: http://localhost:9081

功能API请求类型说明
创建/streamsPOST请求参数是带有 sql 字段的 json 字符串
显示/streamsGET用于显示服务器中定义的所有流
描述/streams/{id}GET获取流的详细定义
更新/streams/{id}POST更新流定义,参数是带有 sql 字段的 json 字符串
删除/streams/{id}DELETE删除流定义

规则

功能API请求类型说明
创建并启动/rulesPOST接收参数为json定义的规则
显示/rulesGET显示服务器中定义的所有规则和简要状态描述
描述/rules/{id}GET用于打印规则的详细定义
更新/rules/{id}PUT接受 JSON 内容并更新规则
删除/rules/{id}DELETE删除规则
启动/rules/{id}/startPOST开始运行规则
停止/rules/{id}/stopPOST
重启/rules/{id}/restartPOST
获取状态/rules/{id}/statusGET