InfluxDB 3.0 与 ADX 的比较
作者:Jason Myers / 开发者,产品
2023年5月10日
导航到
在过去的几年中,时序数据库是世界上增长最快的数据库类别之一。随着越来越多的组织意识到时序数据对其业务运营的重要性,市场上出现了更多的数据库选项。InfluxDB多年来一直是领先的时序数据库,随着InfluxDB 3.0的发布,它仍然是时序领域的先锋。因此,考虑到这一点,让我们来看看InfluxDB 3.0与竞争者的比较,特别是与Microsoft Azure Data Explorer (ADX)的比较。
架构
InfluxDB和ADX都是列式数据库,旨在处理大型时序工作负载和无限基数数据。但相似之处到此为止。
InfluxDB为用户和组织提供了管理时序数据的大量灵活性。首先,InfluxDB专为时序数据构建。它提供全托管云服务和自托管本地解决方案。InfluxDB Cloud提供弹性多租户服务和专用单租户服务。InfluxDB Cloud在AWS、Azure和GCP上提供,允许组织使用最适合其需求的提供者,而不会影响性能。这为组织在如何使用云方面提供了大量灵活性。InfluxDB还提供企业版和开源版本,适用于本地、私有云和边缘部署。
ADX不是一个专门为时序数据构建的数据库;而是一个支持时序工作负载的关系型数据库。ADX仅作为托管云解决方案提供,因此不支持需要(或更喜欢)本地解决方案的组织。同样,ADX仅可在Azure云上使用。虽然这使得它对Azure商店有吸引力,但绑定在其他云提供商的组织需要投资开发将数据导出到Azure的方法,或者选择不同的解决方案。
功能
InfluxDB和ADX都提供了一系列功能以促进开发。它们都设计用于OLAP工作负载,并可以实时或批量处理数据。它们都提供API访问和客户端库以处理数据,尽管它们不一定提供可比较的API选项或同一语言中的库。它们都支持schema-on-write和显式数据模式。
许多InfluxDB功能优先考虑易用性。它具有一个开发者可以在整个产品套件中使用的单一API。这提高了可扩展性,因为用户可以快速启动一个新实例并使用他们已有的脚本使其快速投产。InfluxDB支持SQL和InfluxQL进行数据查询。SQL是世界上最常用的语言之一,减少了摩擦并加快了应用程序的开发。InfluxQL是一种类似SQL的语言,增加了基于时间的函数。InfluxDB 3.0基于开源的Apache Arrow生态系统,并以开源的Apache Parquet文件格式持久化数据。这增加了InfluxDB的互操作性,使其易于与其他基于Arrow的生态系统集成。InfluxDB 3.0使用Apache Arrow Flight SQL与大量不断增长的三方工具进行通信,如Grafana和Apache SuperSet进行可视化。
ADX的功能在很大程度上依赖于微软生态系统。ADX提供RESTful API,并集成MS-TDS。这允许用户使用T-SQL查询数据,并与SQL Server Management Studio提供互操作性。然而,该数据库不支持常规SQL。相反,它提供了一种专有的查询语言KQL,用于数据处理和分析。虽然ADX可以摄取Apache Parquet文件,但并不优化与其他Parquet友好解决方案的互操作性,限制了数据的可扩展性。ADX具有内置的数据可视化功能,并可以与Power BI等工具集成。
性能
这两个数据库都可以处理大型、OLAP时间序列数据工作负载。
InfluxDB 3.0将计算和存储分离,以最大化性能并降低成本。它使用列式内存“热”存储层来缓存最近的数据,以便进行实时、亚秒查询,并将Parquet文件持久化到对象存储,“冷”存储层。Parquet具有极高的数据压缩率,允许用户使用更少的存储空间来保存更多的高保真数据,从而节省存储成本。
ADX将计算和存储结合在一起,不允许独立于这些向量进行扩展。这意味着用户可能最终会为不需要的资源付费。
结论
由于InfluxDB和ADX有多个关键相似之处,正在考虑这两个解决方案的组织应专注于他们想从数据中获得多少价值以及他们当前工具集和技术专长部署的便利性。通过其部署选项、功能、灵活性和互操作性,InfluxDB使组织能够最大化其时间序列数据的价值。虽然ADX是专注于微软生态系统的组织的可行选项,但InfluxDB可以与同一微软服务以及其他许多微软之外的服务集成,这可能会使InfluxDB作为一个未来证明的解决方案具有优势。