标签 数据压缩 下的文章

小T导读:在智慧港口的建设过程中,面对海量物联网设备产生的时序数据(如设备状态、能耗、作业效率等)的高效接入与实时分析需求,山东港口科技选择采用 TDengine TSDB 时序数据库作为核心数据底座,以应对传统关系型数据库在处理高并发、大规模时序数据时的性能瓶颈,实现设备状态的实时监控、数据压缩存储与智能分析,为智慧港口的数字化转型与智能化运营提供强有力的数据支撑。本次将就此实践进行具体分享。

合作背景

在“智慧港口”的宏伟蓝图下,山东港口科技集团面临着海量物联网设备数据接入、处理与分析的严峻挑战。港口作业涉及大量的桥吊、门机、集卡、传感器等终端设备,这些设备 7x24 小时不间断产生巨量的时序数据(如位置、状态、能耗、效率指标等)。传统的通用关系型数据库在处理这类高并发、海量的时序数据时,显得力不从心。为了夯实智慧港口的数据根基,经过严谨的选型,我们最终选择了 TDengine TSDB 作为核心时序数据平台,以支撑关键业务系统的数字化转型。

选择 TDengine TSDB 的原因

在引入 TDengine TSDB 之前,我们的业务系统主要面临以下痛点:

  • 数据膨胀与存储成本高:​ 港口设备每秒产生数以万计的数据点,若采用传统数据库存储,数据表会急剧膨胀,不仅占用大量存储空间,且备份和维护成本高昂。
  • 查询分析效率瓶颈:​ 对于实时监控、效率分析和历史数据回溯等场景,传统数据库的查询响应速度慢,无法满足业务对“实时洞察”的要求,特别是在聚合计算大量设备的历史数据时,耗时长达分钟甚至小时级。
  • 系统架构复杂:​ 为了应对不同的数据处理需求(如实时、短期、长期),往往需要组合使用多种数据库和技术栈(如 Redis、MySQL、Hadoop 等),这增加了系统架构的复杂性、开发和运维难度。

TDengine TSDB 作为专为时序数据设计的数据库,其超高性能、内置缓存和流式计算功能、极简的架构以及强大的数据压缩能力​,恰好精准地解决了上述痛点,成为我们的理想选择。

使用 TDengine TSDB 后的收益与业务提升

部署 TDengine TSDB 后,我们在多个方面获得了显著收益:

  • 极致的性能提升:​ 对港口设备运行状态的查询响应速度从原来的“分钟级”提升到“毫秒级”,实现了真正的实时监控与告警。
  • 显著的降本增效:TDengine TSDB 高效的数据压缩技术,使得存储空间节省超过 80%,大幅降低了硬件与运维成本,简化的架构也减少了运维团队的工作负担。
  • 增强的数据驱动能力:​借助 TDengine TSDB 强大的时序数据计算能力,业务团队能够轻松进行设备效率分析、预测性维护和运营优化,为决策提供坚实的数据支持,进一步强化了“智慧港口解决方案”的核心优势。
  • 加速创新应用落地:借助 TDengine TSDB 这一稳定的高性能数据底座,我们能够快速开发和部署新的数据密集型应用,如全自动码头的智能调度系统、物流供应链的可视化平台等。

核心业务场景与 TDengine TSDB 应用实例

场景一:港口岸桥设备实时状态监控与效率分析

  • 业务描述:​ 实时监控码头所有岸桥(Quay Crane)的运行状态(如起升、下降、大车行走、小车行走)、能耗以及作业效率(如单箱能耗、作业周期),确保设备安全高效运行,并即时发现异常。
  • TDengine TSDB 查询 SQL 示例:
-- 1. 查询指定岸桥(Crane_ID = 'QC08') 在过去10分钟内的平均功率和总能耗
SELECT AVG(power_kw), SUM(power_kw * ts_interval / 3600) AS total_energy_kwh
FROM crane_power_metrics
WHERE crane_id = 'QC08' AND ts >= NOW - 10m
INTERVAL(1m);

