Databricks 是什麼?提供什麼工具?
Databricks 是誰?他提供什麼服務?
Databricks 是由 Apache Spark 的開發者創立的公司,核心產品 Databricks Lakehouse 平台構建在 Spark 的基礎上。Databricks 將 Spark 進行擴展跟優化,並將雲服務、數據管理、數據工程、數據科學,都整合到一個統一的數據分析平台中。
這個平台讓「大型企業」能夠在一個地方存儲跟處理「大量的」結構化跟非結構化數據。以 Databricks 提供的工具,他解決的問題包括:
- 數據儲存:通常 Data warehouse 解決「結構化數據」,Data Lake 解決「非結構化數據」,而 Databricks 希望兩者都能一起處理~(延伸閱讀:What Is a Lakehouse?)
- 數據治理
- 即時的數據分析
- 通過以上的基礎搭建,整合資料工程 (Databricks Workflows) & 資料科學 (Databricks Machine Learning) 的工作流跟模型!
一直以來,數據團隊多半面臨的問題就是數據儲存 (資料工程師處理數據流) 跟數據應用 (數據分析師或是前端部門使用數據解決問題) 在各種不同地方操作,導致 csv 到處載到處丟,數據安全也很難控管 XD 這種 Data Center 的整合工具確實會讓數據分析師、數據工程師、數據科學家、商業分析師,甚至是前端部門,可以在一個統一的平台上一起工作,簡化數據處理跟分析的過程,加速所謂的「用數據驅動決策」這一步,而不只是紙上談兵!!
為什麼需要 Databricks 的服務?
當企業真的在各個部門要落實好好用數據監控、做決定,依賴度越來越高時,數據工程團隊也會面臨很多挑戰。
比方說:
- 數據管道 (來源) 很雜
- 數據量變多、結構化跟非結構化可能會需要交叉使用
- 或是有「即時數據處理」的需求等等
如果沒有有效的平台,那數據工程團隊真的會頭很痛 XD 也不是說不能解決,或許還是能夠用土法煉鋼的方式寫 pipeline、建立自動化程序等,但穩定度相對來說就低、維護成本可能也會提升 (過度仰賴某些懂的人)。而且當這些基礎架設倒了,全公司可能就會陷入無數據可看的境地,相當麻煩~
Databricks 的 Lakehouse 平台通過自動化數據管道的構建解決了這些問題,「降低數據工程的難度跟難處」(也可以理解為買其他人開發好的 tools,我們只要專注維護 & 應用數據)。
Big book of Data Engineering 總結:資料人的技術困境
以下會把我在 Databricks 上看到最新的電子書【Big book of Data Engineering】做總結,如果對於資料工程的下一步要何去何從,可以參考我總結出的 Databricks 聲明的幾個方向!
Databricks 如何解決資料工程碰到的問題?
資料分析師 (或是沒碰過過度複雜數據狀況的資料工程師) 可能會面臨的主要挑戰包括:數據處理的複雜性變高、數據平台的變化 (有寫 code 的門檻) 等等。以下簡述一下這些困難可以如何解決?
- 大規模資料擷取:Databricks 支持自動演進模式來大規模攝取資料。無論是來自文件還是流式來源 (如 Kafka、DBMS 和 NoSQL),都能夠增量且高效處理資料。系統可以推斷資料結構跟檢測列變化,自動追蹤資料需要進行的處理,降低人工干預!
- 簡化 ETL:Databricks 簡化了 ETL(Extract, Transform, Load)過程。除此之外,使用視覺化工具追蹤資料管道的運行情況 (詳細的日誌、指標和儀表板,以便監控和診斷管道問題),還有自動化資料管道的部署跟運營,減少手動干預。使用 CI/CD 流程來管理資料管道的版本控制和部署。除此之外,資料搬移跟數據治理也包含在內!
- 即時資料:Databricks 允許資料工程師在不需要了解複雜流處理的情況下,調整資料延遲跟「成本控制」(即時資料是很吃算力,很貴的 XD)
- 多工具的協作:支援多種非互動任務作為有向無環圖 (DAG) 在 Databricks 計算集群上運行。使用 Databricks Workflows 可以在 DAG 中協調任何類型的任務(SQL、Python、JARs、Notebooks),無需維護或支付外部服務
- 資料安全、質量:Databricks 在管道內定義資料質量和 完整性控制,並通過預定義的策略 (失敗、丟棄、警報、隔離) 處理資料質量錯誤,捕獲、跟蹤和報告整個資料管道的資料質量指標。除此之外,還有提供內置的容錯和自動恢復功能,確保資料管道的穩定運行。當出現故障時,系統會自動重試和恢復資料管道,最大限度地減少停機時間和資料丟失
Big book of Data Engineering:工具包的案例對數據分析師超實用!!
以下會分享實用的案例包,我覺得對這兩種人會很有幫助!!!
- 「轉職者」怎麼參考大公司的設計來處理一般公司碰到的數據問題!
- 「公司沒有資源採買這種 Data Center」但是希望可以學習「框架」來套用到現有工作上!!!
如果買不起夢想工具,還可以怎麼做?三個超實用工具包!Pandas vS Pyspark
裡面有一些心法還是很值得學的,比如說,資料處理大家最愛用的 pandas,但對於巨量資料來說其實跑得非常慢 (可以跑跑看億級別以上的數據量,就可以明顯感受到),但如果使用 pyspark,就會加速很多!(以下引用以下的數據)
- Arithmetic operation from 8,000 calls to 8 calls
- Total function calls from 2,898,160 calls to 2,384 calls
- Total execution time from 2.300 seconds to 0.004 seconds
工具包案例推薦:智慧產線 (智慧工廠) 的數據工程 & 數據分析怎麼做?
- 怎麼定義產線指標?
- OEE (Overall Equipment Effectiveness):OEE 是衡量製造生產力的標準,通過以下三個面向來計算:可用性、性能、良品率
- 產線數據 → 定義指標 → 做成即時追蹤視覺化指標 (框架可以看這裡)
工具包案例推薦:即時庫存估算的數據工程 & 數據分析怎麼做?
- 即時庫存的流程怎麼設計?
- 多個電商系統 + 多個線下 POS 機的庫存整併後,達成即時庫存估算
- 多個電商系統 + 多個線下 POS 機的庫存整併 → 反應原有庫存的消耗 → 算出即時庫存 (框架可以看這裡)
工具包案例推薦:個人化推薦系統的數據工程 & 數據分析怎麼做?
- 個人化推薦系統是什麼?有哪三種方法?進階方法?
- 個人化推薦系統是一種利用數據分析和機器學習技術,根據用戶的行為、興趣和偏好,向其推薦可能感興趣的產品或服務的系統。這種系統能夠提升用戶體驗跟轉化率,特別是在電商 (EC)、影音媒體 (Netflix) 和社交媒體 (social media) 等領域應用
- 內容為基礎的推薦 (Content-based Recommendations):新用戶或新產品沒有足夠數據時,利用產品本身的屬性 (如描述、標籤等) 來進行推薦
- 基於圖像的推薦 (Image-based Recommendations):基於相似度的圖像推薦系統,考慮物品之間的視覺相似性來進行產品推薦,特別適合電商平台上的服裝、家具等商品。簡單來說,可以用「以圖搜圖」來理解!
- 基於市場的推薦 (Market-based Recommendations):利用產品之間的關聯性 (如經常一起購買的商品),來推薦額外的產品,提升交叉銷售效果
- 比較困難的方法還有:Wide-and-Deep Recommendations、矩陣分解 (ALS) 推薦 (Matrix Factorization Recommendations)、使用大型語言模型 (LLMs) 開發基於「語言常識」連接的新產品推薦系統!
- 針對不同的推薦系統架製,這裡有可以參考的框架 (框架可以看這裡)
這次我看完 Databricks 的資料工程白皮書,最有收穫的就是他們給出工具包的案例!!而且這些案例都特別接地氣!(是很多數據團隊的痛點)
總結:雲端數據中台讓數據團隊、前端部門、後端 IT 都更有歡喜、更有效率?
為什麼數據團隊成為孤島?
數據團隊之所以成為孤島,主要是因為以下幾個原因:
- 數據孤立:數據團隊通常會管理大量的數據資源,但這些數據往往分散在不同的系統和部門中,難以整合和共享,導致數據孤立現象嚴重。
- 溝通不暢:數據團隊和其他業務部門之間缺乏有效的溝通和協作平台,數據需求和分析結果難以及時傳遞和反饋,造成了數據團隊和業務部門之間的隔閡。
- 技術壁壘:數據分析和處理涉及複雜的技術,非技術部門往往難以理解和應用數據分析結果,這進一步加劇了數據團隊的孤立狀態。
- 資源限制:數據團隊通常資源有限,無法滿足所有部門的數據需求,優先級的差異也會導致數據團隊和其他部門的目標不一致。
怎麼讓數據真正能夠落地,甚至幫助數位轉型?
現在的工作跟面試,主管也會越來越在意我們是否能夠真的讓數據落地,幫助公司數位轉型。根據這個發展方向,可以考慮這些策略:
- 建設雲端數據中台 (Data Center)
- 把各系統和部門的數據集中到一個雲平台上,方便管理和共享
- 利用雲端計算快速分析數據,提供即時的業務洞見
- 促進跨部門協作 & 集體數據素養
- 開展培訓 (多為數據團隊內部幫忙訓練),提高業務部門理解和使用數據的能力
- 培養數據驅動的企業文化,強調數據在決策中的重要性
- 技術更新
- 建立自動化的數據流程,減少人工干預和錯誤
- 模型跟算法的不斷演進~
- 不要忘記初衷:數據是為了解決問題
- 需求對接:了解業務部門需求,將數據分析與實際業務緊密結合
- 持續改進:根據業務需求變化,不斷調整和優化數據分析方法
不論是專案、面試都應該更貼近「現在這時代的需求」,讓自己的經歷跟案例更接地氣 XD (才能敲到面試官的痛點)~