在之前的帖子中,我给大家介绍了HIVE的分布式黑名单,大家可以通过hive.blog网站的对应页面中,管理自己的黑名单。
(图源 :pixabay)
那么问题来了,怎么知道我被哪些用户加入了黑名单呢?单纯地从链上来看,除非我从黑名单机制上线之初就监控和黑名单相关custom json操作,否则看起来是一项不可能完成的任务。
不过好在有HiveSQL这个强大的数据库,它帮我们监控了黑名单的变化,并将结果记录到数据表中,所以,我们只需查询对应的数据表就可以啦。
在HiveSQL中,黑名单信息保存在数据表Blacklists中,其中有两个字段,分别是Blacklister(黑名单维护者)以及Blacklisted(被加入黑名单的用户)。
我们先测试取20条数据来看看这个数据表的大致模样,对应SQL语句如下:
SELECT TOP 20 * from Blacklists;
返回结果如下,这就是Blacklists数据表中数据的样子啦:
好,现在我们可以查询某用户或者自己是否在黑名单中,SQL语句如下:
SELECT * from Blacklists where blacklisted='userid';
其中userid换成你要查询的用户ID,比如说oflyhigh,还好,我查了一下,我没在任何黑名单。
不过貌似'spaminator被一些用户加入了黑名单,我们来测试一下:
SELECT * from Blacklists where blacklisted='spaminator';
这个结果,好惨:
写道这里,我们突然想知道,被加黑名单最多的用户有哪些?以及被黑多少次?
SQL语句如下:
SELECT TOP 10 Blacklisted, COUNT(Blacklisted) as count
FROM Blacklists
GROUP BY Blacklisted
ORDER BY count DESC;
返回结果如下:
知道了被黑次数最多的用户之后,我又想知道包含用户数目最多的黑名单都有哪些?
SQL语句如下:
SELECT TOP 10 blacklister, COUNT(blacklisted) as blacklisted_count
FROM Blacklists
GROUP BY blacklister
ORDER BY blacklisted_count DESC;
结果如下:
我晕,哪个排名第一的是谁?为什么要维护一个如此大的黑名单,是要把所有人都弄黑名单中去嘛?
通过以上测试,我们可以得出结论,使用HiveSQL可以很便捷地查询黑名单相关的各类信息。
同时,我们也发现,被加入黑名单,并不意味着对应的用户肯定是一个坏用户。
因为任何人都可以创建黑名单,这就好比现实生活中,警察可以创建一个黑名单,其中包含这片地区的所有小偷;而小偷也可以创建一个黑名单,包含附近地区的警察。
所以,如果你被加入到哪个黑名单,又并无实际影响的话,那么根本不必太在意呢。
This article introduces how to query blacklist-related information through HiveSQL.
Through the above tests, we can conclude that HiveSQL can conveniently query various types of information related to the blacklist.
At the same time, we also find that being added to the blacklist does not necessarily mean that the corresponding user is a bad user.
Because anyone can create a blacklist, it is like real life, the police can create a blacklist containing all the thieves in the area; and thieves can also create a blacklist containing the police in the nearby area.
So, if you are added to any blacklist, and there is no actual impact, then you don't have to worry about it.