-- 2. 统计过去1小时内,所有岸桥的作业箱量(基于每次吊装动作计数)
SELECT crane_id, COUNT(*) AS operation_count
FROM crane_operation_events
WHERE ts >= NOW - 1h AND operation_type = 'lift_complete'
GROUP BY crane_id;​

通过 TDengine TSDB 毫秒级查询与高效聚合能力,我们实现了对数百台岸桥设备运行状态的实时监控(1 分钟粒度)与异常秒级捕捉,查询效率从分钟级提升至毫秒级,存储成本降低超 80%,极大提升了设备管理实时性与安全性。

场景二:智能集卡(AGV/IGV)调度与路径优化

  • 业务描述:​ 追踪自动化码头内数百台智能导引车(AGV)的实时位置、速度、电池电量和状态,基于这些时序数据进行最优路径规划和调度,避免拥堵,提升整体物流周转效率。
  • TDengine TSDB 查询 SQL 示例:​
-- 1. 查询所有电量低于20%的AGV的当前位置和最新电量
SELECT last(latitude), last(longitude), last(battery_level)
FROM agv_status_metrics
WHERE battery_level < 20
GROUP BY agv_id;

-- 2. 计算指定区域(如A01区)过去5分钟内的平均车辆速度,用于判断拥堵情况
SELECT AVG(speed_kmh) AS avg_speed
FROM agv_location_metrics
WHERE ts >= NOW - 5m AND zone_id = 'A01';

借助 TDengine TSDB 的 last() 实时状态查询与窗口聚合能力,我们实现了对数百台 AGV 的实时位置、电量及速度监控,低电量车辆识别与区域拥堵判断均达到秒级响应,调度效率提升约 50%\~70%,整体物流周转更高效、更智能。

场景三:港口风速风向监测与预警

  • 业务描述:​分布在港区各处的气象站持续采集风速、风向数据。系统需要实时判断是否超过安全作业阈值,并及时向相关设备和人员发出预警,保障恶劣天气下的作业安全。
  • TDengine TSDB 流计算 SQL 示例:​
-- 创建流式计算,持续监控风速,一旦发现某个站点每分钟一次的平均风速超过阈值(18m/s),则触发告警
CREATE STREAM wind_alert_stream
INTO wind_alert_events
AS
SELECT _wstart AS ts, station_id, AVG(wind_speed) AS avg_wind_speed
FROM weather_station_metrics 
PARTITION BY station_id
INTERVAL(1m) SLIDING(1m);

-- 查询历史告警记录
SELECT * FROM wind_alert_events WHERE ts >= TODAY ORDER BY ts DESC;

解析如下:

  • CREATE STREAM wind\_alert\_stream 定义了一个名为 wind_alert_stream的流,用于持续处理实时数据。
  • INTO wind\_alert\_events 将流计算的结果写入到 TDengine TSDB 中的 wind_alert_events表中,该表为一个超级表,按照分组会自动生成子表,用于存储每个分组的告警事件。
  • SELECT \_wstart AS ts, station\_id, AVG(wind\_speed) AS avg\_wind\_speed 选择数据流中的时间戳(\_wstart)、站点 ID(station\_id)以及风速的平均值(AVG(wind\_speed))。_wstart是该时间窗口的起始时间,作为告警触发的时间点。
  • FROM weather\_station\_metrics 数据源是 weather_station_metrics表,该表应包含字段如:ts(时间戳)、station_id(站点 ID)、wind_speed(风速-单位:m/s)等。
  • PARTITION BY station\_id 按站点分组,每个站点独立计算,避免不同站点之间的数据干扰。
  • INTERVAL(1m) SLIDING(1m) 定义了 1 分钟的时间窗口,每 1 分钟滑动一次,即每分钟统计一次过去 1 分钟内的数据。

