閱讀495 返回首頁    go 阿裏雲 go 技術社區[雲棲]


2017雲棲大會·杭州峰會:《在線用戶行為分析:基於流式計算的數據處理及應用》之《流數據處理:通過StreamSQL分析視頻日誌》篇

實驗背景介紹

了解更多2017雲棲大會·杭州峰會 TechInsight & Workshop.

本手冊為雲棲大會·杭州峰會Workshop之《在線用戶行為分析:基於流式計算的數據處理及應用》場的《流數據處理:通過StreamSQL分析視頻日誌》篇所需。主要幫助現場學員熟悉並掌握阿裏雲流計算StreamCompute的操作和使用。

實驗涉及大數據產品

前提準備

  • 確保已經從雲中沙箱中獲取了實驗所需的阿裏雲賬號和密碼。

進入阿裏雲流計算開發平台

前往授權

  • step2:在雲資源訪問授權頁麵,點擊**同意授權**。

同意授權

聲明數據來源

該業務場景是以Log來采集的實時視頻日誌流,下麵需要用StreamCompute來分析處理視頻流日誌。

  • step1:點擊頂部菜單欄中的**開發**,進入開發頁麵。

進入開發

  • step2:右鍵選擇**新建文件夾**,在彈出框中填寫文件夾名稱為workshop_log(可根據需求命名),點擊**創建**。

點擊新建

點擊新建文件夾

  • step3:在新建的workshop_log文件夾上右鍵選擇**新建作業**,在新建作業彈出框中命名作業名稱為workshop(可根據需求命名),點擊**新建**。

創建作業

配置作業

  • step4:根據需求修改代碼備注信息,進入編寫StreamSQL開始編寫SQL。

創建StreamSQL

  • step5:引用數據來源於前麵章節已經配置成功的Log信息。

引用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表中。 數據目標

出品方為大家準備了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頁,展開具體信息。

資源配置

  • step2:點擊藍色**獲取自動生成JSON配置**,等待數秒後生成完畢。 資源配置

直到生成完畢,如下圖所示:

資源配置

  • step3:點擊**保存**按鈕保存當前配置信息,即後點擊**提交**將代碼提交至Blink引擎。

保存配置

提交配置

啟動作業

通過上述步驟將已經創建好的StreamSQL作業提交至生產集群上,但還需要在運維中進行啟動作業,方可執行流式作業。

  • step1:點擊頂部菜單欄中的**運維**進入運維中心。

進入運維

  • step2:找到自己的流式作業workshop,點擊操作欄中的**啟動**。

點擊啟動

  • step3:在啟動作業對話框中,點擊**按以上配置啟動**。

啟動作業

通過上述步驟作業處於啟動中,直至狀態顯示**運行**,表示作業上線並啟動成功。

啟動中

啟動

  • step4:點擊任務操作欄中的**查看詳情**進入運維大屏查看任務概況。

查看

  • step5:在作業儀表盤中開啟實時刷新,並關注數據輸入和數據輸出,如下圖顯示正常表示流式任務處理正常。

開啟實時刷新後,底下的監控圖會由於作業提交集群執行過程有所1分鍾左右延遲刷出。

作業儀表盤

確認數據產生

流式作業跑起來,還需要確認是否數據已經寫入目標端。

  • step1:首先在作業儀表盤中確認**數據輸入**和**數據輸出**是否正常。
    作業儀表盤

  • step2:從作業儀表盤中確認數據輸入和輸出都正常,也可在**血緣關係圖**中進行數據抽樣。

  • step3:切換至**血緣關係圖**找到目的端RDS,右鍵並選擇**抽樣數據**。

血緣關係圖

數據抽樣結果如下:

數據抽樣

數據抽樣結果如上圖所示,至此我們針對實時在線人數的指標已經完成。其他相關指標大家可以專心聽講師分析和講解,後續也會提供源碼。

最後更新:2017-10-09 10:34:25

  上一篇:go  車品覺:它是抓捕本·拉登的幕後英雄,隻服務100家客戶,估值卻高達200億美元!
  下一篇:go  創意對抗網絡(CANs)你知多少?