你知道如何从HIVE链上获取数据嘛?直接访问各个DAPP(比如hive.blog, peakd.com等)无疑是个办法,或者访问区块链浏览器获取一些更底层的数据,又或者我们可以通过API直接从hived节点获取数据。

(图源 :pixabay)
但当我们想获取一些更为复杂的数据时,以上方法都显得无能为力,比如说统计中文区失联(长时间没有发帖)用户的情况,或者查询HP代理(代理进来),等等等。
这时候就要用到一些比较复杂的工具了,比如说HIVESQL(由@arcange 维护的SQL Server database),长久以来我都在通过LINQPad,访问HiveSQL来获取和分析一些我想要的数据,带给我极大的便利。
对了,好多年前@furion 还提供过 MongoDB来访问区块链数据,但是还简单地学习和了解一下 MongoDB的使用——但那已经是上古时期的事情了。
HAF以及HafSQL
其实,访问HIVE底层数据还有一个选择,那就是使用Hive 应用框架(HAF,Hive Application Framework),简单来讲就是在HIVED和Hive应用(DAPP)之间的一个中间层——它自动地将HIVE区块链上的数据推送至PostgreSQL数据库,方便应用的查询和使用,无比强大!
现在我们在用的很多HIVE杀手级DAPP都是基于HAF构建——所以这些DAPP功能也十分强大,用起来也无比顺滑。
但是对于个人用户,又或者是轻量级DAPP构建者来讲,自己去搭建HAF,很是耗费精力不说,还要耗费大量的金钱(需要大内存+大存储容量的服务器),当然了——还不一定搞得定!
所幸,大佬 @mahdiyari 提供了公共的HAF database,让我们可以零成本迅速地开始使用HAF,详情可以参考:
前边说过,我一直使用LINQPad访问HiveSQL,那么LINQPad是否可以访问PostgreSQL数据库呢?以便于我直接使用@mahdiyari 的公共数据库。
我尝试里两种方式,这里分享给大家。
LINQPad添加HafSQL连接:失败的尝试
第一种方式,安装驱动(以失败告终)。
打开LINQPad添加连接的选项,会出现如下界面:

点击下边的查看更多驱动

选择安装第一个

貌似安装成功了

但是使用不了

简单了解了一下,据说是linq2db.LINQPad 最后支持的是 LINQPad 6 / .NET Core 3.1,我用的是LINQPad 7,这就尴尬了。
LINQPad添加HafSQL连接:第二种方法
我就纳闷,LINQPad这么好用的工具怎么能不带PostgreSQL 连接驱动呢?事实上我冤枉它了,它还真带PostgreSQL支持,只是我一时没有找到。
经过我一番探索,总算找到了相应的操作方法,可以直接在LINQPad中连上PostgreSQL数据库啦。
打开LINQPad添加连接的选项,选择Entity Framework Core(实体框架 Core)

咦,原来可以在这里进行各种配置呀

填入@mahdiyari 提供了公共的HAF database的相应配置

之后就可以愉快地使用公共的HAF database进行各种查询啦。
查询示例
测试一下查询最新十个被创建的账户
SELECT *
FROM accounts
ORDER BY created_at DESC
LIMIT 10;
我们会得到类似如下数据(不完全截图):

更多细节以及更多使用方法正在慢慢探索中。
再次感谢大佬@mahdiyari 提供了公共的HAF数据库,大家还没给相应提案投票的,可以考虑去投票支持一下(Public HAF database & HafSQL maintenance #359)提案。
另外大家也可以考虑去投票支持一下@arcange的HiveSQL Proposal - Keep It Free To Use For The Community #329)提案,这个提案一直没通过阈值,我觉得还是挺遗憾的。
(HIVE中文社区已经将治理票投票权代理给我的小伙伴可以不用操作,我早已投票支持了两位大佬的相关提案哦)
相关链接
- https://mahdiyari.gitlab.io/hafsql/
- https://gitlab.syncad.com/hive/haf
- https://gitlab.syncad.com/hive/hafsql
- https://hafsql-api.mahdiyari.info
- https://hive.blog/hive-139531/@mahdiyari/proposal-public-haf-database-and-hafsql-maintenance
- https://hivesql.io/
- HiveSQL Proposal - Keep It Free To Use For The Community
感谢O哥的分享,让我们每天进步亿点点。
哈哈,一点点就行
👍🏻👍🏻O哥懂得真多
哈哈,我是菜鸟
正是因为不懂才努力学习
O哥厉害👍,谢谢O哥分享😍。
不管我能不能看懂,只要是《每天进步一点点》的帖子,我每次都会认真看两遍,哈哈,主打一个熏陶😄
哈哈,我就是边学边记
相当于错题本
我又来看我的知识盲区了,每天看每天学🙈🙈
一起学习进步
专业的方法,专业的O哥,不懂就是觉得厉害,谢谢O哥分享
HIVE搞技术的我最菜啦
学废了~(¯▽¯~)~
O 哥厉害(¯▽¯)👍
我是一枚小小菜鸟
除了菜什么都没有