区块链数据剖析必备东西BlockETL

BlockETL软件包用于比特币区块链数据分析中的数据抽取/转化/加载(ETL),能够从原始的比特币区块文件中抽取区块与生意数据并加载入通用SQL数据库,以便于后续的数据分析处理,很适宜区块链数据分析相关的结业规划或课题研讨项目。BlockETL官方下载地址:http://sc.hubwiz.com/codebag/blocketl-java/。

1、软件包概述

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

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

BlockETL软件包选用Java开发,支撑Windows、OSX和Linux等多种操作体系,其时版别1.0.0,首要类/接口及联络如下图所示:

区块链数据剖析必备东西BlockETL
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为例说明运用的进程:

  • 设备mysql服务器,参看文档:Install and Upgrading MySQL。
  • 设备jdk 8,参看文档:JDK 8 Installation
  • 设备gradle 6,参看文档:Gradle Installation。

2.1 初始化数据库/表结构

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

mysql -u root -p < ddl.sql

上述指令会要求交互输入root用户的暗码,也能够正常的运用其他有满意权限的用户名/暗码。成功实行后,上述指令将创建数据库bitcoin_analysis和基础数据表:

区块链数据剖析必备东西BlockETL

  • 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指令发起演示运用,能够正常的看到屏幕输出的数据加载发展:

区块链数据剖析必备东西BlockETL

软件包的demo运用除了在屏幕输出日志,也会记录到其时目录下的app.log文件中,可通过此文件排查缺点。

要长时间无人值守工作,能够正常的运用gradle distZip打包后再实行编译好的程序。

2.4 数据分析

一旦结束区块链数据的抽取并加载到SQL数据库中,就能够直接进行数据分析了。

为了更好的前进数据加载速度,在之前的ddl.sql中没有定义数据表的索引,因此在进行数据分析之前,首要要运用index.sql来建立数据表索引以加速核算查询的实行。进入sql目录实行如下指令结束索引构建,根据要求输入暗码:

mysql -u root -p < index.sql

索引建立之后,就可通过SQL进行数据分析了。预置的stats.sql供应了几个底子的分析,可当作参看。

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