Files

45 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

1. Kafka 数据结构
{
"HotelCode": "1085", // 酒店编码
"MAC": "00:1A:2B:3C:4D:5E", // MAC地址
"HostNumber": "091123987456", // 设备编号
"RoomNumber": "8888房", // 房号
"EndPoint": "50.2.60.1:6543", // IP:端口
"CurrentStatus": "on", // 当前状态枚举值on/off 如果是重启则为on
"CurrentTime": "2026-02-02T10:30:00Z" // 发生时间
"UnixTime": 1770000235000, // Unix时间戳毫秒级
"LauncherVersion": "1.0.0", // 启动器版本,可为空
"RebootReason": "1" // 枚举值0x01软件复位0x02上电复位0x03外部手动复位0x04下电模式唤醒的复位0x05看门狗超时复位0x06其他复位NULL并非重启数据
}
2. Kafka主题
Topicblwlog4Nodejs-rcu-onoffline-topic
3. 数据库结构
数据库log_platform
onoffline_record
字段:
guid varchar(32) GUID32 位无连字符 HEX小写自动生成
ts_ms int8 Unix时间戳 对应kafkaUnixTime (索引)
write_ts_ms int8 写入时间戳 (写入的时候自动生成)
hotel_id int2 酒店ID 对应kafkaHotelCode (索引)
mac varchar(21) MAC地址 对应kafkaMAC
device_id varchar(64) 设备ID 对应kafkaHostNumber (索引)
room_id varchar(64) 房间ID 对应kafkaRoomNumber (索引)
ip varchar(21) IP地址 对应kafkaEndPoint
current_status varchar(10) 当前状态 对应kafkaCurrentStatus (索引)
launcher_version varchar(10) 启动器版本 对应kafkaLauncherVersion 可为空
reboot_reason varchar(10) 重启原因 对应kafkaRebootReason 可为空
- 主键ts_ms, mac, device_id, room_id
4. 开发要求:
从kafka拉取数据然后处理再写入数据库。同时要创建好数据库表要按照ts_ms按天分区。
数据处理特殊说明:
- 有两种结构的数据:
- 非重启数据reboot_reason 为 空 或不存在该字段
- 当判断为非重启数据时current_status 为 对应kafkaCurrentStatus
- 重启数据reboot_reason 不为 空
- 当判断为重启数据时current_status 默认设置为 on
- 其他数据直接按照kafka数据写入数据库不做特殊处理如果为空数据库字段也为空就算是数字类型字段也不要补0