本章描述流数据分析及其任务相关的一些常见问题。

说明 本文操作的前提条件如下:
  • 本文中的命令,均需要登录到远程控制台执行。登录远程控制台的方法请见远程运维管理
  • Link IoT Edge专业版(LE Pro)v1.8.1及之前的版本需要安装sctl工具,来支持执行本文中的命令。安装sctl工具的命令如下:
    output=/linkedge/gateway/build/bin/sctl && wget http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/tool/sctl -O $output && chmod +x $output

查看任务运行状态

在远程控制台执行如下命令:
/linkedge/gateway/build/bin/sctl show
系统返回类似如下内容,若 running参数值为 true,则表示任务正在运行中。
========================= TOTALCOUNT  02 =========================

------------------------------- 01 -------------------------------
    ID: sca6xxxxxxxxxxxxxxxxxxxxxxxxxxxx34
    Name: 高温报警
    Running: true
    SQLPath: /linkedge/run/stream-compute/sql/sca6xxxxxxxxxxxxxxxxxxxxxxxxxxxx34.sql
    SQLMd5: 8a76629992c7710ee742709658ffa7dc
    LogPath: /linkedge/run/logger/stream-compute/sca6xxxxxxxxxxxxxxxxxxxxxxxxxxxx34/log.INFO

------------------------------- 02 -------------------------------
    ID: sc62xxxxxxxxxxxxxxxxxxxxxxxxxxxxf6
    Name: 温度平均值
    Running: true
    SQLPath: /linkedge/run/stream-compute/sql/sc62xxxxxxxxxxxxxxxxxxxxxxxxxxxxf6.sql
    SQLMd5: 1a037f7e4dcb7ab6910dba23b4d93ce2
    LogPath: /linkedge/run/logger/stream-compute/sc62xxxxxxxxxxxxxxxxxxxxxxxxxxxxf6/log.INFO
各字段含义如下所示:
字段 描述
ID 任务唯一标识(streamID)。
Name 任务名称。
Running 任务运行状态。
  • true:表示正在运行中
  • false:表示已停止
SQLPath SQL文件的存储路径。
SQLMd5 SQL文件的MD5。
LogPath 任务日志路径。

查看任务是否能收到设备数据

  1. 在远程控制台,通过tool_config将日志等级调为debug
    /linkedge/gateway/build/bin/tool_config -s gw_logger_level debug
  2. 执行如下命令查看任务日志,输出的内容为该任务收到的设备数据。
    tail -f /linkedge/run/logger/stream-compute/sc62xxxxxxxxxxxxxxxxxxxxxxxxxxxxf6/log.INFO | grep DATA_INPUT

    其中,sc62xxxxxxxxxxxxxxxxxxxxxxxxxxxxf6为任务唯一标识(streamID)。

任务为什么会停止运行

任务停止运行的具体原因需查看任务日志,以下列出常见的几种可能原因:

  • SQL语法错误

    解决方法:需要在物联网平台控制台数据分析 > 流数据分析页面下,具体任务的编辑器页面中校验SQL通过后,再发布任务。

  • SQL中包含数据库,但数据库无法连接

    解决方法:请参见为什么连接数据库会失败

  • SQL中包含数据库,数据读取/插入失败

    解决方法: 请检查输出数据库中的表格式是否和流数据分析SQL中对应的表格式定义一致,两处表格式定义需保持一致。

任务停止后如何恢复

两种方法可以重启作业:
  • 若需要更新作业内容,请根据如下方法操作:

    物联网平台控制台数据分析 > 流数据分析页面下修改任务后重新部署到边缘端。

  • 若无需更新作业内容,请根据如下方法操作:
    登录远程控制台,执行如下命令启动任务:
    /linkedge/gateway/build/bin/sctl start scxxxxxxxx

    其中,scxxxxxxxx为需要启动的任务唯一标识。

查看计算结果是否输出到边缘消息总线

  1. 登录远程控制台。
  2. 通过dbus-monitor将边缘消息总线实时流转的消息打印出来,若打印出的内容中,能够搜索到消息相关topic,表示流数据分析任务的计算结果已输出到消息总线。
    /linkedge/gateway/build/bin/dbus-monitor --address unix:path=/tmp/var/run/mbusd/mbusd_socket

连接数据库失败

  1. 请检查数据库的用户名、密码是否已在配置中心配置好。
    若未配置,请执行如下命令,将用户名和密码保存在配置中心:
    cd /linkedge/gateway/build/bin
    ./tool_config -s your_username_key your_username_value
    ./tool_config -s your_password_key your_password_key
    说明
    • your_username_keyyour_password_key替换为流数据分析SQL中定义的key。
    • your_username_valueyour_password_value替换为实际的数据库用户名和密码。
  2. 检查host、port、用户名、密码是否正确。