Maison > développement back-end > Tutoriel Python > Polars Delta Lake : fonction Azure par rapport à un ordinateur portable sur les petites données

Polars Delta Lake : fonction Azure par rapport à un ordinateur portable sur les petites données

Susan Sarandon
Libérer: 2025-01-06 06:14:42
original
945 Les gens l'ont consulté

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

Vous êtes-vous déjà demandé comment les performances de Polars Deltalake sur Azure se comparent à celles d'un ordinateur portable grand public ?
Non? Eh bien, je l'ai fait. Si j'ai éveillé votre curiosité, continuez à lire.

Voici les prétendants

  1. EliteBook 840 G10, AMD Ryzen 7840U, 8 cœurs, 16 threads, 64 Go de RAM
  2. Azure Function exécuté sur un plan de service d'application Linux B3 SKU (4 cœurs, 7 Go de RAM)
    • avec stockage ADLS2 standard
    • avec stockage ADLS2 premium

Voir Tarifs pour une liste complète des forfaits de services d'application disponibles.

Configuration des tests

Le test mesure trois scénarios

  1. créer une table delta
  2. écrire dans la table delta
  3. lire à partir de la table delta

Le code est exécuté via les points de terminaison de l'API REST :

  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

Sur le HP EliteBook, j'ai utilisé func start pour lancer https://localhost:7071.
Pour publier sur Azure I, suivez les instructions de https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python
mettre en place l’environnement de développement nécessaire. Cela m'a permis de publier la fonction via
func azure functionapp publie function-hekori-learning-002.

J'ai utilisé Terraform pour configurer les ressources Azure dans la région Europe du Nord.

Voici un extrait de code montrant le code exécuté lors de la visite de 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
    )

Copier après la connexion

Résultats des tests

Comme on peut le constater, le HP EliteBook est environ un ordre de grandeur plus rapide dans tous les scénarios.

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

Interprétation

C'est mon interprétation personnelle

  1. Les timings de la fonction Azure sont suffisants pour les tâches synchrones. Par exemple, à utiliser dans les requêtes POST où le client attend une réponse dans < 2 secondes.
  2. Si vous disposez de petites données et souhaitez obtenir les meilleures performances, vous devriez envisager d'exécuter Polars sur du métal nu ou une machine virtuelle avec une faible latence d'E/S.

Veuillez noter que la table delta a une petite taille de 3 commits et 2 fichiers parquet. C'est-à-dire que le moteur d'exécution mesure efficacement la surcharge d'accès aux fichiers depuis l'unité de calcul.

Si vous ❤️ cet article et que vous souhaitez voir plus de résultats de référence avec des ensembles de données plus importants pour le traitement hors noyau, donnez à cet article un ?
et t'abonner ? sur ma chaîne ???.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal