现代区块链索引初创公司可能面临几个挑战,包括:
在本文中,我们分阶段回顾了Footprint Analytics技术架构的演变,并以此为例,探讨了Iceberg-Trino技术堆栈如何应对链上数据的挑战。
Footprint Analytics已经将大约22个公链数据、17个NFT市场、1900个GameFi项目和超过10万个NFT集合索引到语义抽象数据层中。它是世界上最全面的区块链数据仓库解决方案。
区块链数据包括超过200亿行的金融交易记录,经常被数据分析师查询。
为满足不断增长的业务需求,在过去的几个月中,我们进行了3次重大升级,包括:
在Footprint Analytics最初,我们使用谷歌Bigquery作为我们的存储和查询引擎。Bigquery是一个很棒的产品,它速度极快,易于使用,并提供动态算术能力和灵活的UDF语法,能够帮助我们快速完成工作。
然而,Bigquery也存在一些问题。
我们对一些非常流行的OLAP(联机分析处理)产品感兴趣,OLAP最吸引人的优势是它的查询响应时间,通常能在亚秒内返回大量数据的查询结果,并且还支持数千个同时查询。
我们选择了最好的OLAP数据库之一Doris。这个引擎表现不错,但我们很快遇到了一些其他问题:
然而,我们无法用Doris替代Bigquery,因此需要定期将数据从Bigquery同步到Doris,仅将Doris作为查询引擎。这个同步过程存在许多问题,其中之一是当OLAP引擎忙于向前端客户端提供查询时,写入数据会迅速堆积起来。随后,写入过程的速度受到影响,同步会花费更长的时间,有时甚至无法完成。
我们意识到,OLAP可以解决我们面临的几个问题,但无法成为Footprint Analytics的一站式解决方案,特别是对于数据处理管道而言。我们的问题更大更复杂,可以说,OLAP仅仅作为一个查询引擎对我们来说还不够。
欢迎来到Footprint Analytics架构3.0,这是对底层架构的全面重构。我们从头开始重新设计了整个架构,将数据的存储、计算和查询分成三个不同的部分,从Footprint Analytics早期的两个架构中吸取教训,并从其他成功的大数据项目如Uber、Netflix和Databricks中学习经验。
我们首先将注意力转向了数据湖,这是一种用于结构化和非结构化数据的新型数据存储方式。数据湖非常适合链上数据的存储,因为链上数据的格式范围广泛,包括非结构化原始数据和Footprint Analytics所著名的结构化抽象数据。我们期望用数据湖来解决数据存储问题,理想情况下,它还将支持Spark和Flink等主流计算引擎,这样,随着Footprint Analytics的发展,在与不同类型的处理引擎集成就不会出现额外问题。
Iceberg与Spark、Flink、Trino和其他计算引擎可以非常好地集成到一起,我们可以为每个指标选择最合适的计算方式。例如:
Iceberg解决了存储和计算问题,接下来,我们将需要考虑如何选择查询引擎。可用的选项并不多,我们考虑的替代方案包括:
定好方向之后,我们就对Trino+Iceberg组合进行了性能测试,看看它是否能满足我们的需求。出乎意料的是,它的查询速度非常快。
我们知道多年来,Presto+Hive一直是OLAP领域中性能最差的对手,但Trino+Iceberg组合完全颠覆了我们的认知。
我们的测试结果如下。
示例1:连接大型数据集
将一个800 GB的表1与另一个50 GB的表2连接,并进行复杂的业务计算。
示例2:大表单执行不重复查询
测试用的sql:从表中按日期分组选择不同的地址
Trino+Iceberg组合在相同配置下比Doris快约3倍。
此外,Iceberg可以使用Parquet、ORC等数据格式,这些格式会对数据进行压缩存储。Iceberg的表存储占用的空间仅为其他数据仓库的1/5左右,三个数据库中相同表的存储大小如下:
注:以上测试是我们在实际生产中遇到的个别示例,仅供参考。
性能测试报告为我们提供了足够的性能,以至于我们的团队花了大约2个月的时间才完成迁移。以下是我们升级后的架构图。
自2021年8月推出以来,Footprint Analytics团队在不到一年半的时间内完成了三次架构升级,这要归功于团队为加密货币用户带来最佳数据库技术优势的渴望和决心,以及在实施和升级底层基础设施和架构方面的出色表现。
Footprint Analytics架构3.0升级为用户带来了全新的体验,让具有不同背景的用户能够深入了解更多样化的用途和使用场景:
现代区块链索引初创公司可能面临几个挑战,包括:
在本文中,我们分阶段回顾了Footprint Analytics技术架构的演变,并以此为例,探讨了Iceberg-Trino技术堆栈如何应对链上数据的挑战。
Footprint Analytics已经将大约22个公链数据、17个NFT市场、1900个GameFi项目和超过10万个NFT集合索引到语义抽象数据层中。它是世界上最全面的区块链数据仓库解决方案。
区块链数据包括超过200亿行的金融交易记录,经常被数据分析师查询。
为满足不断增长的业务需求,在过去的几个月中,我们进行了3次重大升级,包括:
在Footprint Analytics最初,我们使用谷歌Bigquery作为我们的存储和查询引擎。Bigquery是一个很棒的产品,它速度极快,易于使用,并提供动态算术能力和灵活的UDF语法,能够帮助我们快速完成工作。
然而,Bigquery也存在一些问题。
我们对一些非常流行的OLAP(联机分析处理)产品感兴趣,OLAP最吸引人的优势是它的查询响应时间,通常能在亚秒内返回大量数据的查询结果,并且还支持数千个同时查询。
我们选择了最好的OLAP数据库之一Doris。这个引擎表现不错,但我们很快遇到了一些其他问题:
然而,我们无法用Doris替代Bigquery,因此需要定期将数据从Bigquery同步到Doris,仅将Doris作为查询引擎。这个同步过程存在许多问题,其中之一是当OLAP引擎忙于向前端客户端提供查询时,写入数据会迅速堆积起来。随后,写入过程的速度受到影响,同步会花费更长的时间,有时甚至无法完成。
我们意识到,OLAP可以解决我们面临的几个问题,但无法成为Footprint Analytics的一站式解决方案,特别是对于数据处理管道而言。我们的问题更大更复杂,可以说,OLAP仅仅作为一个查询引擎对我们来说还不够。
欢迎来到Footprint Analytics架构3.0,这是对底层架构的全面重构。我们从头开始重新设计了整个架构,将数据的存储、计算和查询分成三个不同的部分,从Footprint Analytics早期的两个架构中吸取教训,并从其他成功的大数据项目如Uber、Netflix和Databricks中学习经验。
我们首先将注意力转向了数据湖,这是一种用于结构化和非结构化数据的新型数据存储方式。数据湖非常适合链上数据的存储,因为链上数据的格式范围广泛,包括非结构化原始数据和Footprint Analytics所著名的结构化抽象数据。我们期望用数据湖来解决数据存储问题,理想情况下,它还将支持Spark和Flink等主流计算引擎,这样,随着Footprint Analytics的发展,在与不同类型的处理引擎集成就不会出现额外问题。
Iceberg与Spark、Flink、Trino和其他计算引擎可以非常好地集成到一起,我们可以为每个指标选择最合适的计算方式。例如:
Iceberg解决了存储和计算问题,接下来,我们将需要考虑如何选择查询引擎。可用的选项并不多,我们考虑的替代方案包括:
定好方向之后,我们就对Trino+Iceberg组合进行了性能测试,看看它是否能满足我们的需求。出乎意料的是,它的查询速度非常快。
我们知道多年来,Presto+Hive一直是OLAP领域中性能最差的对手,但Trino+Iceberg组合完全颠覆了我们的认知。
我们的测试结果如下。
示例1:连接大型数据集
将一个800 GB的表1与另一个50 GB的表2连接,并进行复杂的业务计算。
示例2:大表单执行不重复查询
测试用的sql:从表中按日期分组选择不同的地址
Trino+Iceberg组合在相同配置下比Doris快约3倍。
此外,Iceberg可以使用Parquet、ORC等数据格式,这些格式会对数据进行压缩存储。Iceberg的表存储占用的空间仅为其他数据仓库的1/5左右,三个数据库中相同表的存储大小如下:
注:以上测试是我们在实际生产中遇到的个别示例,仅供参考。
性能测试报告为我们提供了足够的性能,以至于我们的团队花了大约2个月的时间才完成迁移。以下是我们升级后的架构图。
自2021年8月推出以来,Footprint Analytics团队在不到一年半的时间内完成了三次架构升级,这要归功于团队为加密货币用户带来最佳数据库技术优势的渴望和决心,以及在实施和升级底层基础设施和架构方面的出色表现。
Footprint Analytics架构3.0升级为用户带来了全新的体验,让具有不同背景的用户能够深入了解更多样化的用途和使用场景: