规则管理

Kuiper 规则命令行工具可以管理规则,例如创建、显示、删除、描述、启动、停止和重新启动规则。

创建规则

如下命令用于创建规则。 规则的定义以 JSON 格式指定,请阅读 规则 以获取更多详细信息。

  1. create rule $rule_name '$rule_json' | create rule $rule_name -f $rule_def_file

可以通过两种方式创建规则。

  • 在命令行中指定规则定义。注意规则 json 明文必须放在引号里。

示例:

  1. # bin/kuiper create rule rule1 '{"sql": "SELECT * from demo","actions": [{"log": {}},{"mqtt": {"server":"tcp://127.0.0.1:1883", "topic":"demoSink"}}]}'

该命令创建一个名为 rule1 的规则。

  • 在文件中明确规则定义。 如果规则很复杂,或者规则已经以组织良好的格式写在文本文件中,则只需通过 -f 选项指定规则定义即可。

示例:

  1. # bin/kuiper create rule rule1 -f /tmp/rule.txt

以下是 rule.txt 的内容。

  1. {
  2. "sql": "SELECT * from demo",
  3. "actions": [
  4. {
  5. "log": {}
  6. },
  7. {
  8. "mqtt": {
  9. "server": "tcp://127.0.0.1:1883",
  10. "topic": "demoSink"
  11. }
  12. }
  13. ]
  14. }

展示规则

该命令用于显示服务器中定义的所有规则,包括规则 id 和当前状态。

  1. show rules

示例:

  1. # bin/kuiper show rules
  2. [
  3. {
  4. "id": "rule1",
  5. "status": "Running"
  6. },
  7. {
  8. "id": "rule2",
  9. "status": "Stopped: canceled by error."
  10. }
  11. ]

描述规则

该命令用于打印规则的详细定义。

  1. describe rule $rule_name

示例:

  1. # bin/kuiper describe rule rule1
  2. {
  3. "sql": "SELECT * from demo",
  4. "actions": [
  5. {
  6. "log": {}
  7. },
  8. {
  9. "mqtt": {
  10. "server": "tcp://127.0.0.1:1883",
  11. "topic": "demoSink"
  12. }
  13. }
  14. ]
  15. }

删除规则

该命令用于删除规则。

  1. drop rule $rule_name

示例:

  1. # bin/kuiper drop rule rule1
  2. rule rule1 dropped

启动规则

该命令用于开始运行规则。

  1. start rule $rule_name

示例:

  1. # bin/kuiper start rule rule1
  2. rule rule1 started

停止规则

该命令用于停止运行规则。

  1. stop rule $rule_name

示例:

  1. # bin/kuiper stop rule rule1
  2. rule rule1 stopped

重启规则

该命令用于重启规则。

  1. restart rule $rule_name

示例:

  1. # bin/kuiper restart rule rule1
  2. rule rule1 restarted

获取规则的状态

该命令用于获取规则的状态。 状态可以是

  • 运行: $metrics
  • 停止: $reason
  1. getstatus rule $rule_name

示例:

  1. # bin/kuiper getstatus rule rule1
  2. {
  3. "source_demo_0_records_in_total":5,
  4. "source_demo_0_records_out_total":5,
  5. "source_demo_0_exceptions_total":0,
  6. "source_demo_0_process_latency_ms":0,
  7. "source_demo_0_buffer_length":0,
  8. "source_demo_0_last_invocation":"2020-01-02T11:28:33.054821",
  9. ...
  10. "op_filter_0_records_in_total":5,
  11. "op_filter_0_records_out_total":2,
  12. "op_filter_0_exceptions_total":0,
  13. "op_filter_0_process_latency_ms":0,
  14. "op_filter_0_buffer_length":0,
  15. "op_filter_0_last_invocation":"2020-01-02T11:28:33.054821",
  16. ...
  17. }