Créer un module de produit de données

Pour définir votre propre logique métier et vos propres modèles analytiques, créez un module de produit de données personnalisé. Cela vous permet d'effectuer des calculs sur vos tables de base ou vos produits de données en amont, et de regrouper les résultats dans des ensembles de données déployables.

Prérequis

Nous vous recommandons de créer des modules de produits de données personnalisés dans un espace de noms personnalisé dédié pour une meilleure gestion du cycle de vie. Assurez-vous également que la table source que vous prévoyez d'utiliser existe dans l'ensemble de données de base data foundation.

Créer un module de produit de données

Pour définir un module de produit de données, procédez comme suit :

  • Enregistrez le module de produit de données dans le fichier config/config.yaml en ajoutant l'entrée à la liste data.modules.products :
data:
  # Configuration for data foundation and product modules.
  modules:
    # List of data product modules.
    product:
        # Recommended naming for product_module_id:
        # custom_namespace_data_product_module_type
      - moduleId:  product_module_id
        # Type of the data product (namespaced).
        type:  custom_namespace.data_product_module_type
        # Map of module dependencies.
        dependsOn:
          sapModule: erp
          sapModuleCustNS:  foundation_module_id
        # Reference to the target dataset ID.
        dataTargetId: product_target
        # Whether the module is enabled.
        # enabled: true
        # Whether the foundation is external (does not create target dataset).
        # external: false
        # Custom table settings file, relative to 'config/' file directory
        # Recommended path: '{custom_namespace}/data_product/{data_product_module_type}/table_settings.yaml'
        # If omitted, defaults to '../src/data_modules/{custom_namespace}/data_product/{data_product_module_type}/table_settings.default.yaml'
        # tableSettings: "{custom_namespace}/data_product/{data_product_module_type}/table_settings.yaml"
        
  • Création du fichier par défaut tableSettings (par exemple, src/data_modules/custom_namespace/data_product/data_product_module_type/table_settings.default.yaml).

Ce fichier YAML contrôle les configurations de table, telles que les matérialisations et les détails d'optimisation BigQuery :

common:
  custom_sales_summary:
    materialization_type: "table"
    tags: ["custom", "sales", "reporting"]
    partition_details:
      column: "created_date"
      partition_type: "date"
      time_grain: "day"
    cluster_details:
      columns:
        - "customer_id"
  • Créez un fichier d'annotation.

Le fichier d'annotation tablename.yaml est créé pour chaque artefact de sortie du produit de données (table, vue) et décrit les colonnes et les champs au format YAML. Lors de la compilation, le compilateur recherche automatiquement les annotations dans le dossier annotations/ du produit (par exemple, src/data_modules/custom_namespace/data_product/data_product_module_type/annotations/custom_sales_summary.yaml), puis fusionne ces chaînes directement dans les définitions de schéma Dataform de sortie afin qu'elles soient conservées dans les métadonnées de la table BigQuery.

Un fichier d'annotation src/data_modules/custom_namespace/data_product/data_product_module_type/annotations/tablename.yaml a le format suivant :

description: "Description of the table or view purpose"
fields:
  - name: "customer_id"                     # column name
    description: "Customer identifier"      # column description
  - name: "column2"
    description: "Description of Column 2"
  - name: "column3"
    description: "Description of Column 3"
  • Créez un fichier manifest.yaml dans le dossier de votre produit de données src/data_modules/custom_namespace/data_product/data_product_module_type/, en conservant le type, les tables et les dépendances du module. Le fichier manifeste a le format suivant :

type: sales_performance
builder: sap_product     # Automatically resolves to the global SapProductBuilder fallback
dependencies:
  sapModule:
    type: sap
    supportedVersions:
      - ecc
      - s4

Exemple de module de produit de données

Voici les étapes à suivre pour implémenter le produit de données flights_usd dans l'espace de noms sap_bookingdatamodel de l'exemple de vols flights example :

  • Enregistrez le module de produit de données dans le fichier config/config.yaml en ajoutant l'entrée à la liste data.modules.products :
data:
  modules:
    product:
      - moduleId: sap_bookingdatamodel_flights_usd
        type: sap_bookingdatamodel.flights_usd
        dependsOn:
          sapModule