每天进步一点点:如何在LINQPad中使用HafSQL
你知道如何从HIVE链上获取数据嘛?直接访问各个DAPP(比如hive.blog, peakd.com等)无疑是个办法,或者访问区块链浏览器获取一些更底层的数据,又或者我们可以通过API直接从hived节点获取数据。
(图源 :pixabay)
但当我们想获取一些更为复杂的数据时,以上方法都显得无能为力,比如说统计中文区失联(长时间没有发帖)用户的情况,或者查询HP代理(代理进来),等等等。
这时候就要用到一些比较复杂的工具了,比如说HIVESQL(由 维护的SQL Server database),长久以来我都在通过LINQPad,访问HiveSQL来获取和分析一些我想要的数据,带给我极大的便利。
对了,好多年前 还提供过 MongoDB来访问区块链数据,但是还简单地学习和了解一下 MongoDB的使用——但那已经是上古时期的事情了。
HAF以及HafSQL
其实,访问HIVE底层数据还有一个选择,那就是使用Hive 应用框架(HAF,Hive Application Framework),简单来讲就是在HIVED和Hive应用(DAPP)之间的一个中间层——它自动地将HIVE区块链上的数据推送至PostgreSQL数据库,方便应用的查询和使用,无比强大!
现在我们在用的很多HIVE杀手级DAPP都是基于HAF构建——所以这些DAPP功能也十分强大,用起来也无比顺滑。
但是对于个人用户,又或者是轻量级DAPP构建者来讲,自己去搭建HAF,很是耗费精力不说,还要耗费大量的金钱(需要大内存+大存储容量的服务器),当然了——还不一定搞得定!
所幸,大佬 提供了公共的HAF database,让我们可以零成本迅速地开始使用HAF,详情可以参考:
前边说过,我一直使用LINQPad访问HiveSQL,那么LINQPad是否可以访问PostgreSQL数据库呢?以便于我直接使用 的公共数据库。
我尝试里两种方式,这里分享给大家。
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)
咦,原来可以在这里进行各种配置呀
之后就可以愉快地使用公共的HAF database进行各种查询啦。
查询示例
测试一下查询最新十个被创建的账户
SELECT *
FROM accounts
ORDER BY created_at DESC
LIMIT 10;
我们会得到类似如下数据(不完全截图):
更多细节以及更多使用方法正在慢慢探索中。
再次感谢大佬 提供了公共的HAF数据库,大家还没给相应提案投票的,可以考虑去投票支持一下(Public HAF database & HafSQL maintenance #359)提案。
另外大家也可以考虑去投票支持一下的HiveSQL Proposal - Keep It Free To Use For The Community #329)提案,这个提案一直没通过阈值,我觉得还是挺遗憾的。
(HIVE中文社区已经将治理票投票权代理给我的小伙伴可以不用操作,我早已投票支持了两位大佬的相关提案哦)
相关链接
Leave 每天进步一点点:如何在LINQPad中使用HafSQL to:
Read more #cn posts
Best Posts From oflyhigh
We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.