如何用大数据分析工具Bigquery生成经纬度地图?
许多使用 Google Load Balancer 的客户,对于 HTTP Request 的 log 应该都不陌生。通过 Cloud logging 记录功能,我们可以观察网站访客的相关资讯,比如 user agent、造访时间、protocol、IP地址等。
而访客的地址位置,往往是通过IP地址来进行分析,使用者才能进一步去了解网站访客的地址位置分布情形,这篇文章将会通过 HTTP Request 的 log 当作解析出经纬度的资料为例, 来介绍如何使用 BigQuery 串接 Data Studio,分析地理资讯的方法。
以下是完整的 HTTP Request log 地理位置资讯分析的架构图:
1.收集 HTTP Request log
当用户从 internet 拜访网站时,后端的 server 接收到流量以后,Load Balancing 会自动将 HTTP Request 的 log 记录到 Cloud Logging ,使用者可以在 GCP console 的 Logs Viewer 查看记录,若要进行大量资料分析时,资料就需要汇出到 BigQuery 做进一步的资料探索。
2.汇出 log 到 BigQuery
下一步,把 HTTP Request 从 Log Viewer 汇入 BigQuery。通过建立接收器(sink)的方式,让 Load Balancing 在接收到新的访问时,接收器就会将 log 传送到指定的 BigQuery 资料集储存。
使用者需要先在 BigQuery 当中预先建好资料集,作为接收器的目的地。
当接收器收到资料以后, BigQuery 就会产生一个资料表来储存 log 记录,使用者就可以透过 BigQuery 的 SQL 语法,对资料表当中的内容进行分析。
不过,做到这里,我们还没有办法直接把 HTTP Request 的资料做地理位置的分析,原因是,我们的 ip 地址资料还没有经过转换,所以我们要透过 GCP 外部的工具解析资料。
3.分析 ip 地址
转换 ip 地址成经纬度资料
首先,我们先新增一台 GCP 的虚拟机
在里面可以安装使用者所偏好的程序语言,接著再从 BigQuery 当中把 log 资料取出进行解析。执行分析程序前,我们需要先安装好 BigQuery API Client Library,以便程序可以直接从 BigQuery 存取资料;接着,可以使用地理资讯转换的第三方工具(如:ipstack API)让程序将汇入的 ip 资料进行转换。
使用 ipstack API 之前,需要到官网进行注册,取得 API Access Key。(可申请免费用量作为测试使用)
第二步,安裝 ipstack 的 library
(如何使用 library 可参考说明文件)
pip install ipstack
相关文章