Data Lake Analytics 作为云上数据处理的枢纽,最近加入了通过IP地址查找对应的国家、省份、城市、ISP的函数, 今天带大家体验一下。
函数详细介绍本次一共添加了下面这些函数:
ip2region
ip2region(ip, level, lang)
参数详解:
- ip: 要查询的IP地址
- level: country/province/city/isp
- lang: cn/en, 返回结果的语言
ip_country/ip_province/ip_city/ip_isp
ip_country/ip_province/ip_city/ip_isp是ip2region的一种快捷用法,参数较少,这几个函数风格类似,两种调用方式:
ip_country(ip)
ip_country(ip, lang)
参数详解:
- ip: 要查询的IP地址
- lang: cn/en, 返回结果的语言
ip2long/long2ip
ip2long(ip)
long2ip(longVal)
Lets make some fun!
废话不多说,我们直接来体验一下:
先来看看国内的ip:
mysql> select ip2region('115.239.210.27', 'country', 'CN'), > ip_country('115.239.210.27'), > ip_province('115.239.210.27'), > ip_city('115.239.210.27'), > ip_isp('115.239.210.27')\G *************************** 1. row *************************** ip2region('115.239.210.27', 'country', 'CN'): 中国 ip_country('115.239.210.27'): 中国 ip_province('115.239.210.27'): 浙江 ip_city('115.239.210.27'): 杭州 ip_isp('115.239.210.27'): 电信 1 row in set (0.14 sec)
再来看个国外的ip:
mysql> select ip2region('31.13.79.1', 'country', 'CN'), > ip_country('31.13.79.1'), > ip_province('31.13.79.1'), > ip_city('31.13.79.1'), > ip_isp('31.13.79.1')\G *************************** 1. row *************************** ip2region('31.13.79.1', 'country', 'CN'): 印度 ip_country('31.13.79.1'): 印度 ip_province('31.13.79.1'): 马哈拉施特拉邦 ip_city('31.13.79.1'): 孟买 ip_isp('31.13.79.1'): 1 row in set (0.08 sec)
最后咱再来切换个语言:
mysql> select ip2region('31.13.79.1', 'country', 'EN'), > ip_country('31.13.79.1', 'EN'), > ip_province('31.13.79.1', 'EN'), > ip_city('31.13.79.1', 'EN'), > ip_isp('31.13.79.1', 'EN')\G *************************** 1. row *************************** ip2region('31.13.79.1', 'country', 'EN'): India ip_country('31.13.79.1', 'EN'): India ip_province('31.13.79.1', 'EN'): Maharashtr ip_city('31.13.79.1', 'EN'): Mumbai ip_isp('31.13.79.1', 'EN'): 1 row in set (0.06 sec)
总结我们今天介绍了DLA里面IP地址支持相关的一些函数,这些函数对于用户分析,特别是网站访问用户的地域分析的时候非常有用,在其它数据库里面你可能需要自己实现UDF,或者在应用层进行处理;我们DLA里面已经把这种能力内置了,并且会及时的对IP库进行更新,更多详细的介绍可以直接去我们的官网试用。
,