ホームページ > バックエンド開発 > Python チュートリアル > Polars Delta Lake: 小規模データでの Azure 機能とラップトップの比較

Polars Delta Lake: 小規模データでの Azure 機能とラップトップの比較

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 ストレージ付き

利用可能なアプリ サービス プランの完全なリストについては、「価格」を参照してください。

テストのセットアップ

テストでは 3 つのシナリオが測定されます

  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 はすべてのシナリオでおよそ 1 桁高速です。

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

解釈

これは私の個人的な解釈です

  1. 同期タスクには Azure Function のタイミングで十分です。たとえば、クライアントが < の応答を期待する POST リクエストで使用されます。 2秒。
  2. データが小さく、最高のパフォーマンスが必要な場合は、IO レイテンシーが低いベアメタルまたは仮想マシン上で Polars を実行することを検討してください。

デルタ テーブルのサイズは 3 つのコミットと 2 つの寄木細工ファイルという小さいことに注意してください。つまり、ランタイムは、コンピューティング ユニットからのファイル アクセスのオーバーヘッドを効果的に測定します。

この記事を読んで、コア外処理のための大規模なデータセットを使用したベンチマーク結果をさらに確認したい場合は、この記事に ?
そして購読しますか?私のチャンネルへ???.

以上がPolars Delta Lake: 小規模データでの Azure 機能とラップトップの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート