目前正在使用tispark 進行離線計算,簡單記錄一下操作過程
一、技術驗證
- 場景:計算每次充電過程中單體最高電壓的變化速率
解決方案:
使用tispark 直接訪問tidb的數據,采用spark的lag函數計算
SELECT billid,MAX(Diff) AS MaxHVDiff,MIN(Diff) AS MinHVDiff,
'20190801' AS bizdate FROM (SELECT upttime,billid,HighestVoltage , (HighestVoltage -lag(HighestVoltage ) over (PARTITION BY billid ORDER BY upttime)) AS Diff FROM ETL_SingleCharging
計算資源 :
/home/teld/tispark/spark-2.3.3-bin-hadoop2.7/bin/spark-shell --master=spark://***:7077 --executor-memory 32G 48核
計算結果:
參與計算的數據量: 451105735 –4.5億
結果數據:6463684 –646萬
時間:16分鐘
監控資源


2. 相同的場景,將資源占用控制在 24G,36核心。 觀察tispark 內存壓力下降 --說明 tispark的資源占用可控
/home/teld/tispark/spark-2.3.3-bin-hadoop2.7/bin/spark-shell --master=spark://***:7077 --executor-memory 24G --total-executor-cores 36
二、生產部署
場景:生產環境需要計算每分鐘的每個訂單的充電的soc、溫度、單體最高電壓的變化速率,因此分析查找出異常的訂單數據
生產解決方案:
2.1 整體思路:
通過計算平臺的HUE上擴展TIspark的插件,實現tispark的相關操作,由于涉及到相關的臨時表操作,因此在HUE的數據流里面還涉及到清楚臨時表,導入數據到sqlserver等操作,因此還涉及kettle操作
2.2 實現方案:
1.數據流定義:
1.定義HUE數據流任務

tispark sql --臨時用shell 插件,擴張的hue上的tispark的插件正在開發

2.執行監控
每個sparksql 執行時間為2分鐘
三 下一步規劃
3.1 下一步逐步增加更深入的離線任務
3.2 tispark 的hue 更易用性的插件開發,并返回給社區
3.3 繼續增加tidb的 oltp業務觀察 tp和ap業務的 關系和對資源的占用沖突情況
浙公網安備 33010602011771號