日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Databricks作为分析平台

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Databricks作为分析平台 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?SPARK+AI SUMMIT 2020中文精華版線上峰會將會帶領大家一起回顧2020年的SPARK又產生了怎樣的最佳實踐,技術上取得了哪些突破,以及周邊的生態發展。本文是阿里巴巴高級技術專家章劍鋒做的相關分享,介紹了YipitData公司基于Databricks平臺搭建的分析平臺。

原視頻鏈接:https://developer.aliyun.com/live/43188

活動鏈接:SPARK中文峰會7月4日(二)|Ray On Spark

Spark等引擎都是作為工具被開發者使用的,而我們使用這些工具的最終目的是搭建合適的平臺提供給業務方。以下是YipitData‘s Platform的相關介紹。

一、為什么要用到平臺 (Why a platform) ?

YipitData是一家咨詢公司,其客戶主要是投資基金以及財富五百強中的一些公司。該公司通過自己的數據產品進行分析,提供給客戶相應的數據分析報告。YipitData的主要產出方式和賺錢方式就是做數據分析,其公司內部有53個數據分析師,卻只有3個數據工程師。數據分析的基礎是數據,所以對于該公司來說大數據分析的平臺是非常重要的。

二、平臺中有什么 (What is in our platform) ?

YipitData公司希望通過他們自己的數據分析平臺能夠讓數據分析師不需要付出太大的成本就完成數據分析的任務,也就是Own The Product,而這個過程主要包括如下圖所示的Data Collection、Data Exploration、ETL Workflows和Report Generation四個階段。

上面我們提到YipitData公司的人員主要包括數據分析師和數據工程師,其中數據分析師來分析數據并且提供基于數據的問題解答和分析報告,數據工程師來給數據分析師提供數據和分析數據的平臺。

Databricks中的一個產品叫做Workspace,簡單來說它就是一個Notebook,你可以在其中寫python、Scala、SQL等語言的代碼,然后交由Databricks平臺去執行并返回結果。YipitData' Platform是基于Databricks平臺來搭建的,簡而言之就是他們對Databricks進行了更深一層的封裝,創建了一個Python Library,更加方便分析師來進行使用。

(一)獲取數據 (Ingesting data)

YipitData公司的數據量是非常大的,有壓縮后大小超過1PB的Parquet,60K的Tables和1.7K的Databases。他們的數據收集使用的是Readypipe,簡單理解就是一個網絡爬蟲,在有了URL之后,將網頁內存download下來然后進行存儲,實現從URLs到Parquet。首先,使用Readypipe對網頁進行爬取,然后以流的方式源源不斷的寫入kinesis Firehose,kinesis Firehose會接著將數據寫入AWS的S3上。在這個階段所存儲的數據都是原始JSON數據,是沒有schema的,這類數據對于數據分析師來說是很難進行使用的。因此,第二步我們要對數據進行一些格式轉換和清理,比較典型的做法是將JSON文件轉換成Bucket,這一步也自帶了壓縮效果。轉換完成之后會有兩個輸出,如下圖所示,一個是元數據,會寫入Glue Metastore,另外一個是數據,會寫入Parquet Bucket中。通過上面的過程,就完成了數據的收集和清理過程,整個過程是非常經典,非常有參考價值的。

另外,因為數據流是實時數據,每隔一段時間就會產生一些JSON文件,屬于小文件,時間久了S3上面會存在非常多的小文件,帶來性能方面的許多問題,于是要對小文件做相應的Merge處理,將小文件匯聚成大文件,這對后續的處理非常有幫助。
YipitData公司所使用的的數據都是第三方數據,他們本身不生產任何數據,而使用第三方數據會面臨一些問題,主要包括如下四類問題:

  • Various File Formats

  • Permissions Challenges

  • Data Lineage

  • Data Refreshes

上面幾類問題是在實際業務中經常遇到的,如果不解決好自然也不能有很好的成果產出。YipitData公司解決上面幾類問題主要是靠Databricks平臺,比如上傳并利用額外的元數據將文件轉為parquet等,如下圖所示。

(二)表實用程序 (Table Utilities)

