ETL 實作的最佳做法
ETL 設計優良的關鍵在於效能與準確度。效能通常依賴於底層基礎架構,因此擁有一個能夠擴展並跟上負載增加的資料倉儲至關重要。結構式資料通常需要更多時間才能進行轉換,但 FlashArray 的架構是專為大型資料匯入所設計,並確保就地部署的管線能持續快速運行。
始終為規模和未知因素設計 ETL 流程。您最終有可能匯入無法轉換的記錄。任何錯誤都應記錄並儲存,以供進一步審查。這可能意味著您的 ETL 中存在錯誤,或者設計錯失邊緣案例,該案例可透過 ETL 程式碼的變更進行補救。
並非所有 ETL 流程都適用於實體伺服器,因此 Portworx 等解決方案可處理虛擬化和容器化資料庫和分析。容器化服務必須隨著匯入更多資料而擴展,並使用常見的調度工具。Portworx 與調度工具整合,包括 Kubernetes,用於動態且持續更新的管道。
ETL 的挑戰與解決方案
由於資料來源和業務需求不斷變化,負責設計 ETL 的管理員面臨與規模、更新和品質控制相關的挑戰。擴充挑戰通常來自於儲存空間的限制,因此管理員可以透過隨著資料儲存需求增加而擴充的儲存來修復此問題。
業務需求不斷變化的挑戰通常都屬於維護工作。資料來源可能會改變資料儲存的方式,或者開發人員可能會變更應用程式,而需要變更轉換或負載結構。如果沒有來自第三方資料來源的任何文件來提醒管理員,在 ETL 流程中發生錯誤之前,資料儲存或負載要求的變更不會自行出現。記錄和警示有助於管理員及早發現問題,以便變更 ETL 編碼。早期的改變可降低錯誤對業務生產力和營收的影響。
ETL 流程的設計是最困難的任務之一,但當管理人員與利害關係人討論並確保業務規則被納入時,會比較容易。重新設計和重構 ETL 設計可能會延遲部署,並增加不必要的開銷。記錄所有業務規則,以便將每個案例納入 ETL 設計中,以避免重寫過多。
將各種 ETL 流程分開,彼此獨立。此解決方案可確保單一元件故障時,整個 ETL 流程不會發生故障。例如,如果外部 API 損毀,則從所有其他來源擷取的資料仍然會完成,直到 API 再次可用為止。如有需要,也可以建立多個 ETL 排程。如果您使用多個雲端平台,Pure Storage 雲端儲存支援 AWS、Azure、GCP 和其他主要平台。
ETL 與 ELT
值得注意的是,ETL 可能佔用大量資源,並可能導致資料可用性延遲,特別是在處理大型資料集時。如果即時或近乎即時的資料處理是關鍵需求,其他資料整合方法,如變更資料擷取(CDC)或串流資料管道可能更合適。
此外,近年來 ELT(擷取、載入、轉換)已成為 ETL 的熱門替代方案,尤其是在雲端資料環境中,可在目標資料儲存系統內進行資料轉換。ELT 對於某些使用案例可能更具成本效益和可擴充性,但 ETL 和 ELT 的選擇取決於您的特定需求和使用的技術。
結論
設計 ETL 解決方案需要時間,但別忘了建立一個隨著資料儲存的增加而擴展的系統。要解決最簡單的挑戰之一是資料儲存容量,Pure Storage 解決方案專為非結構化和結構化資料的資料倉儲而打造。
其他挑戰可以透過良好的設計標準、文件記錄和品質保證測試來解決。您可能會發現有些工具有助於設計,但 ETL 通常為企業量身訂做。在預備階段環境中測試少量資料,並期望在引進新業務需求時持續維持 ETL 編碼。