借助 TDengine TSDB 灵活的流计算能力(1 分钟滑动窗口),我们实现了港口风速的实时监测与自动告警(响应时间<1 分钟)。原本需要多个大数据组件才能完成的处理流程,如今只需一条语句即可完成,告警的准确性与时效性显著提升,安全运维效率也随之大幅提高。

结语

通过引入 TDengine TSDB,我们成功构建了一个高性能、高可用的时序数据管理平台,有效解决了智慧港口建设中海量物联网数据处理的核心难题。这一合作不仅提升了现有业务的运营效率和智能化水平,也为未来探索更多基于数据的创新应用(如数字孪生港口)奠定了坚实的基础,有力地支撑了山东港口科技集团有限公司打造“行业领先的高新技术上市企业”的战略目标。

关于山东港口科技

山东港口科技集团有限公司是山东省港口集团为全力推进智慧港口建设而设立的高科技子公司。公司立足信息化顶层设计、核心应用系统研发和大数据应用,致力于打造物流供应链服务平台、智慧港口解决方案和自动化应用系统三大核心优势。作为一家以创新为驱动的高新技术企业,科技集团正积极利用数字技术,为全球港口行业的智能化升级注入科技力量。

作者:张艳明

小T导读:京能集团在储能安全管理平台中采用 TDengine TSDB 作为底层时序数据库。依托 TDengine 企业版的零代码数据写入平台,来自全国 28 家电化学储能电站的数据能够按照统一编码规则高效接入 TDengine 时序数据库中,实现了稳定、高性能的数据采集与管理。在此基础上,借助 TDengine TSDB Flink Connector,系统可快速、稳定地从数据库中读取海量数据,开展实时分析与智能处理,充分释放数据的潜在价值。本文将结合该项目的实践过程,为大家带来深入分享与参考。

项目背景

京能集团储能安全管理平台共接入全国 28 家电化学储能电站,累计测点达 270 万个,由四个平台公司分别负责数据传输与汇聚。系统需要支撑大规模的数据统计分析、事件报警与安全预警,对底层数据库的性能与稳定性提出了极高要求。

鉴于电化学储能项目采集点数量庞大(270 万点)、锂电池热失控的超前预警技术复杂等因素,传统关系型数据库已无法满足高并发写入与海量数据存储的需求。由于这些数据具备时间序列写入、格式固定、写入量巨大等典型特征,我们最终选择采用时序数据库作为系统核心数据底座。

应用实际落地

在充分调研国内多款时序数据库产品后,我们发现,从国内目前的实际情况分析,TDengine TSDB 已成为众多企业在海量数据高速存储、处理与调用场景中的首选方案。基于其成熟的技术体系与稳定的性能表现,我们最终选定 TDengine TSDB 作为平台的底层时序数据库,并结合 Kafka 与 Flink 构建了完整的数据流处理体系,实现了数据的高效传输与实时计算,顺利达成项目预期目标。以下是架构简图:

TDengine TSDB 支持多种写入方式

  1. SQL 语言写入 :https://docs.taosdata.com/basic/insert/
  2. 无模式写入:https://docs.taosdata.com/develop/schemaless/
  3. 参数绑定方式:https://docs.taosdata.com/develop/stmt/
  4. 企业版的零代码数据写入— taosExplorer 数据接入功能:https://docs.taosdata.com/advanced/data-in/

项目中涉及多个 Kafka 集群、数十个需要接入的 topic。我们重点采用了 TDengine 企业版的零代码数据写入能力,实现了从 Kafka 到 TDengine TSDB 的高效对接。该功能支持灵活配置类似 ETL 的复杂自定义选项,极大简化了数据接入流程和时间,而且数据接入性能完全达到了项目要求。

为了保证数据的合理性,我们出台了《京能集团电化学储能电站安全管理平台和储能电站设备标识编码规则》,通过标准的 kks 编码在 taosX 对 Kafka 数据进行了有效过滤和清理,最终写入 TDengine TSDB。kks 部分编码实例如下:

