【Day 07】 在 AWS 中打造出 Data Lake 以及 Data Warehouse

大家好~ 先祝大家中秋节快乐哈哈/images/emoticon/emoticon42.gif
昨天我们完成了针对网站的 Google Analytics 的设定~ 现在大家应该可以顺利从 Google Analytics Dashboard 看到相关的网站分析内容,像是:使用者在网站上的各种行为资料、从哪个来源进到网站、使用甚麽装置连线至网站、使用者的国家性别、进站後的使用者浏览的页面以及停留时间等等资料,这些资讯分析都有助於行销团队以及资讯团队来优化网站设计、规划行销活动,甚至是拟定品牌策略时最好的参考依据。
https://ithelp.ithome.com.tw/upload/images/20210921/2013107306OMBT4oH2.png

但 Google Analytics 的分析资料仍无法涵盖所有资料范畴,若需要取得更完整的分析结果,我们需要开始整合公司的其他资料(例如:公司 CRM 系统客户档、公司内部产品资讯、公司行销策略相关资讯)进行分析,才能提供更精准的分析结果。


随着云端服务的兴起,客户也开始将 ERP 等营运系统放在 AWS 上,我们也会开始思考如何在 AWS 中打造出 Data Lake [1] 以及 Data Warehouse [2],怎麽将多种不同类型的资料汇整到 AWS 中,以便进行更完善的视觉化分析以及机器学习。

Data Lake vs Data Warehouse

特性 Data Lake 资料湖 Data Warehouse 资料仓储
目的 低成本大数据储存 以资料为基础,透过资料分析进行商业决策
储存资料类型 可储存任何类型的资料(储存结构化和非结构化的资料) 储存结构化的资料
使用情境 机器学习、预测分析、资料探索和分析 BI 和视觉化
AWS服务 AWS S3 AWS Redshift

所以今天我们就是来思考要如何将 Google Analytics 的资料整合至 AWS 中,让它与其他的资料进行整合分析啦~
那常见的网路抓取资料的方法大概就是透过『爬虫』或者『服务的 API 』进行资料撷取。

  • 如果是透过『爬虫』,他可以试图抓取无 API 的网路服务资料,但需要一定的知识以及技能且可能会有违法的情况。
  • 而服务的 API,则是由服务供应商开放提供,可以让使用者透过程序呼叫 API 的方式撷取资料,但取得的资料内容则会依据API的规定而有所限制。

Google Analytics 也有提供 Google Analytics Reporting API v4 供程序使用 [3],所以我们当然也可以在 AWS 运算资源(例如:Lambda、EC2 )撰写程序码去呼叫 Google Analytics Reporting API v4 将 Google Analytics 分析的资讯撷取并储存至 AWS 储存资源中(例如:S3) ~
https://ithelp.ithome.com.tw/upload/images/20210921/201310731f8oA1cnlC.png
但自行撰写程序码呼叫 API,若当 API 升版时则可能会造成程序码无法正常运作的情况,导致後续资讯人员仍需持续花费时间进行维护/调整。
而 AWS 推出 AppFlow 服务,『此为全受管服务』,不需要花费时间自行撰写、维护程序码呼叫 API 来汇整资料源,我们可以直接透过 AppFlow 快速且安全地将 Google Analytics 储存至 AWS 中,大大降低资讯人员的工作负担。


明天我们会来实作『如何把 Google Analytics 透过 AWS 撷取服务 - AppFlow 将资料储放至 AWS 中』~
如果有任何指点与建议,也欢迎留言交流,一起漫步在 Data on AWS 中。

我们明天见:)

参考&相关来源:

  1. What is a data lake? 什麽是资料湖?
    https://aws.amazon.com/tw/big-data/datalakes-and-analytics/what-is-a-data-lake/
  2. What is a data warehouse? 什麽是资料仓储?
    https://aws.amazon.com/tw/data-warehouse/
  3. Google Analytics Reporting API v4
    https://developers.google.com/analytics/devguides/reporting/core/v4

<<:  Day06-Kubernetes 那些事-Pod 篇

>>:  Day 7 - Using Global.asax File for Short URL Routing with ASP.NET Web Forms C# 使用全域应用程序类别产生短网址路由功能

[Day 23]从零开始学习 JS 的连续-30 Days---箭头函式

函式陈述式与函式表达式差异 函式陈述式 : function num(x) { return x *...

买大买小!下好离手 - 下单

shioaji 股票下单 contract = api.Contracts.Stocks.TSE.T...

D5: [漫画]工程师太师了-第3话

工程师太师了: 第3话 杂记: 继续聊天聊满30天~ 之前说过在编剧时发现, 工程师的生活也就只有上...

建立第一个RESTful api server(设定环境变数篇) (Day19)

在上篇的内容中,我们将资料库的连线字串放进程序码中,并写死在里面,但在常规的程序开发中,这样是非常不...

DAY15:玉山人工智慧挑战赛-中文手写字辨识(Pytorch 自订义资料集)

资料扩增 我们组的资料扩增这部分,因为第一次比赛,这个方法效果没有到非常好,采取的是用mask的方式...