温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在MaxCompute上分析IP来源

发布时间:2021-08-30 18:46:17 来源:亿速云 阅读:118 作者:chen 栏目:游戏开发

本篇内容主要讲解“怎么在MaxCompute上分析IP来源”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在MaxCompute上分析IP来源”吧!

淘宝IP库

淘宝IP地址库官网地址 http://ip.taobao.com/ ,其查询接口[ http://ip.taobao.com/service/getIpInfo.php?ip=[ip 地址字串]]( http://ip.taobao.com/service/getIpInfo.php?ip=[ip 地址字串]),如下所示:

怎么在MaxCompute上分析IP来源cdn.nlark.com/lark/0/2018/png/26173/1541753257262-66a9ae70-e251-48ba-a9ee-72cf4b7fd581.png">

但是在MaxCompute中禁止使用http请求,那么如何实现在MaxCompute中进行IP的查询?
目前有三种方式:

  1. 用SQL将数据查询到本地,再发起http请求查询。-->效率低下,且淘宝IP库查询频率需小于10qps,否则拒绝请求。

  2. 下载IP地址库到本地,进行查询。-->同样效率低,且不利于数仓等分析使用。

  3. 将IP地址库定期维护上传至MaxCompute,进行连接查询。-->比较高效,但是IP地址库需自己定期维护。

下载IP地址库

① IP地址库下载, http://ip.taobao.org:9999/ipdata_download.html 下载需要的格式数据。本文以[基本数据格式]为例。

怎么在MaxCompute上分析IP来源

②下载UTF-8数据,打开看看数据格式。

怎么在MaxCompute上分析IP来源

前四个数据是IP地址的起始地址与结束地址,前两个是十进制整数形式,后两个是点分形式。这里我们使用整数形式,以便计算IP是否属于这个网段。

上传IP地址库数据

①创建表DDL:

DROP TABLE IF EXISTS ipresource ;CREATE TABLE IF NOT EXISTS ipresource 
(
    start_ip BIGINT
    ,end_ip BIGINT
    ,start_ip_arg string
    ,end_ip_arg string
    ,country STRING
    ,area STRING
    ,city STRING
    ,county STRING
    ,isp STRING)
;

②使用Tunnel上传文件(文件>10MB需要使用 Tunnel upload命令 )

odps@ workshop_demo>tunnel upload ipdata.txt.utf8 ipresource;

怎么在MaxCompute上分析IP来源

可以通过SQL查看到表中共计上传2369306条数据。

③查看ipresource表样本数据。

怎么在MaxCompute上分析IP来源

编写UDF函数

通过编写Python UDF将点号分割的IP地址转化为int类型的IP。详细如下:
①添加Python 资源。

怎么在MaxCompute上分析IP来源

怎么在MaxCompute上分析IP来源

②编写Python资源代码。

from odps.udf import annotate@annotate("string->bigint")class ipint(object):
    def evaluate(self, ip):
        try:            return reduce(lambda x, y: (x << 8) + y, map(int, ip.split('.')))        except:            return 0

点击提交并解锁。

怎么在MaxCompute上分析IP来源

③新建自定义函数:

怎么在MaxCompute上分析IP来源

提交并解锁:

怎么在MaxCompute上分析IP来源

④验证ipint函数是否生效并满足预期值。

怎么在MaxCompute上分析IP来源

在SQL中使用

以具体IP地址为例,在正常情况会以具体表的字段来读进来。

怎么在MaxCompute上分析IP来源

保证数据准确性可以定期从淘宝IP库获取数据来维护ipresource这个表。

到此,相信大家对“怎么在MaxCompute上分析IP来源”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI