Rumah >pembangunan bahagian belakang >Tutorial Python >Tasik Delta Polars: Fungsi Azure lwn. Komputer riba pada Data Kecil

Tasik Delta Polars: Fungsi Azure lwn. Komputer riba pada Data Kecil

Susan Sarandon
Susan Sarandonasal
2025-01-06 06:14:42963semak imbas

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

Pernahkah anda terfikir bagaimana prestasi Polars Deltalake pada Azure dibandingkan dengan komputer riba gred pengguna?
Tidak? Nah, saya ada. Jika saya telah mencetuskan rasa ingin tahu anda, baca terus.

Berikut ialah pesaing

  1. EliteBook 840 G10, AMD Ryzen 7840U, 8 teras, 16 utas, 64 GB RAM
  2. Fungsi Azure berjalan pada pelan perkhidmatan aplikasi Linux B3 SKU (4 teras, 7 GB RAM)
    • dengan storan ADLS2 standard
    • dengan storan ADLS2 premium

Lihat Harga untuk senarai penuh pelan perkhidmatan apl yang tersedia.

Persediaan Ujian

Ujian mengukur tiga senario

  1. buat jadual delta
  2. tulis ke jadual delta
  3. baca dari jadual delta

Kod dilaksanakan melalui titik akhir REST API:

  1. polar_azure_create: https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/create
  2. polar_azure_read: https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/read
  3. polar_azure_write: https://function-hekori-learning-002.azurewebsites.net/api/polars/azure/write
  4. polar_local_create: http://localhost:7071/api/polars/local/create
  5. polar_local_read: http://localhost:7071/api/polars/local/read
  6. polar_local_write: http://localhost:7071/api/polars/local/write

Pada HP EliteBook saya menggunakan func start untuk melancarkan https://localhost:7071.
Untuk menerbitkan ke Azure I, ikut arahan daripada https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python
untuk menyediakan persekitaran pembangunan yang diperlukan. Ini membenarkan saya menerbitkan fungsi melalui
func azure functionapp menerbitkan function-hekori-learning-002.

Saya menggunakan terraform untuk menyediakan sumber Azure di rantau Eropah Utara.

Berikut ialah coretan kod yang menunjukkan kod yang dilaksanakan semasa melawati 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
    )

Keputusan Ujian

Seperti yang boleh dilihat, HP EliteBook adalah kira-kira satu urutan magnitud lebih pantas dalam semua senario.

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

Tafsiran

Ini adalah tafsiran peribadi saya

  1. Pemasa Fungsi Azure mencukupi untuk tugasan segerak. Cth., untuk digunakan dalam permintaan POST di mana pelanggan mengharapkan respons dalam < 2 saat.
  2. Jika anda mempunyai data yang kecil dan inginkan prestasi terbaik, anda harus mempertimbangkan untuk menjalankan Polar pada logam kosong atau mesin maya dengan kependaman IO yang rendah.

Sila ambil perhatian bahawa jadual delta mempunyai saiz kecil 3 komit dan 2 fail parket. Iaitu, masa jalan dengan berkesan mengukur overhed akses fail daripada unit pengiraan.

Jika anda ❤️ artikel ini dan ingin melihat lebih banyak hasil penanda aras dengan set data yang lebih besar untuk pemprosesan teras, berikan artikel ini ?
dan melanggan? ke saluran saya ???.

Atas ialah kandungan terperinci Tasik Delta Polars: Fungsi Azure lwn. Komputer riba pada Data Kecil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn