区块链数据分析必备工具BlockETL

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: BlockETL软件包用于比特币区块链数据分析中的数据抽取/转换/加载(ETL),可以从原始的比特币区块文件中抽取区块与交易数据并加载入通用SQL数据库,以便于后续的数据分析处理,非常适合区块链数据分析相关的毕业设计或课题研究项目。

BlockETL软件包用于比特币区块链数据分析中的数据抽取/转换/加载(ETL),可以从原始的比特币区块文件中抽取区块与交易数据并加载入通用SQL数据库,以便于后续的数据分析处理,非常适合区块链数据分析相关的毕业设计或课题研究项目。BlockETL官方下载地址:http://sc.hubwiz.com/codebag/blocketl-java/

1、软件包概述

BlockETL软件包的主要特性如下:

  • 直接读取原始区块文件,抽取速度快
  • 将原始区块和交易数据加载至SQL数据库,便于后续的区块链数据分析
  • 支持多流水线并行处理,可自己控制并发流水线数量
  • 结构设计清晰,代码便于扩展

BlockETL软件包采用Java开发,支持Windows、OSX和Linux等多种操作系统,当前版本1.0.0,主要类/接口及关系如下图所示:

在这里插入图片描述
BlockETL软件包的目录组织及主要代码文件清单如下:

代码文件 说明
build.gradle Gradle根项目构建文件
settings.gradle Gradle根项目配置文件
blocketl/ blocketl库代码目录
blocketl/build.gradle blocket库gradle构建文件
blocketl/src/main/java/blocketl/IPipe.java ETL流水线管道接口定义
blocketl/src/main/java/blocketl/Pipeline.java ETL流水线模型类
blocketl/src/main/java/blocketl/Kit.java ETL流水线并发管理类
blocketl/src/main/java/blocketl/btc/FileExtractor.java Bitcoin区块文件抽取管道实现类
blocketl/src/main/java/blocketl/btc/DummyTransformer.java Bitoin区块及交易数据转换实现类
blocketl/src/main/java/blocketl/btc/SqlLoader.java SQL数据库加载类
sql/ SQL脚本目录
sql/ddl.sql 数据库及表结构定义SQL脚本
sql/index.sql 数据表索引构建SQL脚本
sql/stats.sql 分析统计演示SQL脚本
demo/ blocketl库使用演示代码目录
demo/build.gradle 演示应用gradle构建文件
demo/src/App.java 演示应用主文件
demo/src/log4j.properties log4j日志配置文件

2、软件包使用方法

在开始使用软件包之前,请先安装好gradle 6、jdk 8和所选择的SQL数据库。下面以MySQL为例说明使用过程:

2.1 初始化数据库/表结构

进入软件包的sql目录,使用ddl.sql脚本创建数据库和基础表结构:

mysql -u root -p < ddl.sql

上述命令会要求交互输入root用户的密码,也可以使用其他有足够权限的用户名/密码。成功执行后,上述命令将创建数据库bitcoin_analysis和基础数据表:

在这里插入图片描述

  • blocks:比特币区块头数据表
  • transactions:比特币交易头数据表
  • tx_inputs:比特币交易输入数据表
  • tx_output:比特币交易输出数据表

2.2 抽取流程配置

首先根据自己的基础环境配置,修改demo/src/App.java文件中的区块目录和数据库连接信息并保存:

String dataDir = "…";                               //区块数据文件目录
String dbUrl = "jdbc:…. ";               //SQL数据库连接URL  
String dbUser = "…",                     //SQL数据库用户名
String dbPassword = "…";                 //SQL数据库密码
String network = "mainnet";              //主网:mainnet,测试网:testnet

2.3 数据抽取与加载

进入软件包的demo目录,使用gradle rungradle.bat run命令启动演示应用,可以看到屏幕输出的数据加载进度:

在这里插入图片描述

软件包的demo应用除了在屏幕输出日志,也会记录到当前目录下的app.log文件中,可以利用此文件排查故障。

要长时间无人值守运行,可以使用gradle distZip打包后再执行编译好的程序。

2.4 数据分析

一旦完成区块链数据的抽取并加载到SQL数据库中,就可以进行数据分析了。

为了提高数据加载速度,在之前的ddl.sql中没有定义数据表的索引,因此在进行数据分析之前,首先要使用index.sql来建立数据表索引以加速统计查询的执行。进入sql目录执行如下命令完成索引构建,根据要求输入密码:

mysql -u root -p < index.sql

索引建立之后,就可以利用SQL进行数据分析了。预置的stats.sql提供了几个基本的分析,可以作为参考。

官方下载地址:BlockETL - 汇智网

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
33 2
|
12天前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
19 2
|
5月前
|
文字识别 算法 数据挖掘
视觉智能开放平台产品使用合集之对于统计研究和数据分析,有哪些比较好的工具推荐
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
Python数据分析工具有哪些
【7月更文挑战第3天】Python数据分析工具有哪些
166 58
|
3月前
|
SQL 数据挖掘 关系型数据库
|
4月前
|
人工智能 数据挖掘 Python
提升办公生产力工具——AI数据分析应用小浣熊
办公小浣熊广泛应用于日常数据分析、财务分析、商业分析、销售预测、市场分析等多个领域,为用户提供了强大的支持。
提升办公生产力工具——AI数据分析应用小浣熊
|
4月前
|
数据挖掘 大数据 Linux
探索Linux中的snice命令:一个虚构但启发性的数据分析工具
`snice`是一个想象中的Linux命令,用于低优先级地从大数据集中抽样数据。它结合`nice`和`sampling`,支持多种抽样策略,如随机和分层。参数包括指定样本数、策略、输入输出文件和进程优先级。示例:`snice -n 1000 -s random -i large_log.txt -o sample_log.txt`。使用时注意资源管理、数据完整性及权限,并与其它工具结合使用。虽然虚构,但体现了Linux工具在数据分析中的潜力。
|
4月前
|
数据可视化 数据挖掘 API
数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。
【7月更文挑战第5天】数据可视化秘籍聚焦Python的Matplotlib和Seaborn库,它们是数据分析的得力工具。Matplotlib是基础库,提供高度自定义的2D图表,而Seaborn在其上构建,提供美观的统计图形。文章介绍了如何用两者画线图、散点图、条形图、饼图和直方图,展示数据趋势和关系。
45 1
|
5月前
|
数据可视化 数据挖掘 知识图谱
精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手
这里有15款免费工具推荐:NetworkX(Python基础),Graph-tool(C++速度),Graphviz(可视化库),ipycytoscape(Jupyter集成),ipydagred3,ipySigma(NetworkX + Web),Netwulf(交互式),nxviz(Matplotlib绑定),Py3plex(复杂网络分析),Py4cytoscape(Python+Cytoscape),pydot(Graphviz接口),PyGraphistry(GPU加速),python-igraph,pyvis(交互式图形),SNAP(大规模网络分析)。绘制和理解网络图从未如此简单!
326 0
|
6月前
|
数据可视化 数据挖掘 关系型数据库
数据分析工具有哪些?
【5月更文挑战第19天】数据分析工具有哪些?
130 7