iT邦幫忙

2021 iThome 鐵人賽

DAY 9
2
AI & Data

Data on AWS - 實作建立 Data Analytics Pipeline系列 第 9

【Day 09】 實作 - 透過 AWS 服務 - AppFlow 把 Google Analytics 資料存放至 AWS 中 ( 2 )

大家好~昨天我們建立好 Google Analytics 與 AWS 連線,現在我們就可以透過 AWS Console 拉取 Google Analytics 資料
大致流程如下所示:

  1. 於 AWS Console 搜尋 appflow,點選 Flows 並 Create Flow
  2. 於 Flow name 輸入易於識別的名稱後按 next
  3. 設定來源細節
  4. 設定目的端細節
  5. 設定 Flow 觸發的類型
  6. 設定拉取的 Google Analytics 欄位
  7. 設定篩選條件
  8. 執行 Flow

步驟一、於 AWS Console 搜尋 appflow,點選 Flows 並 Create Flow

https://ithelp.ithome.com.tw/upload/images/20210923/20131073L72LI9IStI.jpg


步驟二、於 Flow name 輸入易於識別的名稱後按 next

https://ithelp.ithome.com.tw/upload/images/20210923/2013107390IZCS8KMX.jpg


步驟三、設定來源細節

https://ithelp.ithome.com.tw/upload/images/20210923/201310732bCUJjfYsR.jpg

  • Source name:選擇 Google Analytics
  • Choose Google Analytics connection:選擇昨天建立的 connection
  • Choose Google Analytics object:選擇 Reports
  • Choose Google Analytics subobject:可能一個帳戶有建立多個資源和應用程式,你可以從 Google Analytics頁面中查看你想看的網站資料 ID,並於 AWS Console 選取此 ID
    https://ithelp.ithome.com.tw/upload/images/20210923/20131073xIFQAU1U22.jpg

步驟四、設定目的端細節

這裡是定義抓取的 Google Analytics 資料要存放在哪裡
https://ithelp.ithome.com.tw/upload/images/20210923/20131073X9hEANo0Cr.jpg
所以我們這邊選擇 Destination name 為 AWS S3、Bucket details 選擇昨天創建的 S3 Bucket name,接著展開 Additional settings

  • Data transfer preference:
    預設情況下執行 Flow 會產生多個檔案結果,也可以設定聚合檔案(執行一次 Flow 僅會產生一個檔案結果),這邊我們選擇 No aggregation,讓檔案 size 不會太大,後續可以透過 Lambda 進行處理
  • Filename preference:
    檔案名稱是否加上時間戳記,這邊選擇 No timestamp
  • Folder structure preference:
    使用者可以依據需求來決定資料夾的時間粒度,而選擇的粒度決定了文件夾的命名階層,且適當的階層也會大大降低後續 Athena 搜尋的速度以及費用的產生,以及因 Google Analytics API 本身時間粒度僅到 day(沒有到 hour ),故我們選擇 Place the file in a timestamped folder、Daily

選擇完後,藍底的地方就會顯示目前資料夾的命名階層:
S3://<<"bucket name">>/<<"appflow name">>/年/月/日


步驟五、設定 Flow 觸發的類型

可以選擇按排程、基於事件或手動觸發,這邊我們選擇 Run on demand (手動觸發)
https://ithelp.ithome.com.tw/upload/images/20210923/201310731kHGtkESJS.jpg


步驟六、設定拉取的 Google Analytics 欄位

選擇 Manually map fields,並選取欲拉取的 Google Analytics 欄位(欄位說明請詳[1]),這邊我想瞭解不同的裝置在網站的網頁瀏覽量,故選取
ga:date|DIMENSION、ga:deviceCategory|DIMENSION、ga:pageviews|METRIC,並點選 Map fields directly 後按 Next
★小叮嚀★ 因有部分欄位無法直接選取(ex:ga:dimensionXX),可以選擇『Upload a .csv file with mapped fields』,就可以導入自定義維度和指標。
https://ithelp.ithome.com.tw/upload/images/20210923/20131073lkMwEKVZrt.jpg
https://ithelp.ithome.com.tw/upload/images/20210923/20131073o4IzzjoBBU.jpg


步驟七、設定篩選條件

我們可以設定篩選條件過濾要儲存的資料,我們選擇跳過按 next、save
https://ithelp.ithome.com.tw/upload/images/20210923/20131073Hg4L9IEIP2.jpg


步驟八、執行 Flow

接著我們點擊此 Flow 並點選 Run Flow
https://ithelp.ithome.com.tw/upload/images/20210923/20131073Vs29eErUxe.png
https://ithelp.ithome.com.tw/upload/images/20210923/20131073YirICbeKxb.png


等待 Flow 執行完成後,我們可以在 S3 看到抓取的 Google Analytics 資料~接著我們下載這個檔案看裡面的內容,我們會發現抓取的 Google Analytics 原始檔案為多行的 JSON 格式,非常不方便使用者閱讀且 Athena 也不支援此格式搜尋,讓我們無法進行後續的分析處理
https://ithelp.ithome.com.tw/upload/images/20210923/20131073bv56UOq09M.jpg
https://ithelp.ithome.com.tw/upload/images/20210923/20131073iFFI3UUsw3.jpg

我們要如何解決此問題呢? 就讓我們明天繼續討論 Data Analytics Pipeline on AWS - Google Analytics 吧~ 明天見:)
如果有任何指點與建議,也歡迎留言交流,一起漫步在 Data on AWS 中。

[1] UA Dimensions & Metrics Explorer
https://ga-dev-tools.web.app/dimensions-metrics-explorer/


上一篇
【Day 08】 實作 - 透過 AWS 服務 - AppFlow 把 Google Analytics 資料存放至 AWS 中 ( 1 )
下一篇
【Day 10】 討論 Data Analytics Pipeline - Google Analytics on AWS (整體)
系列文
Data on AWS - 實作建立 Data Analytics Pipeline30

尚未有邦友留言

立即登入留言