首頁 > 後端開發 > Python教學 > Polars Delta Lake:小數據方面的 Azure Function 與筆記型電腦

Polars Delta Lake:小數據方面的 Azure Function 與筆記型電腦

Susan Sarandon
發布: 2025-01-06 06:14:42
原創
945 人瀏覽過

Polars   Delta Lake: Azure Function vs. Laptop on Small Data

您是否想知道 Azure 上的 Polars Deltalake 與消費性筆記型電腦的效能相比如何?
不?嗯,我有。如果我激起了您的好奇心,請繼續閱讀。

以下是參賽者

  1. EliteBook 840 G10,AMD Ryzen 7840U,8 核,16 線程,64 GB RAM
  2. 在 Linux B3 SKU 應用服務計畫上執行的 Azure Function(4 核,7 GB RAM)
    • 具有標準 ADLS2 儲存
    • 具有進階 ADLS2 儲存體

請參閱定價以取得可用應用程式服務方案的完整清單。

測試設定

測試測量三種場景

  1. 建立增量表
  2. 寫入增量表
  3. 從增量表讀取

程式碼透過 REST API 端點執行:

  1. polars_azure_create:https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/create
  2. polars_azure_read:https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/read
  3. polars_azure_write:https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/write
  4. polars_local_create:http://localhost:7071/api/polars/local/create
  5. polars_local_read:http://localhost:7071/api/polars/local/read
  6. polars_local_write:http://localhost:7071/api/polars/local/write

在 HP EliteBook 上,我使用 func start 啟動 https://localhost:7071。
若要發佈到 Azure I,請依照 https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python
中的說明進行操作 搭建必要的開發環境。這使我能夠透過
發布該函數 func azure functionapp 發佈 function-hekori-learning-002.

我使用 terraform 在北歐區域設定了 Azure 資源。

這是一個程式碼片段,顯示造訪 https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/read
時執行的程式碼

@app.route(route="polars/azure/read", auth_level=func.AuthLevel.ANONYMOUS)
def polars_azure_read(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Reading from delta table')

    tic = time.time()
    df = pl.read_delta(AZURE_STORAGE_PATH, storage_options=storage_options
                       )

    df = df.sql(
        "select sum(value) as sum, avg(value) as mean, count() as count, name from self group by name order by sum asc"
    )

    toc = time.time()

    logging.info(f"Elapsed time {toc - tic:.2f} seconds")

    return func.HttpResponse(
        "Success from polars." + str(df) + '\n' + "Elapsed time " + str(toc - tic) + " seconds",
        status_code=200
    )

登入後複製

測試結果

如我們所見,HP EliteBook 在所有情況下都快了大約一個數量級。

Polars   Delta Lake: Azure Function vs. Laptop on Small Data

解釋

這是我個人的解讀

  1. Azure Function 計時對於同步任務來說足夠了。例如,用在 POST 請求中,客戶期望在
  2. 如果您的資料量較小且希望獲得最佳效能,您應該考慮在裸機或虛擬機器上執行具有低 IO 延遲的 Polars。

請注意,增量表的大小較小,只有 3 個提交和 2 個 parquet 檔案。即,運行時有效地測量計算單元存取檔案的開銷。

如果您❤️這篇文章,並且想要查看更大數據集的更多基準測試結果以進行核心處理,請給這篇文章一個?
並訂閱?到我的頻道???.

以上是Polars Delta Lake:小數據方面的 Azure Function 與筆記型電腦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板