Tous les produits
Search
Centre de documentation

DataWorks:Modélisation en mode Script

Dernière mise à jour :Aug 10, 2026

Après avoir créé une table de données, utilisez des instructions FML en mode Script pour configurer ses champs et ses partitions.

Introduction

Le FML (Fast Modeling Language) est un langage semblable au SQL qui permet de créer rapidement des tables de données pour la modélisation dimensionnelle. Sa syntaxe s'appuie sur le SQL standard. Dans DataWorks, la modélisation des données dissocie la conception d'une table logique de son implémentation. Vous pouvez ainsi concevoir votre modèle sans tenir compte des spécificités du moteur Big Data sous-jacent. Le moteur de modélisation utilise le schéma défini dans le FML pour piloter les opérations sur le moteur. Pour matérialiser une table logique en une table physique, le moteur de modélisation convertit le FML dans le dialecte SQL spécifique du moteur cible, puis exécute les instructions.

Prérequis

DataWorks ne prend pas actuellement en charge la création de tables de données à l'aide du FML. Vous devez d'abord créer une table logique via l'interface visuelle. Pour plus d'informations, consultez les rubriques suivantes :

Limitations

  • DataWorks ne permet ni de créer des tables de données ni de modifier les noms de table à l'aide d'instructions FML. Vous pouvez uniquement modifier des tables de données existantes, par exemple en éditant les champs de table, en configurant des associations ou en définissant des partitions.

  • Les instructions FML permettent de matérialiser des tables de données uniquement vers les moteurs MaxCompute, Hologres ou Hive.

  • Le FML utilise des mots-clés SQL comme mots réservés. Si le nom de votre table ou d'une colonne correspond à un mot réservé, vous devez l'encadrer avec des accents graves () pour l'échapper. Sinon, une erreur se produit lors de la création de la table.

Accéder à l'éditeur FML

  1. Sur la page Dimensional Modeling, double-cliquez sur le nom de la table cible dans l'arborescence.

  2. Sur la page Table Details, cliquez sur Script Mode.

    Dans l'éditeur FML de l'onglet Script Mode, vous pouvez consulter l'instruction FML utilisée pour créer la table actuelle. Vous pouvez également configurer ou modifier les champs de la table. Pour plus d'informations, consultez la section Configurer une table de données cible.

    -- After a model is published to a physical table, the table name cannot be modified. This applies during pre-approval, publishing, and post-publishing stages.
    CREATE DIM TABLE dim_ec_pub_staff_df ALIAS 'Geographic administrative region dimension table'
    (
        id           ALIAS 'Administrative region ID' STRING COMMENT 'Administrative region ID',
        name         ALIAS 'Administrative region name' STRING COMMENT 'Administrative region name',
        `level`      ALIAS 'Administrative region level. 1: Country; 2: Province/Autonomous Region/Municipality; 3: City; 4: District/County' INT COMMENT 'Administrative region level. 1: Country; 2: Province/Autonomous Region/Municipality; 3: City; 4: District/County',
        country_id   ALIAS 'Country ID' STRING COMMENT 'Country ID',
        country_name ALIAS 'Country name' STRING COMMENT 'Country name',
        province_id  ALIAS 'Province/Autonomous Region/Municipality ID' STRING COMMENT 'Province/Autonomous Region/Municipality ID',
        province_name ALIAS 'Province/Autonomous Region/Municipality name' STRING COMMENT 'Province/Autonomous Region/Municipality name',
        city_id      ALIAS 'City ID' STRING COMMENT 'City ID',
        city_name    ALIAS 'City name' STRING COMMENT 'City name',
        district_id  ALIAS 'District/County ID' STRING COMMENT 'District/County ID',
        district_name ALIAS 'District/County name' STRING COMMENT 'District/County name',
        ds           ALIAS 'Business date, yyyymmdd' STRING COMMENT 'Business date, yyyymmdd'
    )
    COMMENT 'Geographic administrative region dimension table'
    WITH('life cycle'='1000');

Configurer une table de données cible

Par souci de clarté, toutes les instructions de configuration des tables sont présentées au format d'une instruction CREATE TABLE. Toutefois, la fonctionnalité de modélisation des données de DataWorks ne permet pas de créer des tables à l'aide d'instructions FML. En pratique, il vous suffit de vous référer aux instructions qui définissent le contenu de la table, telles que les contraintes et les partitions. Le format d'une instruction FML pour configurer une table cible est le suivant.

--Create a new table
      CREATE <table_type> TABLE
      IF NOT EXISTS
      --Table name
      <table_name> [ALIAS <alias>]
      --Define column attributes
      <col_name> [ALIAS <alias>] <datatype> [<category>] [COMMENT <comment>] [WITH (<key>=<value>,....)]
      --Define constraints
      PRIMARY KEY (<col_name>),
      --Dimension constraint
      CONSTRAINT <constraint_name> DIM KEY (<col_name>) REFERENCES <ref_table_name> (<ref_table_col_name>),
      --Hierarchy constraint
      CONSTRAINT <constraint_name> LEVEL <col_name:(<col_name>)>, --Grouping constraint
      CONSTRAINT <constraint_name> COLUMN_GROUP(<col_name>,...), 
      --Define a comment
      COMMENT 'comment'
      --Define partitions
      PARTITION BY (col DATATYPE COMMENT 'comment' WITH ('key'='value',...), ...)
      --Define properties
      WITH ('key'='value', 'key1'='value1', ...)
      ;
tableType
    : dimDetailType? DIM
    | factDetailType? FACT
    | CODE
    | DWS
    ;
 dimDetailType
    : NORMAL
    | LEVEL
    | ENUM
    ;
 factDetailType
    : TRANSACTION
    | AGGREGATE
    | PERIODIC_SNAPSHOT
    | ACCUMULATING_SNAPSHOT
    | CONSOLIDATED
   ;
comment 
    : COMMENT 'comment'
    ;
              

Paramètre

Description

tableName

Nom de la table de données. Il ne doit contenir que des lettres, des chiffres et des traits de soulignement (_), et sa longueur ne doit pas dépasser 128 caractères.

if not exists

Si une table portant le même nom existe déjà dans le moteur cible, l'instruction CREATE TABLE génère une erreur si vous ne spécifiez pas if not exists. Si vous spécifiez if not exists, l'instruction aboutit, qu'une table homonyme existe ou non.

alias

Alias facultatif pour une table de données ou une colonne, généralement utilisé comme nom d'affichage.

tableType

Type de table à créer. Les instructions FML permettent de créer les types de tables suivants :

  • Table de dimension

    • Table de dimension courante (NORMAL) : type par défaut lors de la création d'une table de dimension.

    • Table de dimension hiérarchique (LEVEL) : stocke des données présentant des relations hiérarchiques, telles que les provinces, les villes et les districts.

    • Table de dimension d'énumération (ENUM) : stocke des valeurs énumérables courantes, telles que masculin et féminin.

  • Table de faits

    • Table de faits transactionnels (TRANSACTION) : type par défaut lors de la création d'une table de faits. Elle enregistre les faits au niveau transactionnel et stocke les données les plus atomiques.

    • Table de faits d'instantané périodique (PERIODIC_SNAPSHOT) : stocke des enregistrements de faits réguliers et prévisibles dans le temps. Elle agrège les mesures sur un intervalle spécifique, tel que l'année en cours ou depuis le début. Les données de cette table sont généralement mises à jour de manière incrémentielle.

    • Table de faits d'instantané cumulatif (ACCUMULATING_SNAPSHOT) : stocke des instantanés de transactions pour suivre les données tout au long d'un cycle de vie dont la durée est imprévisible.

  • Table DWS : table d'agrégation logique utilisée pour fusionner des métriques spécifiques. Sa syntaxe de définition est similaire à celle des tables de dimension et de faits.

  • Table de référence : également appelée table de code, elle stocke les codes d'attributs normalisés propres à un secteur d'activité. Par exemple, un service public peut utiliser une table de référence pour normaliser les codes des types de contrats de fourniture d'électricité.

comment

Commentaire de la table, avec une longueur maximale recommandée de 1 024 caractères.

columnDefinition

Définition d'une colonne de table. Elle peut inclure les paramètres suivants :

  • col_name : nom de la colonne. Il peut contenir des lettres, des chiffres et des traits de soulignement (_). Si le nom de la colonne est un mot réservé du FML, vous devez l'encadrer avec des accents graves (``).

  • alias : alias facultatif pour la colonne, généralement utilisé comme nom d'affichage.

  • dataType : type de données. Le FML prend en charge des types de données tels que BIGINT, STRING, VARCHAR, CHAR, DECIMAL et DATETIME.

  • category : catégorie de la colonne. Dans la modélisation dimensionnelle, une colonne peut être un attribut (ATTRIBUTE), une mesure (MEASUREMENT) ou une corrélation (CORRELATION).

Remarque

Étant donné que le FML permet de concevoir des tables avant leur matérialisation, vous pouvez créer une table sans définir de colonnes.

constraint

Définit les contraintes appliquées à la structure de la table. Les valeurs valides sont :

  • Contrainte de clé primaire (PrimaryConstraint) : le format est PRIMARY KEY(col1, col2). Les colonnes col1, col2 doivent être des champs définis précédemment.

  • Contrainte de dimension (DimConstraint) : le format est DIM KEY(col1, col2) REFERENCES table_name(ref1, ref2).

  • Contrainte hiérarchique (LevelConstraint) : prend effet uniquement dans une table de dimension hiérarchique. Elle définit les niveaux au sein de la hiérarchie.

Partitioned BY

Crée des partitions de table.

WITH

Lors de la création d'une table, vous pouvez spécifier des informations personnalisées au format key=value. La clé et la valeur doivent être entourées de guillemets simples pour éviter les conflits avec les mots-clés FML. Les propriétés étendues de la clause WITH sont analysées par le moteur qui matérialise l'instruction FML.