概述
Trendz Python 执行器用于运行:
- Python 字段计算
- 所有预测模型(傅里叶变换除外)
- 指标浏览器的代码生成
自 1.14.0 版本起,运行这些功能的唯一方式是通过 Docker(或 Kubernetes)使用 Trendz Python 执行器。
前置条件
Windows
- 已安装 Docker Desktop for Windows。安装方法见此处
Linux
Python 执行器独立安装
步骤 1:创建 Docker Compose 文件
使用以下配置创建 Docker Compose 文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
trendz-python-executor:
restart: always
image: "thingsboard/trendz-python-executor:1.15.0.4"
ports:
- "8181:8181"
environment:
EXECUTOR_MANAGER: 1
EXECUTOR_SCRIPT_ENGINE: 6
THROTTLING_QUEUE_CAPACITY: 10
THROTTLING_THREAD_POOL_SIZE: 6
NETWORK_BUFFER_SIZE: 5242880
volumes:
- trendz-python-executor-conf:/python-executor-config-files
- trendz-python-executor-data:/data
关键字段说明:
8181- Python 执行器与 Trendz 服务通信的端口restart: always- 失败或系统重启时自动重启执行器thingsboard/trendz-python-executor:1.15.0.4- Trendz Python 执行器的 Docker 镜像trendz-python-executor-conf:/python-executor-config-files- 将卷trendz-python-executor-conf挂载到 Trendz Python 执行器的配置文件目录trendz-python-executor-data:/data- 将卷trendz-python-executor-data挂载到 Trendz Python 执行器的额外数据目录
步骤 2:启动 Python 执行器
1
2
docker compose up -d
docker compose logs -f trendz-python-executor
步骤 3:将 Trendz 连接到 Python 执行器
- Linux 或 Mac OS
配置 Trendz 与 Python 执行器通信。
编辑 /usr/share/trendz/conf/trendz.conf 并添加:
1
2
3
export SCRIPT_ENGINE_TIMEOUT=30000
export SCRIPT_ENGINE_PROVIDER=DOCKER_CONTAINER
export SCRIPT_ENGINE_DOCKER_PROVIDER_URL=PYTHON_EXECUTOR_HOST:PYTHON_EXECUTOR_PORT
将 PYTHON_EXECUTOR_HOST 和 PYTHON_EXECUTOR_PORT 替换为您的 Python 执行器服务值,并确保 Trendz 能访问此网络目标。
- Windows
以管理员身份打开记事本并编辑:
1
C:\Program Files (x86)\trendz\conf\trendz.yml
找到 script-engine 块并配置:
1
2
3
4
5
6
7
script-engine:
provider: "${SCRIPT_ENGINE_PROVIDER:DOCKER_CONTAINER}"
runtime-timeout: "${SCRIPT_ENGINE_TIMEOUT:60000}"
callback-timeout: "${SCRIPT_ENGINE_TIMEOUT:60000}"
docker-provider-url: "${SCRIPT_ENGINE_DOCKER_PROVIDER_URL:PYTHON_EXECUTOR_HOST:PYTHON_EXECUTOR_PORT}"
websocket-buffer-size: "${SCRIPT_ENGINE_WEBSOCKET_BUFFER_SIZE:20971520}"
websocket-concurrency: "${SCRIPT_ENGINE_WEBSOCKET_CONCURRENCY:5}"
将 PYTHON_EXECUTOR_HOST 和 PYTHON_EXECUTOR_PORT 替换为您的 Python 执行器服务值,并确保 Trendz 能访问此网络目标。
如何将 Trendz Python 执行器 1.13.2 迁移到 1.14.0
若您已有低于 1.14.0 的 Python 执行器连接到 Trendz,应在将 Trendz 更新到 1.14.0 之前先迁移。
步骤 1. 修改 Docker Compose 文件
找到启动 Python 执行器所用的 docker-compose.yml 文件。
将 Python 执行器镜像标签更改为 1.14.0,并更新 volumes 部分以包含配置和数据目录。
最终的 docker-compose.yml 应如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
trendz-python-executor:
restart: always
image: "thingsboard/trendz-python-executor:1.15.0.4"
ports:
- "8181:8181"
environment:
EXECUTOR_MANAGER: 1
EXECUTOR_SCRIPT_ENGINE: 6
THROTTLING_QUEUE_CAPACITY: 10
THROTTLING_THREAD_POOL_SIZE: 6
NETWORK_BUFFER_SIZE: 5242880
volumes:
- trendz-python-executor-conf:/python-executor-config-files
- trendz-python-executor-data:/data
步骤 2. 重启 Python 执行器
重启 Python 执行器以应用更改:
1
2
docker compose up -d
docker compose logs -f trendz-python-executor
如何将额外库连接到 Python 执行器
如有需要,您可以为 Python 执行器 添加额外的 Python 库,并在 Trendz 字段计算或 Trendz 自定义预测模型中使用它们。
例如,若要添加 emoji 库(特定版本 2.2.0),请按以下步骤操作。
步骤 1. 在运行中的容器中打开 shell
1
docker compose exec trendz-python-executor bash
步骤 2. 将库添加到 requirements.txt
您需要将库名称和版本追加到配置目录(/python-executor-config-files)中的 requirements.txt 文件:
1
echo 'emoji==2.2.0' >> /python-executor-config-files/requirements.txt
追加所有必要依赖后,输入 exit 退出 shell。
步骤 3. 重启 Docker 容器
查找容器名称并重启:
1
docker compose restart trendz-python-executor
步骤 4. 验证安装
检查日志以确认库已成功安装:
1
docker compose logs trendz-python-executor
您应看到:
1
2
Installing custom Python requirements...
Requirement already satisfied: emoji==2.2.0 in /usr/local/lib/python3.9/site-packages
容器重启后,您可以在 Trendz 字段计算或 Trendz 自定义预测模型中导入并使用自定义库。
下一步
-
快速入门指南 - 快速了解 Trendz 主要功能。
-
指标探索器 - 学习使用 Trendz Metric Explorer 探索和创建指标。
-
异常检测 - 学习识别数据中的异常。
-
字段计算 - 了解字段计算及使用方法。
-
状态 - 学习基于原始遥测定义和分析资产状态。
-
预测 - 学习进行预测及遥测行为预测。
-
筛选器 - 学习在分析中筛选数据集。
-
可用可视化部件 - 了解 Trendz 中可用的可视化部件及配置方法。
-
分享与嵌入可视化 - 学习将 Trendz 可视化添加到 ThingsBoard 仪表盘或第三方网页。
-
AI 助手 - 学习使用 Trendz AI 功能。