將AWS儲存空間資料導入GCP-密技大公開
將AWS儲存空間資料導入GCP-密技大公開

將AWS儲存空間資料導入GCP-密技大公開

簡介

在資料分析跟處理的世界裡面,我們常常要面對五花八門的資料,以及來自不同服務工具的資料來源。例如:Google Cloud Storage、阿里雲、AWS、IBM Cloud等等,甚至是來自客戶地端的server,那當我們在進行GCP專案開發,或是解決這樣的問題時,我們的Data Pipeline要如何建置?如何運用雲端的服務達到以上的需求,接下來這類的案例或許可以解決你的問題。

前情提要

我們公司是GCP雲服務的專家,在面對客戶的眾多問題中,常常會被問到:我們能不能從AWS的S3串入我們的資料。其中,有些客戶透過了網路服務搜集alb log資料,但沒有預先做資料的清洗以及分析。這些log資料裡面,常常涵蓋著使用者的request ip,以及user agent。那客戶希望看到什麼?他們就是想知道這些造訪網頁的使用者,到底來自何方,或是使用什麼樣的裝置,進而取得當中的BI(Business Intellegence)。客戶希望我們在資料導入BI前可以經過清理跟解析的流程,以致於拿到有用的資料,因此,透過python程式的撰寫及執行,我們成功地把資料從AWS s3串接到BigQuery。

資料要完整不遺漏,又有完成任務的時效限制,怎麼破關?

舉個例子,今天有個客戶,擁有整整四年的ALB LOG 作為分析網站requests行為的日誌資料,資料量約200GB。該資料會從兩個服務端存入AWS S3 bucket,每五分鐘,兩個服務端會存入各一筆alb壓縮檔到S3裡面。
在這個情境下,你會發現,光是要趕上每五分鐘的存取速度,就已經有得忙了,更何況我們還要把歷史資料都存進BigQuery,為了讓資料在不遺漏、又要在有限的時間內完成存取,我們將工作分成以下兩個部分同時進行:

1. historical data – batch job:

這部分主要是著手於已經存在S3裡面的資料,為了加快存取速度,我們把S3的資料預先下載到Google Compute Enginessd硬碟,以更快的讀寫速度,再加上multiple processes(多執行緒)的方式(開啟多的python process),大量讀取、解析過去四年的歷史資料,並存入BigQuery。

2. real time data – streaming

即時串流程式執行的動作與歷史資料的讀取相同,差別在於:串流程式會直接串接s3的bucket,去下載最新的alb log解壓縮檔案(前言提到,每五分鐘services就會產生兩筆資料),好讓客戶可以尋到最近一筆存入的資料。因此,程式每分鐘都會檢查s3的當日prefix是否有產生新資料,再進行清理跟解析,最後把資料存入BigQuery。


以上就是我們第一章所分享的內容,想知道怎麼把AWS的資料夾跟GCP的服務進行串接,還有怎麼設定權限金鑰,我們待下回分解。

這張圖片的 alt 屬性值為空,它的檔案名稱為 commentus.png

Chao Joshua

為Cloud Ace解決方案架構師。熟悉GCP雲端服務,並著力於大數據分析方法及數據管道研究。提供企業雲端架構諮詢與技術支援。

發佈留言