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
Sur la page Dimensional Modeling, double-cliquez sur le nom de la table cible dans l'arborescence.
-
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 |
|
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 :
|
|
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 :
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 :
|
|
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 |