夯实智慧新能源数据底座,TiDB Serverless 在 Sandisolar+ 的应用实践

本文介绍了 SandiSolar+通过 TiDB Serverless 构建智慧新能源数据底座的思路与实践。作为一家致力于为全球提供清洁电力解决方案的新能源企业,SandiSolar+面临着处理大量实时数据的挑战。为了应对这一问题,SandiSolar+选择了 TiDB Serverless 作为他们的数据底座。TiDB Serverless 具有灵活扩展、按实际使用量付费、自动伸缩等特点,能够满足 SandiSolar+的实时数据处理需求。未来,SandiSolar+计划在 TiDB Serverless 基础上开发实时计费、高频交易等功能,为光伏产业探索更深层次的服务与盈利模式。

云南尚鼎新能源有限公司(SandiSolar+ )成立于 2008 年,是一家专注于太阳能光伏产品应用和光伏系统服务的高新技术企业,历经 15 年东南亚市场的沉淀,不断向市场提供专业的光伏产品、绿色电力系统解决方案,建立了一流的光伏品牌供应链体系。2022 年,SandiSsolar+ 进行品牌升级,将多年来沉淀的供应优势、服务标准,集成为一个全流程的智慧能源服务平台------SandiSolar+,致力于跑通智慧能源的"最后一公里" 。

业务挑战

SandiSolar+ 新能源的愿景是:引领数字化、智能化的绿色生活,为全世界平价用电、绿色用电的生活方式贡献力量。通过不断创新和发展,SandiSolar+ 目前已经为缅甸无电地区的数百万家庭提供了清洁电力。

与传统光伏企业不同,SandiSolar+ 对数据价值挖掘有着较为强烈的需求。目前,SandiSolar+ 内部的数据来源主要有两类:一类是光伏逆变器的数据,可以采集到每一个光伏电站的发电量;另一类是这些家庭中安装的第三方智能电表的数据,可以采集到每一个家庭的用电量。这些数据通过 API 接口实时汇总到 SandiSolar+ 的 SaaS 平台上,并在数据库中进行聚合,计算出该光伏电站每天、每小时的发电量与用电量。

在该场景下,通常需要聚合 4-5 张大表数据,例如项目表、用电数据表、逆变器数据表和智能电表数据表,用电数据表还会每隔几个小时做一次快照,生成一张快照表。每张表都有十几万行数据,数据量常常达到数十万级,聚合的 SQL Query 也会达到 300-400 行长度,聚合过程较为复杂,并要求毫秒级返回计算结果。

由于第三方的 API 稳定性和访问频率都有一定限制,SandiSolar+ 正在开发自己的智能网关,可以更实时地采集到每一个光伏电站的温度、发电频率、发电功率、用电量等数据,未来会逐步替换掉第三方智能电表,通过互联网协议将数据传输到 SandiSolar+ 的服务器上,对数据的实时处理会提出更高要求。

在该 SaaS 系统中,SandiSolar+ 最核心的部分是打造了一个"数据中台",系统中所有数据的搜索查询都通过"数据中台"实现。前端的 APP 以及后端的管理平台都通过该中台搜索收据。如 C 端用户在 APP 中查看自己的历史发电量与用电量,B 后 端的管理平台可以查看电站从勘测、施工、验收、运营阶段的工单留档及用电数据等。此外,B 端还会产生一部分工单数据,如光伏电站的施工、安装、验收留档数据等。所有这些数据都存放在同一套数据库中,对于数据库而言,这套系统主要面临以下几项挑战:

  • SandiSolar+ C SaaS 平台根据业务的发展,需要端用户可以灵活添加或删除字段,自定义灵活度很高,传统数据库在做相关操作时会锁表,这就需要数据库具备灵活的 Online DDL 能力;
  • 由于 SandisSolar+ SaaS 平台的字段都可以灵活添加、删除和自定义,一个表里可能有上百个字段,开发人员不可能为每个字段都添加一个索引,这时列存就是一个比较理想的选择,需要数据库具备行存、列存同构的 HTAP 能力;
  • PostgreSQL 等传统数据库无法做到实时的物化视图能力,即使像 Snowflake 也只提供 2 分钟更新频率的 Materialized View,无法支持事务型的业务需求,TiDB 可以同时支持事务型交易及数据分析,是满足实时数据分析的最佳选择;
  • 该 SaaS 系统提供了一个"计算型字段"功能,用户可以在字段上自定义 formular 公式,在系统中进行实时汇总与聚合,如从一个工单中找到所属的客户姓名项目地址、计算项目当月用电量、聚合服务商历史工单平均满意度等;
  • 未来,全面替换为智能网关后,实时数据采集会造成比较大的写压力,需要数据库具备较高的实时处理以及并发写能力;

