cover

比特币数据分析ETL工具

汇智网 / hubwiz.com

用于比特币区块链数据分析的ETL工具,可以抽取比特币区块文件中的区块/交易信息并加载到SQL数据库

1、软件包概述

BlockETL软件包用于比特币区块链数据分析中的数据抽取、转换和加载。 主要特性如下:

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

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

BlockETL uml

BlockETL软件包的目录组织及主要代码文件清单如下:

代码文件说明
build.gradleGradle根项目构建文件
settings.gradleGradle根项目配置文件
blocketl/blocketl库代码目录
blocketl/build.gradleblocket库gradle构建文件
blocketl/src/main/java/blocketl/IPipe.javaETL流水线管道接口定义
blocketl/src/main/java/blocketl/Pipeline.javaETL流水线模型类
blocketl/src/main/java/blocketl/Kit.javaETL流水线并发管理类
blocketl/src/main/java/blocketl/btc/FileExtractor.javaBitcoin区块文件抽取管道实现类
blocketl/src/main/java/blocketl/btc/DummyTransformer.javaBitoin区块及交易数据转换实现类
blocketl/src/main/java/blocketl/btc/SqlLoader.javaSQL数据库加载类
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.propertieslog4j日志配置文件

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提供了几个 基本的分析,可以作为参考。

声 明

本站所提供软件包仅用于学习和研究,请依法合规使用。

本站所提供软件包均提供完整源码,使用前请认真阅读源代码和文档以确保充分理解软件包的设计与功能实现,本站不承担 因不当使用本站所提供软件包而造成的任何法律风险或财产损失责任。

¥2500.00
查看授权信息
  • 付费成功自动开通下载
  • 三个月内代码免费升级
  • 专业人员在线技术支持
  • 支持按需定制(另付费)
下载代码包
版本发布日期地址
1.0.0 2019-11-28
下载最新版
QQ咨询
2860991437
9+