BCW Group的基于Rust的开源ETL框架,用于在BigQuery上处理区块链数据

BCW Group的基于Rust的开源ETL框架,用于在BigQuery上处理区块链数据

BCW Technologies 如何为谷歌 BigQuery PDP 中作为 Web3 标准的开源模块化 Rust ETL 框架贡献力量

作为谷歌 BigQuery PDP 中作为 Web3 标准的开源模块化 Rust ETL 框架的贡献者, BCW Technologies (BCWT) 在构建区块链 ETL 结构和公共数据集方面具有宝贵的经验。

区块链提取-转换-加载 (ETL) 是一个将来自节点的数据整合到一个单一且一致的数据管道中的过程,该管道可以配置用于广泛的用途和使用案例。在 BCWT 对 谷歌 BigQuery PDP 的工作背景下,区块链 ETL 程序致力于通过开源框架开发数据检索模块,使选定区块链网络的数据通过下游数据服务向公众开放,促进研究和测试的访问。

区块链网络在 以太坊虚拟机 (EVM) 影响力的内部和外部产生了大量数据。例如,当前公共的 Solana 数据集包含了将近一拍字节的庞大历史数据。鉴于Solana 数据集的不断增长的体量和增加的速度,多数公司在高效管理历史数据和实时数据流方面都会感到困难。

在如此高的数据生成量的情况下,将这些数据转换成任何用户(包括企业)能够消化和利用的格式,以便用于其使命关键的应用开发,面临一系列挑战。正如接下来将展示的,BCWT 通过经验和创新的数据管理方法克服了重塑数据流的技术挑战。

BCWT ETL 程序

凭借在构建 EVM 和非 EVM 网络 ETL 方面的丰富经验,BCWT 在该领域中脱颖而出。BCWT 的其中一个不同之处在于根据 ETL 範式提供各个组件,并生产用于获取、过滤和将网络数据传递到任何数据源的整体基础架构/框架。此外,作为 谷歌云顶级服务合作伙伴,我们与区块链网络基础和谷歌云合作,构建用于 BigQuery 的索引器和数据插入例程,以及可用的谷歌区块链公共数据集。

我们的提取和转换逻辑使用 Rust 编写,这与主要区块链网络如 Solana 和 Near 使用的语言相同,目前支持两个网络——Solana 和 Aptos。利用 Rust 确保了速度、韧性和安全性。它也被部署在无状态的 Docker 容器中,以便在Kubernetes中使用,并支持网络活动的自动扩展。

Rust 驱动 Aptos。Rust 驱动 Solana。因此,通过 Rust 访问这些链是行业的自然选择。在实际操作中,这意味能够直接导入 Solana 的官方区块结构,以确保准确的 API 反序列化。同样,Aptos 的官方代码提供了一个函数,可以调用其 gRPC API 请求一系列交易。这些实用程序确保了正确的 API 使用,而 Rust 的类型安全性进一步帮助确保准确的数据转换。

我们如何导入 Aptos 的 gRPC API 调用代码

我们如何使用 Aptos 的 gRPC API 调用代码

我们如何使用 Solana 的官方区块结构 (UiConfirmedBlock) 从请求的区块中获取交易数据

来自 BCWT 的 ETL 工作流程可视化

我们完全使用谷歌云提供的云基础设施。我们使用 Pub/Sub 作为可扩展的索引队列,并使用 Dataflow 作为可扩展的数据加载器,将数据加载到 BigQuery 中。Pub/Sub 的构建旨在通过负载分配、消息缓冲和将系统中的组件解耦合,以便它们能够异步和独立地进行通信,从而提高可伸缩性。这在让我们摄取流入 BigQuery 和其他目标的分析事件方面起到了关键作用。

作为一种完全托管的无服务器数据处理服务,Dataflow 提供了统一的流数据处理,规模可控,当与 Pub/Sub 结合使用时,非常适合 ETL 工作流程。虽然 Dataflow 支持批量处理,但 BCWT 选择了其数据流处理能力。

BCWT 的客户和合作伙伴继续受益于我们高性能的 ETL 方法,能够实时交付数据。在一个具体案例中,区块链网络的 Mainnet 数据通常在区块链网络确认后的 5 秒内在 BigQuery 中可查询,这取决于网络活动。

此外,BCWT 每天与谷歌云 Composer(Apache Airflow 的托管实例)进行质量控制检查。此方法带来了两个关键好处,首先是冗余,以便在数据管道中的任何地方发生故障时进行有针对性的补充。另一个是去重,通过消除多余的数据重复,提高存储效率。

BCWT 使用的流程以及对客户和合作伙伴的好处可以通过 区块链 ETL 的 GitHub 组织 中的开源代码库看到。在这里,任何账户都可以查看、审计、提出更改,并根据宽松的 MIT 许可证使用代码。

在区块链 ETL 的 GitHub 仓库中,BCWT 已贡献了再现这些公共 Aptos 和 Solana 数据集所需的所有代码和基础设施脚本。这些社区贡献包括用于索引器的 Dockerfiles 和托管 Docker 映像,以及 Terraform 脚本,以在任何用户的谷歌云项目中部署云服务,包括区块链节点。在 Aptos 的案例中,还有可用于每日质量控制检查的 Cloud Composer 脚本。最后,BCWT 已贡献了所有用于 ETL-Rust 仓库的代码,包含构建另一个 Rust 基础的 ETL 的框架。

用于部署管道(包括从节点到数据集的所有内容)的基础设施作为代码可以在 这里找到,适用于 Aptos,以及 这里,适用于 Solana,在其各自的 GitHub 仓库中。要了解有关在 Aptos 上进行数据分析的更多信息,请查看 这篇文章。

我们的服务质量可以通过请求提供的参考资料得到证明。如需更多信息,请联系我们:https://bcw.group/contact/。

原文链接: medium.com/bcw-group/the...

登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关推荐