For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/developers-python-sdk-quick-start-dataset.md.

Action Custom avec des tables du Lakehouse Manager

Voir en Markdown

Ce court exemple montre comment extraire des données d'une table dans le Lakehouse Manager, les transformer puis les insérer ou mettre à jour le Lakehouse Manager

Objectif

Ce court exemple montre comment extraire des données d'une table dans le Lakehouse Manager, les transformer puis les insérer ou mettre à jour le Lakehouse Manager.

Le code est écrit dans le contexte d'une action Custom et utilise la table stations_rides du tutoriel de démarrage. Si vous avez suivi ce tutoriel, vous pouvez simplement copier-coller le code ci-dessous pour le tester, sinon vous devez l'adapter à vos tables et sources de données.

Info

N'oubliez pas de construire la table que vous utilisez dans le DM puis de la charger avec une action Load DPE. Vous devez charger votre table avant d'utiliser le code ci-dessous, sinon cela ne fonctionnera pas.

import sys
import pandas as pd
import logging

from forepaas.dwh import connect
from forepaas.dwh import bulk_insert

logger = logging.getLogger(__name__)
def customfunc(event):
    try:
        logger.notice("Begin function")

        # établit la connexion au dataset par défaut
        cn = connect("dwh/default_dataset/")

        # option 1 : extrait les données de la table sans SQL requis
        df = cn.select("stations_rides")

        # option 2 : extrait les données avec du SQL personnalisé
        df = cn.query("SELECT station_id, date, rides, station_name FROM stations_rides")

        # effectue votre transformation personnalisée dans le dataframe
        df.loc[df["station_name"] == 'Harlem-Lake', "rides"] = 0

        # réinsère votre dataframe dans la table de destination
        stats = bulk_insert(cn, "stations_rides", df) 

        # affiche les statistiques d'insertion (si le SGBD le permet) 
        logger.info(stats)

        # supprime les lignes où le nom de la station est "Davis"
        cn.delete("stations_rides", {"station_name":"Davis"})

        # met à jour les lignes en définissant rides à 0 où station_id=40040
        cn.update("stations_rides", {"rides":0}, {"station_id":40040})

        # une fois terminé, déconnecte cn
        del cn    
        logger.notice("END function")
    except Exception as err: 
        raise Exception("err:{} L:{}".format(err,sys.exc_info()[2].tb_lineno))

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?