如何用大数据分析工具Bigquery生成经纬度地图?

2022-04-02 00:00:00 程序 地址 地理 经纬度 资料

许多使用 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 做进一步的资料探索。

Log Viewer可以探索所有的 Http Request 记录
将其中一笔 ip 记录展开后,可以看到更详细的记录内容

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

相关文章