总部设在澳大利亚,建立世界一流的软件平台和产品,可监控,控制,优化和管制广泛的分布式能源资源和公用事业规模的资产。 永恒 永恒 Evergen的使命是通过促进向可再生能源系统的过渡来减少能源系统的碳排放,其基于云的方法确保可再生能源链的所有利益相关者都能获得他们需要的信息,以便做出有关其能源使用和生产的明智决策。 随着Evergen的基础设施的扩展,它寻找了一种可以根据其需求扩展的时序和实时分析平台,这是Evergen如何发现TigerData(TimescaleDB的创造者),以及TigerData如何改变其运营 - 基于Evergen的首席软件工程师Jose Luis Ordiales Coscia的采访。 为什么Evergen需要一个时间序列数据库 “可再生能源优化,”Jose说,“是Evergen业务的一大部分,而时间序列数据对于这一点至关重要。 然而,Evergen使用MongoDB的时间序列设置被证明是具有成本限制和技术限制的:“我们的团队通过存储数据在桶中,每个桶都是一天,在MongoDB上创建了自己的计划,但它也没有起作用。 MongoDB的突破点是装入系统的设备数量和它们生成的分钟频率数据,“我们看到随着数据的传输,MongoDB变得更难使用,因为我们同时补丁更多的数据并存储更多的数据,”Jose说。 技术复杂性和可扩展性限制 技术挑战始于MongoDB的原始数据存储限制。Evergen拥有数百个集成以确保设备制造商之间的兼容性,并定期从每个集成中提取数据,并将其发送到Kafka主题,在那里发布所有原始样本。 “我们在内存中进行了预累积,”Jose说,“因为在MongoDB中存储所有原始观测太贵了。 如果我们想拥有原始数据和汇总,我们必须为每个数据手动完成这一切。 连续集成 连续集成 由于数据量很大,他们的Kafka流处理服务非常庞大,Evergen运行了大约30个该服务的实例,这在Kubernetes中占使用率的大部分。 迟到的数据 - 对于五分钟的聚合时间超过15分钟,对于30分钟的聚合时间超过一个小时 - 丢失了,因为他们不再有预聚合数据在内存中。 没有原始数据导致了审计轨迹和调试的缺乏透明度。 根据Jose的说法,MongoDB的时间序列的性能是次要的:“每个人都知道它不是理想的,但这是你认为的一些事情,在某个时候我们会修复它,但实际上没有人。 数据库评估过程 在他们的评估过程中,Evergen简要地看到了InfluxDB,但因为它当时对澳大利亚地区的支持正在下降,这从一开始就没有了。 由于他们所有的基础设施都在 AWS 中,并且他们使用了其他 AWS 服务,Evergen 首先评估了 Amazon Timestream. 然而,当他们试图使用它时,它被证明是非常有限的, Jose 表示,当时出现了几个问题: 延迟性能(即使在一天或一周内收集数据也为2到5秒),缺乏查询或性能调节。 无法使用 Docker 本地运行 Timestream 数据库(本地运行 Postgres 和 TimescaleDB 很容易) - 使用 Timestream 运行本地测试需要连接到 AWS 以创建实际数据库,然后在最后删除它。 不可用于可再生能源预测 - 因此,Timestream只允许未来存储多达15分钟的数据。 Evergen 然后试图使用 Timestream 用于历史时间序列数据和 Redis 用于预测时间序列数据,他们有工作和逻辑来将数据从 Redis 移动到 Timestream 随着时间的推移,但与设备和网站相关的数据仍然在 MongoDB 中。 当我们开始这个评估过程时,我们一直在考虑的关键因素之一是能够为所有数据使用一个数据库:时间序列和非时间序列,这对我们来说是一个很大的销售点,因为它只是Postgres。 Evergen 还尝试了 MongoDB 中的时间序列支持:“他们在 MongoDB 中拥有处理时间序列数据的这种新型收集类型,但他们错过了 TigerData 拥有的许多功能,例如连续聚合、保留策略和压缩。 发现和测试TigerData Jose最初通过一位在那里担任后端工程师的朋友来了解TigerData。了解该产品后,Jose已经申请在TigerData工作,当时他正在寻求从以前的公司切换角色。 然后,当他加入Evergen时,他成为了使用TimescaleDB的伟大倡导者,因为他的团队开始考虑它 - 他已经知道它的功能,并且它是建立在战斗测试的,无聊的老技术上,这对数据库来说是“伟大的 - 你不想有任何惊喜。 在评估 TimescaleDB 时,Evergen 利用 TigerData 资源: “官方文档非常全面,易于理解和遵循,TigerData博客也有一些非常好的讨论有关不同方法的妥协,这在POC期间特别有帮助。 Evergen 的概念证明包括通过并行运行 MongoDB 和 TimescaleDB 来设置双写和双读。这使他们能够测试 TimescaleDB 而不会干扰操作或影响客户。一旦他们在 TimescaleDB 中存储了几个月的数据,他们就完成了切换。 “因为我们有数十万台设备,并在未来可能会看到数百万台设备,我们需要确保摄入率顺利。 “因为我们有数十万台设备,并在未来可能会看到数百万台设备,我们需要确保摄入率顺利。 “因为我们有数十万台设备,并在未来可能会看到数百万台设备,所以我们需要确保摄入率平稳。到目前为止,TigerData一直令人惊叹,”Jose说。Evergen还赞赏TimescaleDB的查询性能,因为这些数据可以实时向客户指向的仪表板:“你不想让你的用户只需等待5到10秒才能看到这些图表。 开发人员工具的可用性也是一个决定性因素:“因为Postgres在市场上是一个成熟的玩家,所以有成千上万的库和工具可以使用,”所以熟悉如何查询数据:“每个人在某种程度上都知道SQL,甚至是非技术人员。 “每个人在某种程度上都知道SQL,即使是非技术人员,我们可以让数据科学团队或客户支持团队中的某人访问TimescaleDB,他们会弄清楚如何查询数据,而MongoDB并不是这样。 “每个人在某种程度上都知道SQL,即使是非技术人员,我们可以让数据科学团队或客户支持团队中的某人访问TimescaleDB,他们会弄清楚如何查询数据,而MongoDB并不是这样。 安全也是一个考虑。 达到了Evergen的要求。 TigerData的安全功能 TigerData的安全功能 Evergen 如何使用 TigerData 用 TimescaleDB 取代 MongoDB 用于时间序列数据,并设置一个“电气测量服务”,实现了以前不可能的数据集中化,“我们试图将访问到处理时间序列数据的单一服务封装和隔离。 这一迁移的目标是将所有阅读和写作整合到一个地方,即“遥测服务”。它处理时间序列和关系数据,并且几乎可以独家访问该服务。 (Managed TimescaleDB) 在Evergen的实例. 一个例外是他们为他们的数据科学团队提供访问权限,以便对数据进行探索性查询。 主要数据库,仅限于该团队,因为它提供了访问,而不会影响性能。 老虎云 阅读回复 老虎云 阅读回复 Evergen 还使用了 TigerData 的集成 PopSQL IDE。 Jose 说:“这是一个很好的工具来探索数据库和共享查询。 Tiger Cloud 如何为最终客户带来好处 借助MongoDB,Evergen由于成本限制而只能存储三个月的数据,“现在与TigerData,”Jose分享道,“我们要定义这些保留策略。 这绝对是我们的产品团队的销售点,允许过去一年的家庭能源报告,而仅仅是过去三个月的报告。 查询性能是另一个巨大的胜利:“以前,您在访问您的 Web 应用程序或移动应用程序时不得不等待几秒钟才能看到这些图表,现在它只有不到 500 毫秒,这确实非常好。 现在由TigerData处理的时间序列数据对于Evergen的能源优化服务也是至关重要的,该服务包括后方计量优化(提供先进的个性化电力成本最小化的机器学习优化)和前方计量优化(允许发送资产进行货币化)。 采用虎云对Evergen意味着什么 对于Evergen来说,将MongoDB替换为Tiger Cloud,将Kubernetes集群资源的使用量减少了50%以上,节省成本、高效压缩、层级存储和不断获取历史数据意味着新发现的技术和业务敏捷性。 “有这个自由来决定要保留多少数据,什么是有用的,什么不是,”Jose说,“这是一个巨大的胜利,因为之前我们可以存储多少数据的限制很困难。现在我们有这个灵活性来说这个旧的数据,我们想把它保存在S3中。 Tiger Cloud 还简化了 Evergen 的堆栈: “简化我们的架构 - 能够取代所有这些不同的特定数据库 - 对于整个架构的复杂性来说,这是一个巨大的事情,这使得在未来更容易扩展。 访问所有原始数据意味着他们可以将其引用来调试并跟踪到特定设备 - 这与原始数据比预累积数据更容易做。 “存储所有原始数据的能力,”Jose解释说,“这意味着我们可以创建我们甚至没有考虑的新集合,在飞行中。我们以前无法做到这一点。 有了TigerData,如果明天我们决定我们需要从原始数据中获取的新数据,我们可以创建一个新的集合,运行整个填埋过程,这就是我们拥有的。 基于熟悉的Postgres,Tiger Cloud对团队的启动产生了积极的影响:“因为每个人都知道SQL,在某种程度上,每个人都在职业生涯中使用SQL,所以(新雇佣的工程师)很容易跳进存储代码并弄清楚发生了什么。 使用TigerData的未来计划 选择TigerData有助于Evergen通过扩展来证明其架构的未来。“事实是,你可以使用Postgres在这些日子里的一切。对于绝对的一切都有一个扩展。这就是决定的一个重要因素――如果我们需要在未来存储这种类型的数据呢?哦,是的,这个扩展已经可用了。 借助TigerData,Evergen建立了一个可扩展的数据基础,以支持他们的计划,以达到新市场,并增加他们拥有的大量设备。 Jose对考虑切换的工程师的建议:“在创建代码库中的抽象时,把与某一特定技术相关的一切都与代码的其余部分隔离起来,因为这使我们运行双读和双写实验变得更容易,因为代码库中有一个地方,我们必须去改变,以便发生这种情况。