數據可重複性和其他數據湖最佳實踐

數據頻繁變化,使得隨著時間的推移追蹤其準確狀態的任務變得困難。通常,人們只維護資料的一種狀態—當前狀態。資料湖最佳實踐需要可再現性,使我們能夠在不同版本的資料之間進行時間旅行,使我們能夠在不同時間和不同形式的變更中獲得資料快照。我們可以建立分支並在相同的輸入資料上測試新版本。在本文中,我們分享如何使用 LakeFS 實現可重複的數據,並深入探討資料湖最佳實踐的兩個具體範例:

使用 Airflow 和 LakeFS 建立可重複的資料管道

使用 Kubeflow 和 LakeFS 建立可重複的實驗
可重複資料的好處
在處理大量資料時,頻繁的資料變更是必要的,但可能會對工作產生負面影響,因為它變得很難:

調試資料問題

驗證機器學習訓練的準確性(在不同的資料上重新運行模型會得到不同的結果)
遵守資料審核
向資料公開類似 Git 的介面不僅可 荷蘭 WhatsApp 號碼數據 以追蹤資料的當前狀態。它支援對大型資料集進行分支或提交等操作。結果是可重複、原子和版本化的資料湖操作,從而實現更好的資料可管理性。

如何使用 LakeFS 實現可重複的資料?

為了使資料可重現,我們建議每次 LakeFS 儲存庫中的資料發生變更時,都對 LakeFS 儲存庫進行新的提交。只要進行了提交,重現給定狀態的過程就像從包含為每次提交生成的唯一 commit_id 的路徑讀取資料一樣簡單。

要讀取目前狀態的數據,我們可以使用包含儲存庫和分支名稱的靜態路徑。例如,如果您有一個名為 example 的儲存庫,其中有一個名為 main 的分支,則始終將該資料的最新狀態讀入 Spark Dataframe:

WhatsApp數據

注意: 上面的程式碼假設該路徑

下的儲存庫中的所有 理想實驗室工作室 人們對我們的播 物件都以 parquet 格式儲存。如果使用不同的格式,則應使用適用的 Spark 讀取方法。

在lakeFS儲存庫中,我們能夠對資料進行多次提交,使許多時間點可重現。

在上面的儲存庫中,每次執行模

型訓練腳本時都會進行一次新的提交,並且提交訊息包括特定的運行編號。

如果我們想要重新運行模型訓 台灣新聞 練腳本並為歷史運行重現完全相同的結果(例如運,我們可以複製與運行關聯的提交 ID 並將資料讀入資料幀,如下所示:

在程式碼中引用特定 commit_id 的能

力簡化了再現資料集合甚至多個集合的特定狀態。這在資料開發中具有許多常見的應用,例如歷史調試、識別資料收集中的增量、審計合規性等等。

使用 Airflow 和 LakeFS 建立可重複的資料管道

為了使用 LakeFS 來運行 Airflow,我們需要處理兩個方面:

透過lakeFS存取和插入數據

由於lakeFS支援AWS S3 API,因此它可以與所有在S3之上工作的運算無縫協作。

LakeFS 文件包含有關如何將 LakeFS 與AWS CLI、Spark、Presto等結合使用的說明和範例。

返回頂端