AVEVA Historian
本节讲述如何通过 Explorer 界面创建数据迁移/数据同步任务, 从 AVEVA Historian 迁移/同步数据到当前 TDengine 集群。
功能概述
AVEVA Historian 是一款工业大数据分析软件,前身为 Wonderware。可以捕获并存储高保真工业大数据,释放受制约的潜力,从而改善运营。
TDengine 可以高效地从 AVEVA Historian 读取数据并将其写入 TDengine,以实现历史数据迁移或实时数据同步。
创建任务
1. 新增数据源
在数据写入页面中,点击 +新增数据源 按钮,进入新增数据源页面。
2. 配置基本信息
在 名称 中输入任务名称,如:“test_avevaHistorian”;
在 类型 下拉列表中选择 AVEVA Historian。
代理 是非必填项,如有需要,可以在下拉框中选择指定的代理,也可以先点击右侧的 +创建新的代理 按钮
在 目标数据库 下拉列表中选择一个目标数据库,也可以先点击右侧的 +创建数据库 按钮
3. 配置连接信息
在 连接配置 区域填写 Server 地址 和 Server 端口。
在 认证 区域填写 用户名 和 密码。
点击 连通性检查 按钮,检查数据源是否可用。
4. 配置采集信息
在 采集配置 区域填写采集任务相关的配置参数。
4.1. 迁移数据
如果要进行数据迁移,需要配置以下参数:
在 采集模式 下拉列表中选择 migrate。
在 标签 中,填写要迁移的标签列表,以逗号(,)分隔。
在 标签组大小 中,填写标签组的大小。
在 任务开始时间 中,填写数据迁移任务的开始时间。
在 任务结束时间 中,填写数据迁移任务的结束时间。
在 查询的时间窗口 中,填写一个时间间隔,数据迁移任务将按照这个时间间隔划分时间窗口。
4.2. 同步 History 表的数据
如果要同步 Runtime.dbo.History 表中的数据到 TDengine,需要配置以下参数:
在 采集模式 下拉列表中选择 synchronize。
在 表 中选择 Runtime.dbo.History。
在 标签 中,填写要迁移的标签列表,以逗号(,)分隔。
在 标签组大小 中,填写标签组的大小。
在 任务开始时间 中,填写数据迁移任务的开始时间。
在 查询的时间窗口 中,填写一个时间间隔,历史数据部分将按照这个时间间隔划分时间窗口。
在 实时同步的时间间隔 中,填写一个时间间隔,实时数据部分将按照这个时间间隔轮询数据。
在 乱序时间上限 中,填写一个时间间隔,实时数据同步过程中,超过这个时间才入库的数据可能会丢失。
4.3. 同步 Live 表的数据
如果要同步 Runtime.dbo.Live 表中的数据到 TDengine,需要配置以下参数:
在 采集模式 下拉列表中选择 synchronize。
在 表 中选择 Runtime.dbo.Live。
在 标签 中,填写要迁移的标签列表,以逗号(,)分隔。
在 实时同步的时间间隔 中,填写一个时间间隔,实时数据部分将按照这个时间间隔轮询数据。
5. 配置数据映射
在 数据映射 区域填写数据映射相关的配置参数。
点击 从服务器检索 按钮,从 AVEVA Historian 服务器获取示例数据。
在 从列中提取或拆分 中填写从消息体中提取或拆分的字段,例如:将 vValue 字段拆分成 vValue_0
和 vValue_1
这 2 个字段,选择
split 提取器,separator 填写分割符 ,
, number 填写 2。
在 过滤 中,填写过滤条件,例如:填写Value > 0
,则只有 Value 大于 0 的数据才会被写入 TDengine。
在 映射 中,选择要映射到 TDengine 的超级表,以及映射到超级表的列。
点击 预览,可以查看映射的结果。
6. 配置高级选项
在 高级选项 区域填写高级选项相关的配置参数。
在 最大读取并发数 中设置最大读取并发数。默认值:0,表示 auto,自动配置并发数。
在 批次大小 中设置每次写入的批次大小,即:单次发送的最大消息数量。
在 保存原始数据 中选择是否保存原始数据。默认值:否。
当保存原始数据时,以下2个参数配置生效。
在 最大保留天数 中设置原始数据的最大保留天数。
在 原始数据存储目录 中设置原始数据保存路径。
7. 异常处理策略
异常处理策略区域是对数据异常时的处理策略进行配置,默认折叠的,点击右侧 >
可以展开,如下图所示:
各异常项说明及相应可选处理策略如下:
通用处理策略说明:
归档:将异常数据写入归档文件(默认路径为${data_dir}/tasks/_id/.datetime
),不写入目标库
丢弃:将异常数据忽略,不写入目标库
报错:任务报错
- 目标库连接超时 目标库连接失败,可选处理策略:归档、丢弃、报错、缓存
缓存:当目标库状态异常(连接错误或资源不足等情况)时写入缓存文件(默认路径为
${data_dir}/tasks/_id/.datetime
),目标库恢复正常后重新入库 - 目标库不存在 写入报错目标库不存在,可选处理策略:归档、丢弃、报错
- 表不存在 写入报错表不存在,可选处理策略:归档、丢弃、报错、自动建表
自动建表:自动建表,建表成功后重试
- 主键时间戳溢出 检查数据中第一列时间戳是否在正确的时间范围内(now - keep1, now + 100y),可选处理策略:归档、丢弃、报错
- 主键时间戳空 检查数据中第一列时间戳是否为空,可选处理策略:归档、丢弃、报错、使用当前时间
使用当前时间:使用当前时间填充到空的时间戳字段中
- 复合主键空 写入报错复合主键空,可选处理策略:归档、丢弃、报错
- 表名长度溢出 检查子表表名的长度是否超出限制(最大 192 字符),可选处理策略:归档、丢弃、报错、截断、截断且归档
截断:截取原始表名的前 192 个字符作为新的表名
截断且归档:截取原始表名的前 192 个字符作为新的表名,并且将此行记录写入归档文件 - 表名非法字符 检查子表表名中是否包含特殊字符(符号
.
等),可选处理策略:归档、丢弃、报错、非法字符替换为指定字符串非法字符替换为指定字符串:将原始表名中的特殊字符替换为后方输入框中的指定字符串,例如
a.b
替换为a_b
- 表名模板变量空值 检查子表表名模板中的变量是否为空,可选处理策略:丢弃、留空、变量替换为指定字符串
留空:变量位置不做任何特殊处理,例如
a_{x}
转换为a_
变量替换为指定字符串:变量位置使用后方输入框中的指定字符串,例如a_{x}
转换为a_b
- 列名不存在 写入报错列名不存在,可选处理策略:归档、丢弃、报错、自动增加缺失列
自动增加缺失列:根据数据信息,自动修改表结构增加列,修改成功后重试
- 列名长度溢出 检查列名的长度是否超出限制(最大 64 字符),可选处理策略:归档、丢弃、报错
- 列自动扩容 开关选项,打开时,列数据长度超长时将自动修改表结构并重试
- 列长度溢出 写入报错列长度溢出,可选处理策略:归档、丢弃、报错、截断、截断且归档
截断:截取数据中符合长度限制的前 n 个字符
截断且归档:截取数据中符合长度限制的前 n 个字符,并且将此行记录写入归档文件 - 数据异常 其他数据异常(未在上方列出的其他异常)的处理策略,可选处理策略:归档、丢弃、报错
- 连接超时 配置目标库连接超时时间,单位“秒”取值范围 1~600
- 临时存储文件位置 配置缓存文件的位置,实际生效位置
$DATA_DIR/tasks/:id/{location}
- 归档数据保留天数 非负整数,0 表示无限制
- 归档数据可用空间 0~65535,其中 0 表示无限制
- 归档数据文件位置 配置归档文件的位置,实际生效位置
$DATA_DIR/tasks/:id/{location}
- 归档数据失败处理策略 当写入归档文件报错时的处理策略,可选处理策略:删除旧文件、丢弃、报错并停止任务
删除旧文件:删除旧文件,如果删除旧文件后仍然无法写入,则报错并停止任务 丢弃:丢弃即将归档的数据 报错并停止任务:报错并停止当前任务
8. 创建完成
点击 提交 按钮,完成创建任务。提交任务后,回到数据写入页面可以查看任务状态。