综上所述,SandisSolar+ 的 SaaS 平台对数据的实时性处理要求较高,传统的大数据、离线数仓无法满足这种实时性需求,经过对主流数据库进行选型,SandiSsolar+ 最终选择了具备 HTAP 能力的 TiDB Serverless 数据库来作为数据底座,为相关业务系统的智能化、可靠性、实时性提供了全面保障,承载了 SaaS 平台的实时数据存储、计算需求。

为什么选择 TiDB Serverless?

TiDB Serverless 是一种全托管的、自动化的数据库服务(DBaaS),能够快速部署集群,并按实际使用资源量计费。结合自身业务架构特性,Sandisolar SandiSolar+ 在考虑 TiDB Serverless 时重点关注以下特性:

  • 轻松扩展基础设施,支持多国家扩展 :TiDB Serverless 可以秒级搭建起数据库环境,开发团队能够迅速开展业务创新和开发。同时,TiDB Serverless 可以根据不同国家搭建不同的集群,可以满足 SandiSolar+ 在各国的不同需求,不会互相干扰;
  • 按实际使用量付费,起始成本低 :TiDB Serverless 服务无需预付费用,企业可以按照实际提交的 SQL 请求和实际使用的存储来付费,这种基于消费的定价模式为开发者创造了一个"随时启动,随用随付"的消费模式。SandiSolar+ 只需为实际的数据处理和存储付费,上手使用成本较低;
  • 自动伸缩,灵活应对业务增长 :TiDB Serverless 具有一个高度灵活扩展的分布式架构,可以随需弹性扩缩容,应对业务的快速增长,无需担心性能瓶颈与存储上限。同时,无论是存储、事务处理还是分析工作负载,SandiSolar+ 都能在几秒内根据应用需求自动伸缩,避免造成资源冗余浪费,既灵活又经济;
  • HTAP 架构,加速业务实时洞察 :TiDB Cloud Serverless 专为规模化交易、实时分析和混合工作负载以及流量激增的应用程序而构建,可以自动扩缩容以满足实时需求。TiDB 提供支持 MPP 架构的列存引擎 TiFlash ,SandiSolar+ 只需简单地进行数据聚合即可满足在线业务的实时分析需求,从而使运营效率和用户体验获得大幅提升;
  • TiDB Serverless Branching,快速实现并行开发 :SandiSolar+ 在开发过程中应用了 TiDB Serverless 的 Branching 功能。该功能可以使 SandiSolar+ 开发人员为其 TiDB Serverless 集群创建分支。这些分支可以实现并行开发,促进新功能快速迭代,排查故障,开发者无需中断生产数据库的运行。Branching 不仅简化了开发和部署过程,还保持了生产环境中数据库的稳定性和可靠性;
  • 轻松上手,无需分库分表 :应用 TiDB Serverless 可以帮助 SandiSolar+ 摆脱分库分表等数据库繁琐的操作任务,相当于只维护一张大表即可,既可以满足更长时间维度的查询需求,又无需反复对数据进行整理操作。

未来计划

基于 TiDB Serverless,SandiSolar+ 打造出一个具有实时数据处理能力的数据平台,在此基础上可以探索光伏周边衍生业务的可能性。

通常,电力公司会根据用电时段和电压等级,面向不同用户提供不同的电价策略。SandiSolar+ 正在开发一种实时计算电费的功能,可以根据不同的电价策略,结合 SaaS 平台中实时采集到的发电、用电数据,为每个用户实时计算出电费。目前,大多数泰国的电力公司还在通过 Excel 表格及程序代码来实现类似的计费功能,SandiSolar+ 凭借领先的数据处理能力,得以在光伏产业探索出更深层次的服务与盈利模式。

此外,SandisSolar+ 在实时统计发电量、用电量以及实时电价计算能力之上,还计划开发高频交易功能,C 端用户可以在其 SaaS 平台上进行碳资产的实时交易,努力推动实现碳中碳达峰目标。

相关推荐
Karoku0667 分钟前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术1 小时前
数据库表设计范式
数据库·mysql
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer1 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体1 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪2 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀2 小时前
MySQL中的索引
数据库·mysql
a_安徒生2 小时前
linux安装TDengine
linux·数据库·tdengine