YipitData's Platform提供了一些table utilities來幫助分析師創建table和管理table。比如下圖所示的create_table函數,可以幫助數據分析師更快速地創建table。


上圖所示的是一個非常典型的Spark Job的場景,通常包括read、processing和write三個模塊。但是對于YipitData公司來說,上面的過程仍然是一個比較繁瑣的過程,因為該公司最重要的任務是進行數據分析,且大多數人員也是數據分析師,如果讓數據分析師使用Spark API去完成上述過程,還是有一定門檻的。對于YipitData公司來說,最好是把一些功能進行封裝,不要暴露太多的底層功能,所以有了上面的create_table函數,大大降低了數據分析師的使用難度。

(三)集群管理 (Cluster Management)

對于數據分析師來說,最后還是要進行計算,就牽涉計算資源的管理,那么YipitData是怎么做的呢?
我們知道,搭建一個Spark集群并不是很難,但是如何搭建一個能夠最優化地解決問題的Spark集群并不是那么容易,因為Spark集群有非常多的配置,而這項工作如果交給數據分析師來做的話就更不簡單了。為了解決易用性的問題,YipitData的工程師參照T-Shirt的Size劃分巧妙地將集群劃分成SMALL、MEDIUM、LARGE三類,如下圖所示,數據分析師在使用的時候雖然少了靈活性,但是節省了很多集群配置的時間,大大的提高了工作效率。背后的原理也是進行更深層次的封裝,將眾多參數設置隱藏起來,數據分析師只需要像選擇T-Shirt的尺寸一樣做選擇即可,而無需關心背后的復雜配置如何實現。


在集群管理方面,Databricks還提供了許多其他的API來對集群的計算資源進行管理,比如可以通過REST API控制集群,對集群做各種各樣的配置,還可以對集群的配置進行動態調整等等,如下圖所示。

(四)ETL Workflow的自動化 (ETL Workflow Automation)

YipitData使用Airflow來實現ETL Workflow的自動化。越來越多的人使用Airflow來管理ETL Workflow,已經逐漸成為ETL的一個標準工具。對于數據工程師來說,Airflow的使用不是很難:首先構建一個DAG,然后去定義其中的TASK,最后定義下這些TASKS的依賴關系即可。但是,終究是要寫一段代碼來實現這個過程,就需要有人來維護,對于大多數員工是數據分析師的YipitData來說就不是那么合適了。因此,YipitData使用Airflow+databricks的API來自動化構建DAGs。具體來說,每個文件夾就代表一個DAG,每個Notebook就代表一個Task,Notebook中指定一些屬性(內部是python腳本),然后通過API來自動化構建DAG文件。通過上面的過程完成整個ETL的自動化,其中用戶只需要指定Notebook中的參數值即可。YipitData自動化創建Workflows的過程如下圖所示,整個流程都是在Databricks平臺上擴展得到的。

三、Q&A

Q1:Databricks和Dataworks都是一站式的數據分析平臺,兩者的區別是什么?
A1:兩者的側重點不一樣。Dataworks綁定在阿里云,而Databricks可以在各個云上使用;Databricks綁定了Spark引擎,而Dataworks可以使用各種引擎;Dataworks在數據治理上更強一些,而Databricks的Spark應用更強一些。

Q2:目前Zeppelin、Jupyter、Databricks產品的分析功能有些類似,他們有什么特別推薦的使用場景嗎?
A2:這幾個產品最大的特點是提供了交互式的編程環境,和傳統的IDE開發不同,他們有著更好的開發效率,尤其是在數據分析和機器學習方面。另外,這類產品也不是只能做交互式開發,也可以用來做ETL。

Zeppelin釘釘群

下面是Zeppelin的釘釘群二維碼,大家后續有任何問題可以加入群來討論。


關鍵詞:Databricks、Spark、Analysis Platform、YipitData

獲取更多 Spark+AI SUMMIT 精彩演講視頻回放和ppt,請向本公眾號后臺發送"0704中文峰會"


對開源大數據和感興趣的同學可以加小編微信(下圖二維碼,備注“進群”)進入技術交流微信群。

Apache Spark技術交流社區公眾號,微信掃一掃關注

總結

以上是生活随笔為你收集整理的使用Databricks作为分析平台的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。