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-segmentation.md.

Utiliser la segmentation (et le périmètre) dans une action Custom

Voir en Markdown

Dans une action Custom, vous pouvez bénéficier pleinement du système de segmentation et même aller plus loin

Objectif

Dans une action Custom, vous pouvez bénéficier pleinement du système de segmentation et même aller plus loin :

  • paralléliser le calcul de votre algorithme complexe
  • paralléliser le chargement de données Custom volumineuses
  • etc..

Vous pouvez définir le type et les valeurs de segmentation comme vous le feriez pour d'autres types d'action compatibles, via l'interface, ou via le mode avancé JSON. Pour plus d'informations, veuillez consulter la page de documentation sur la segmentation

Ici, vous apprendrez comment récupérer la configuration et les valeurs de segmentation dans votre script Python Custom, afin de l'appliquer comme vous le souhaitez.
Voyons un exemple où vous définissez une segmentation sur un ensemble de valeurs, et appliquez un filtre sur la source.

import sys
from logging import getLogger

from forepaas.core.settings import PARAMS
from forepaas.dwh import connect
from forepaas.dwh import bulk_insert

logger = logging.getLogger(__name__)

def my_custom(event):
	try:
		# récupère les paramètres de segmentation et de périmètre
		segmentation = PARAMS.get("segmentation",{})
		segmentationValues = PARAMS.get("segmentation",{}).get("values")
		perimeter = PARAMS.get("perimeter",{})
		perimeterValues = PARAMS.get("perimeter",{}).get("values")

		# définit un dict de filtres selon la configuration de segmentation et de périmètre
		filters = {}
		if segmentation["type"] in ["workflow_dates", "dwh_attributes", "predefined_set"] and segmentationValues is not None: 
			filters[segmentation["var_name"]] = segmentationValues
		if perimeter["type"] in ["workflow_dates", "dwh_attributes", "predefined_set"] and perimeterValues is not None: 
			filters[perimeter["var_name"]] = perimeterValues

		cn = connect("dwh/default_dataset/")

		# extrait avec les filtres
		df = cn.select(table_name, filters)

		# effectue éventuellement des modifications sur le df 
		# df = df

		# insère dans la destination
		bulk_insert(cn, table_destination, df)

		# ferme la connexion
		del cn
	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é ?