下图为数据过滤、转换等规则设置:

此外,taosX 数据接入还支持多节点高可用配置。只需在多台 taosX 上部署相同的 Kafka 数据接入任务,并设置相同的 groupId,即可自动实现任务高可用,确保数据接入的连续性与稳定性。

同时,TDengine 还提供完善的 taosX 任务监控机制,可直接通过 Grafana 一键配置,快速生成可视化监控图表:

超级表 + 子表的使用

TDengine TSDB 结合“一个数据采集点一张表”的设计理念,引入了具有创新性的“超级表”机制,从根本上解决了大规模时序数据结构不统一、聚合困难、运维复杂等问题。每个采集点的数据独立存储,天然具备写入无锁、数据顺序追加、块状连续存储等优势。这种设计方式不仅提升了写入与查询性能,还带来了极高的数据压缩效率。

TDengine TSDB 支持对超级表标签进行动态的添加、修改与删除操作,满足设备属性变更、系统扩展等业务需求。

计算、分析处理

在 Flink 计算平台上,我们借助 TDengine TSDB 企业版提供的 Flink 连接器——TDengine TSDB Flink Connector(https://docs.taosdata.com/advanced/data-publisher/Flink/),实现了与 TDengine TSDB 的无缝集成。该连接器可高效、稳定地从 TDengine TSDB 中读取海量时序数据,并在此基础上进行全面、深入的分析处理,充分挖掘数据的潜在价值,极大地提升数据处理的效率和质量。

Flink CDC 主要用于提供数据订阅功能,能实时监控 TDengine TSDB 数据库的数据变化,并将这些变更以数据流形式传输到 Flink 中进行处理,同时确保数据的一致性和完整性。

落地效果

  1. 数据接入便利性:目前我们已接入 20 多个 kafka 数据,后期还会继续增加。得益于 TDengine 企业版零代码数据接入能力,新增任务仅需复制并做少量参数调整即可完成,操作简便高效,整体接入过程较传统方式节省约 90% 的时间成本
  2. 数据查询性能高:开启数据库缓存功能后,能够实时获取每个设备点位最新值,毫秒级别即可返回结果
  3. 数据存储成本低:TDengine TSDB 具备出色的数据压缩能力,其二级压缩技术将数据视作无差别的二进制块进行再次压缩。与一级压缩相比,二级压缩的侧重点在于消除数据块之间的信息冗余。目前我们提供的服务器存储远远满足我们项目规划的 5 年数据存储,存储成本估算节省至少 60-70%
  4. 实时订阅:通过 TDengine 提供的 Flink CDC 实时订阅功能,能方便、高效的进行分析、告警等处理,给我们后期分析带来了极大的便利性。

后期规划

目前,我们正在对京能集团储能安全管理平台已经接入的 28 场站数据进行分析和优化,提高数据采集的可靠性和鲁棒性。未来我们会针对 TDengine TSDB 新版本和新功能进行持续跟踪,进一步开发 TDengine TSDB 的内在潜力和各种有效的功能。

近期我们关注到 TDengine 发布了新产品 TDengine IDMP,通过经典的树状层次结构组织传感器、设备采集的数据,建立数据目录,对数据提供情境化、标准化的处理,并提供实时分析、可视化等功能,接下来我们会进一步了解此产品在我们业务中的使用可能。

关于京能集团

北京能源集团有限责任公司是北京市人民政府出资设立的国有独资公司,肩负着保障首都北京能源安全可靠供应的重任。京能集团成立于 2004 年,由原北京国际电力开发投资公司和原北京市综合投资公司合并而成,2011 年、2014 年先后又与北京市热力集团有限责任公司、北京京煤集团有限责任公司实施合并重组,实现了产业链条融合互补。经过多年的资源整合,集团由单一能源产业发展为热力、电力、煤炭、健康文旅等多业态产业格局。2024 年在中国企业 500 强排名第 247 位,中国服务企业 500 强排名第 87 位。

作者:张海增