2017雲棲大會·杭州峰會:《在線用戶行為分析:基於流式計算的數據處理及應用》之《流數據處理:通過StreamSQL分析視頻日誌》篇
實驗背景介紹
了解更多2017雲棲大會·杭州峰會 TechInsight & Workshop.
本手冊為雲棲大會·杭州峰會Workshop之《在線用戶行為分析:基於流式計算的數據處理及應用》場的《流數據處理:通過StreamSQL分析視頻日誌》篇所需。主要幫助現場學員熟悉並掌握阿裏雲流計算StreamCompute的操作和使用。
實驗涉及大數據產品
前提準備
- 確保已經從雲中沙箱中獲取了實驗所需的阿裏雲賬號和密碼。
進入阿裏雲流計算開發平台
- step1:進入 阿裏雲流計算開發平台,點擊**前往授權**。
- step2:在雲資源訪問授權頁麵,點擊**同意授權**。
聲明數據來源
該業務場景是以Log來采集的實時視頻日誌流,下麵需要用StreamCompute來分析處理視頻流日誌。
- step1:點擊頂部菜單欄中的**開發**,進入開發頁麵。
- step2:右鍵選擇**新建文件夾**,在彈出框中填寫文件夾名稱為workshop_log(可根據需求命名),點擊**創建**。
- step3:在新建的workshop_log文件夾上右鍵選擇**新建作業**,在新建作業彈出框中命名作業名稱為workshop(可根據需求命名),點擊**新建**。
- step4:根據需求修改代碼備注信息,進入編寫StreamSQL開始編寫SQL。
- step5:引用數據來源於前麵章節已經配置成功的Log信息。
SQL邏輯如下:
CREATE TABLE client_operation_log (
userid VARCHAR,
`timestamp` VARCHAR
) WITH (
type='sls',
endPoint='https://cn-shanghai-intranet.log.aliyuncs.com',
AccessId='賬號對應的accessID',
AccessKey='賬號對應的accesskey',
project='前一章節中日誌服務的project名稱',
logStore='client-operation-log'
);
聲明數據目標
經過StreamCompute分析處理的數據最終寫入RDS存儲中。
出品方為大家準備了RDS,每個學員的數據庫名稱均為workshop_[abc],其中[abc]為您的雲賬號後三位數字,比如雲賬號為train00620@aliyun-inc.com,那麼您需要替換為workshop_620.
SQL邏輯如下:
create table online_num(
start_time TIMESTAMP,
count_value BIGINT,
PRIMARY KEY(start_time)
)
with (
type='rds',
url='jdbc:mysql://rm-uf6t1mym355i3qdsw.mysql.rds.aliyuncs.com:3306/workshop_[abc]',--記得替換為自己的數據庫名
tableName='online_num',
username='root',
password='Workshop001'
);
編寫StreamSQL分析數據
進入核心邏輯編寫階段,計算指標為**統計當前在線人數**。
- 編寫當前在線人數的StreamSQL計算邏輯。
SQL邏輯如下:
INSERT INTO
online_num
SELECT
CAST(from_unixtime(CAST(`timestamp` AS BIGINT)/1000) AS TIMESTAMP),
COUNT(DISTINCT userid)
FROM
client_operation_log
GROUP BY
CAST(from_unixtime(CAST(`timestamp` AS BIGINT)/1000) AS TIMESTAMP);
提交作業
- step1:點擊右側的**資源配置**tab頁,展開具體信息。
直到生成完畢,如下圖所示:
- step3:點擊**保存**按鈕保存當前配置信息,即後點擊**提交**將代碼提交至Blink引擎。
啟動作業
通過上述步驟將已經創建好的StreamSQL作業提交至生產集群上,但還需要在運維中進行啟動作業,方可執行流式作業。
- step1:點擊頂部菜單欄中的**運維**進入運維中心。
- step2:找到自己的流式作業workshop,點擊操作欄中的**啟動**。
- step3:在啟動作業對話框中,點擊**按以上配置啟動**。
通過上述步驟作業處於啟動中,直至狀態顯示**運行**,表示作業上線並啟動成功。
- step4:點擊任務操作欄中的**查看詳情**進入運維大屏查看任務概況。
- step5:在作業儀表盤中開啟實時刷新,並關注數據輸入和數據輸出,如下圖顯示正常表示流式任務處理正常。
開啟實時刷新後,底下的監控圖會由於作業提交集群執行過程有所1分鍾左右延遲刷出。
確認數據產生
流式作業跑起來,還需要確認是否數據已經寫入目標端。
step2:從作業儀表盤中確認數據輸入和輸出都正常,也可在**血緣關係圖**中進行數據抽樣。
step3:切換至**血緣關係圖**找到目的端RDS,右鍵並選擇**抽樣數據**。
數據抽樣結果如下:
數據抽樣結果如上圖所示,至此我們針對實時在線人數的指標已經完成。其他相關指標大家可以專心聽講師分析和講解,後續也會提供源碼。
最後更新:2017-10-09 10:34:25