Python + Apache Kylin 讓數據分析更加簡單!

現現在,大數據、數據科學和機器學習不只是技術圈的熱門話題,也是當今社會的重要組成。數據就在每一個人身邊,同時天天正以驚人的速度快速增加,據福布斯報道:到 2025 年,每一年將產生大約 175 個 Zettabytes 的數據量。git

目前咱們所熟知的行業都愈來愈依賴於對大數據的高級處理和分析,如金融、醫療保健、農業、能源、媒體、教育等全部重要的社會發展行業,然而這些龐大的數據集讓數據分析、數據挖掘、機器學習和數據科學麪臨了巨大的挑戰。github

數據科學家和分析師在嘗試對於海量數據的分析時會面臨數據處理流程複雜、報表查詢緩慢等問題,但在實踐中發現可經過 Apache Kylin 與 Python 的集成解決這一大難題,從而幫助分析師和數據科學家最終得到對大規模(TB 級和 PB 級)數據集的自由訪問。算法

 

機器學習和數據科學麪臨的挑戰

機器學習(ML)工程師和數據科學家在對大數據運行計算時遇到的主要挑戰之一是處理更大容量的數據時帶來的更大的計算複雜度 。數據庫

所以,隨着數據集的擴大,即便是微不足道的操做也會變得昂貴。此外,隨着數據量的增長,算法性能愈來愈依賴於用於存儲和移動數據的技術架構,同時數據量越大,並行數據結構,數據分區和存儲以及數據複用變得更加劇要。apache

 

Apache Kylin 如何解決這些挑戰?

Apache Kylin 是一個開源的分佈式大數據分析引擎,旨在爲 Hadoop上的多維分析(MOLAP)提供 SQL 接口。它容許企業使用和其餘大數據分析工具相比更短的的時間快速分析海量數據集。編程

藉助 Apache Kylin,數據團隊可以大幅減小分析處理時間以及相關的 IT 和運營成本。它能夠經過將大型數據集預先計算到一個(或另外一個很是少許)的 OLAP 多維數據集中並將它們存儲在列式數據庫中來實現查詢加速。這使機器學習工程師,數據科學家和分析師可以快速訪問數據並執行數據挖掘,輕鬆發現數據中隱藏的趨勢。數據結構

下圖顯示了在引入 Apache Kylin 時,大數據上的機器學習和數據科學活動如何變得更加簡單。架構

Apache Kylin 如何與大數據平臺配合使用併發

 

Apache Kylin 如何與 Python 集成

目前 Python 風頭正盛,做爲領先的編程語言之一,憑藉其易用性和豐富的庫,Python 已經在大數據中被普遍應用。機器學習

Python 還提供了大量數據挖掘工具來協助處理數據,同時也提供已經在機器學習和數據科學社區運行的應用程序。簡而言之,若是您正在使用大數據,那麼 Python 可能會讓您的工做變得更輕鬆。

使用 Kylinpy 庫,Apache Kylin 能夠輕鬆與 Python 集成。Kylinpy 是一個提供 SQLAlchemy 方言實現的 Python 庫。所以,任何使用 SQLAlchemy 的應用程序如今均可以查詢 Kylin OLAP 多維數據集。此外,它還容許用戶經過 Pandas 數據幀訪問數據。

經過 Pandas 訪問數據的示例代碼:

使用 Pandas 鏈接 Apache Kylin

 

使用 Apache Kylin 做爲數據源的好處

  • 輕鬆訪問海量數據集:交互式處理大量(TB / PB)數據。
  • 提供標準 JDBC 接口。
  • 超高性能:大數據查詢亞秒級響應。
  • 高擴展性:藉助 Kylin 的橫向擴展性,能夠擴展數據,無需擔憂性能問題。
  • 互聯網級併發:支持數千個用戶併發查詢。
  • 極簡開發:釋放開發人力,專一數據洞察。
  •  

 

用例:使用 Apache Kylin 進行高級分析

數據集:

咱們將一個 IMDB 電影數據集(來源:Movielens)導入咱們的 Kylin OLAP 多維數據集,並使用 Python 讀取數據並執行探索性分析,以便在指定時間段內查找不一樣流派的電影評級趨勢。

目的:

  • 肯定評分最高的電影。
  • 比較男性與女性對不一樣電影類型的偏好。
  • 找出觀影人職業與電影流派之間的相關性。
  • 分析幾周內不一樣類型的電影評級趨勢。
  • 比較男女平均評分。

數據生命週期

爲了經過 Python 分析數據,使用了 Kylinpy 庫並編寫了 SQL 來爲相關分析提取相關數據。經過 SQL 返回的數據集存儲爲 Pandas 數據幀,而後對數據幀進行數據處理,以使數據造成適合咱們分析的結構。咱們利用 Matplotlib 和 Seaborn 庫來可視化數據。下圖說明了每一個階段的數據生命週期。

Apache Kylin 數據生命週期

分析

讓咱們首先看一下排名靠前的幾部電影。能夠看出,前 15 部電影中,除了前 2 部以外,13 部電影的評分人數幾乎相同。此信息是相關發現的起點,能夠進一步深刻查找咱們評分人數較高的電影之間的相關性。

一樣,下面的柱狀圖顯示了每種流派電影的評分人的性別比較。這顯示了男女觀影時對不一樣流派電影的偏好。

從下面的相關矩陣(熱圖)中,咱們能夠說出觀影人職業和電影流派之間的關係。例如:農民不喜歡觀看懸疑片,而大學生更喜歡偵探片或紀錄片。

下圖顯示了某特定年份每週用戶對不一樣流派電影的平均評分趨勢。從圖表中能夠看出,紀錄片和犯罪電影是人們的最愛,而兒童電影的平均評分老是最低的。

Apache Kylin Python SQL 趨勢線圖

下面的兩個散點圖用於並排比較,以推斷男性和女性的評級之間的相關性。

左圖:散點圖顯示男性和女性(全部電影)的平均評分呈線性增加趨勢,圖中高度集中的部分均勻分佈在參考線的兩側,這代表除了少數電影收視率,男性和女性觀影偏好趨同。

右圖:散點圖是經過僅隔離評級超過 400 次的電影而產生的。在這種狀況下,咱們也能夠看到男性和女性的評分類似,這代表咱們的初步推論是準確的

 

在 Apache Kylin 上開始使用 Python

咱們討論了 Python 如何使用 Kylinpy 庫輕鬆地與 Apache Kylin 的 OLAP 技術集成,而 Kylinpy 庫又用於在咱們的示例電影數據集上運行高級分析。咱們還使用 Pandas,Matplotlib 和 Seaborn 庫來操做和可視化 Apache Kylin 多維數據集中的數據。

這樣的分析讓咱們深刻了解人們對不一樣電影類型的喜愛隨着時間的推移而變化。它還告訴咱們不一樣電影類型變化趨勢之間的關聯度。像這樣的看法可能對電影評論家有用。

若是您或您的團隊在訪問大量數據集時遇到問題,並但願利用 Kylin 的大數據 OLAP 方法進行機器學習或數據科學操做,那麼 Apache Kylin(及其相關企業大數據平臺 Kyligence)將爲您提供幫助。

瞭解更多大數據資訊,點擊進入Kyligence官網

相關文章
相關標籤/搜索