由鑫链财经小编分享(xinchaincaijing.com),尽管以太坊ETL存在缺陷,但它已经为导出以太坊区块链历史的新解决方案建立了有效的基础。通BigQuery是将以太坊出口到S3的一个有利选择,因为它可以帮助填充最初的S3桶。该解决方案首先将BigQuery表以gzipped Parquet格式导出到Google云存储中。随后,可以使用“gsutil rsync”将BigQuery表复制到S3。将BigQuery数据集卸载到S3的最后一步是确保表数据适合在Athena中查询。以下是对这些步骤的更详细的描述。
步骤一:在BigQuery中识别以太坊数据集
可以从谷歌云平台开始,在那里可以打开BigQuery控制台。找到数据集搜索字段并输入诸如“bigquery-public-data”或“crypto-ethereum”之类的输入。现在,可以选择“将搜索范围扩大到全部”选项。请记住,必须向GCP支付一定的费用才能发现公共数据集。因此,在继续之前,必须找到账单明细。
步骤二:将BigQuery表导出到Google云存储
可以选择右上角可见的“导出”选项来导出整个表格。单击“导出到GCS”选项。还需要注意的是,可以导出特定查询的结果,而不是整个表。每个查询都会创建一个新的临时表,该表在“个人历史”选项卡的“职务详细信息”部分中可见。执行后,必须从作业详细信息中选择一个临时表名,以便以常规表的形式将其导出。通过这样的实践,可以从大量的表中排除冗余数据。还需要注意检查查询设置中的“允许大结果”选项。
选择将完整以太坊历史导出到S3存储桶的GCS位置之后可以创建具有默认设置的新存储桶,在将数据转储到S3后,就把存储桶删掉。最重要的是,需要确保GCS配置中的区域与S3存储桶中的区域相同。它有助于确保最佳的转移成本和出口过程的速度。此外,使用组合“Export format=Parquet。Compression=GZIP”以获得最佳压缩比,确保更快的数据从GCS传输到S3。。
步骤三:把数据卸载到S3
完成BigQuery导出后可以使用易于使用的CLI实用程序“gsutil”来执行导出过程。以下是设置CLI实用程序的步骤:
1、在最终确定实例大小时,开发一个EC2实例并考虑EC2网络中的吞吐量限制。
2、使用官方说明安装“gsutil”实用程序。
3、通过运行命令“gsutil init”配置GCS凭据。
4、通过为“aws_secret_access_key”和“aws_access_key_id”设置适当的值,将AWS凭证输入到“~/.boto”配置文件中。对于AWS,可以使用S3列表存储桶和分段上传权限找到所需的结果。最重要的是,可以使用个人AWS密钥来确保简单性。
5、开发S3存储桶,并将其设置在配置GCS存储桶的同一区域。
6、使用“gsutil rsync–m.-m”来复制文件有助于在多线程模式下并行执行传输作业。
要将完整的以太坊历史转储到S3,可以依靠一个“m5a.xlarge”EC2实例进行数据传输。然而,EC2对带宽有特定的限制,不能处理突发的网络吞吐量。因此,可能必须使用AWS数据同步服务,不过,它也依赖于EC2虚拟机。因此,可以在这个EC2实例中找到与“gsutil rsync”命令相似的性能。如果使用更大的实例,那么可以期待一些可行的性能改进。
步骤四:确保数据适合使用Athena进行SQL查询
将以太坊区块链数据库导出到S3的过程不会随着从GCS的转移而结束。还需要确保可以使用AWS SQL引擎(即Athena)查询S3存储桶中的数据。在这一步中,必须通过使用Athena在S3的数据上修复一个SQL引擎。
首先,需要开发一个非分区表,因为导出的数据在S3上没有任何分区。确保未分区表指向导出数据。因为AWS Athena不能同时处理超过100个分区,这意味着日常分区是一个劳动密集型的过程。因此,每月分区是一个可靠的解决方案,可以通过一个简单的查询来实现。就Athena而言,必须为扫描的数据量付费。随后,可以对导出数据运行SQL查询。
步骤五:从以太坊节点导出数据
将以太坊区块链历史导出到S3的另一种方法是直接从以太坊节点获取数据。在这种情况下,可以像从以太坊节点获取数据一样获取数据,从而提供了超越以太坊ETL的显著优势。在此之上,可以存储以太坊区块链数据在原材料和使用它没有任何限制。
原始格式的数据也可以帮助模仿以太坊节点的离线响应。另一方面,注意到这种方法将花费大量时间也是很重要的。例如,以批处理请求为特征的多线程模式中的这种方法可能需要长达10天。此外,由于Airflow,还应该遇到间接费用的挫折。
总结
以太坊ETL作为将以太坊区块链数据导出到S3的本地方法,尽管在数据转换方面存在问题。同时,直接从以太坊节点获取数据会增加成本和时间负担。因此,将以太坊导出到S3的平衡方法将利用BigQuery公共数据集。可以通过谷歌云平台上的BigQuery控制台检索以太坊区块链数据,并发送到谷歌云存储。从那里可以将数据导出到S3存储桶,然后为SQL查询准备导出数据。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。