本案例以簡單的網站使用者Portrait analysis為例,帶您熟悉DataWorks的主要功能和常見任務,主要包含同步資料、加工資料、管理資料以及消費資料操作。
案例目標
案例預期
通過本案例的實操,您將能夠在DataWorks中獨立完成資料同步、資料開發和任務營運等常見資料崗位任務。
案例人群
本案例適合開發工程師、資料分析師、產品營運人員等需要從資料倉儲中擷取資料並進行分析與洞察的人員。
案例設計
為制定企業經營策略,需從使用者網站行為資料中提取使用者群體基本畫像。例如,擷取使用者群體地理屬性、社會屬性等資訊,實現定時定點調度,進而實現網站流量精細化營運操作,需要通過DataWorks完成以下操作。
涉及產品
在網站使用者Portrait analysis任務流程中涉及到未經處理資料儲存資料庫、計算儲存資料庫以及對整個流程開發的平台,以下是本案例中涉及的產品介紹。
產品分類 | 產品名 | 產品介紹 |
資料庫 | 由本案例提供該資料庫,在本案例中用於儲存使用者基本資料。 | |
由本案例提供該Object Storage Service,在本案例中用於儲存日誌資訊。 | ||
計算引擎 | 本案例中,基於DataWorks使用雲原生MaxCompute、開源全託管服務EMR Serverless StarRocks、開源巨量資料平台 E-MapReduce 或開源全託管服務EMR Serverless Spark中的任意一種作為計算資源進行開發,對未經處理資料進行加工並儲存到目標資料倉儲中。 | |
資料中台 | 在本案例中,DataWorks作為資料中台,用於對未經處理資料進行同步、加工、品質監控、資料消費等操作,並支援任務調度。 |
在體驗不同計算引擎下的網站使用者Portrait analysis時,資料庫與DataWorks為不同網站使用者Portrait analysis時的公用資源。您只需為DataWorks工作空間將不同計算引擎綁定成計算資源即可。
當計算資源使用開源巨量資料平台 E-MapReduce或開源全託管服務EMR Serverless Spark時,接收案例使用者基本資料和案例日誌資訊的OSS資料來源,以及計算儲存產品使用開源全託管服務EMR Serverless StarRocks時,用於儲存StarRocks中註冊函數
.jar包的OSS資料來源,均需要自備,並確保其具備足夠的儲存空間和存取權限。
情境設計
您需要將資料庫與計算引擎,分別在DataWorks中建立為資料來源與計算資源後,即可對計算資源中的資料進行加工處理,擷取需要的使用者群體地理屬性、社會屬性等資訊,以及對資料資訊進行管理與消費。
工作流程設計
在本案例中,您可以根據不同引擎選擇相應的網站使用者Portrait analysis流程。共提供了MaxCompute版、StarRocks版、EMR版以及Spark版四種版本引擎的網站使用者Portrait analysis文檔。流程的步驟如下。
通過Data Integration擷取不同資料來源中的使用者基本資料資料和使用者訪問日誌資訊至引擎中。
在引擎中將擷取到的日誌資料通過加工拆解為可分析的欄位。
在引擎中將使用者基本資料和初步加工後的日誌資料進行匯總加工。
進一步加工產出基本使用者畫像。
涉及模組
本案例涉及的DataWorks模組如下。
步驟 | 操作內容 | 階段性目標 |
同步資料 | 同步MySQL中的使用者資訊資料及儲存在OSS中使用者訪問日誌資料至不同計算資源。
| 學習如下內容:
|
加工資料 | 使用資料開發模組,將日誌資料通過函數、正則等方式拆解為可分析欄位,並與使用者資訊表加工匯總產出基本的使用者畫像資料。 | 學習如下內容:
|
管理資料 | 通過資料地圖概述模組,對源端表資料進行中繼資料管理與查看。以及對源端資料變更過程中產生的髒資料進行監控,監控不通則阻斷任務執行,避免影響擴大。 |
|
消費資料 | 學習如何基於DataWorks將資料進行可視化展示和API服務建立。 |
案例資料
這些資料結構將在後續的資料同步、加工和管理步驟中用於產生使用者畫像。
案例日誌資料結構
實際操作前,請先瞭解該專案背景下企業已有的業務資料及其資料格式,以及業務背景分析需要的目標使用者畫像基本結構。
以下是OSS中儲存的user_log.txt檔案未經處理資料。
$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent"$http_referer" "$http_user_agent" [unknown_content];可根據原始日誌資料擷取到以下有效資訊。
欄位名稱 | 欄位說明 |
$remote_addr | 發送請求的用戶端IP地址。 |
$remote_user | 用戶端登入名稱。 |
$time_local | 伺服器本地時間。 |
$request | 請求,包括HTTP請求類型+請求URL+HTTP協議版本號碼。 |
$status | 服務端返回狀態代碼。 |
$body_bytes_sent | 返回給用戶端的位元組數(不含header)。 |
$http_referer | 該請求的來源URL。 |
$http_user_agent | 發送請求的用戶端資訊,如使用的瀏覽器等。 |
案例使用者資訊資料結構
以下為MySQL使用者資訊資料表ods_user_info_d的表結構:
欄位名稱 | 欄位說明 |
uid | 使用者名稱 |
gender | 性別 |
age_range | 年齡分段 |
zodiac | 星座 |
案例目標資料結構
根據未經處理資料分析可獲得的有效資料,並基於業務需求確認最終資料表結構。
欄位名稱 | 欄位說明 |
uid | 使用者名稱 |
region | 地區 |
device | 終端類型 |
pv | 瀏覽量 |
gender | 性別 |
age_range | 年齡分段 |
Zodiac | 星座 |