Todos os produtos
Search
Central de documentação

DataWorks:Modelagem no Script Mode

Última atualização: Jun 27, 2026

Após criar uma tabela de dados, utilize instruções FML no Script Mode para configurar seus campos e partições.

Introdução

A FML (fast modeling language) é uma linguagem semelhante ao SQL que auxilia na construção rápida de tabelas de dados para modelagem dimensional. Sua sintaxe baseia-se no SQL padrão. No DataWorks, a modelagem de dados desacopla o projeto da tabela lógica de sua implementação física. Isso permite projetar o modelo sem considerar as especificidades do mecanismo de big data subjacente. O mecanismo de modelagem utiliza o esquema definido em FML para orientar as operações no engine. Para materializar uma tabela lógica em uma tabela física, o mecanismo converte o FML para o dialeto SQL específico do engine de destino e, em seguida, executa as instruções.

Pré-requisitos

Atualmente, o DataWorks não oferece suporte à criação de tabelas de dados via FML. É necessário primeiro criar uma tabela lógica na interface visual. Para mais informações, consulte os seguintes tópicos:

Limitações

  • O DataWorks não suporta a criação de tabelas de dados ou a modificação de nomes de tabelas por meio de instruções FML. Apenas a edição de tabelas existentes é permitida, como a alteração de campos, configuração de associações ou definição de partições.

  • Instruções FML podem ser usadas para materializar tabelas de dados apenas nos engines MaxCompute, Hologres ou Hive.

  • A FML utiliza palavras-chave SQL como termos reservados. Caso o nome da tabela ou de uma coluna seja uma palavra reservada, envolva-o em crases () para escapá-lo. Caso contrário, ocorrerá um erro durante a criação da tabela.

Acessar o editor FML

  1. Na página Dimensional Modeling, clique duas vezes no nome da tabela desejada na árvore de diretórios.

  2. Na página Table Details, clique em Script Mode.

    No editor FML da aba Script Mode, é possível visualizar a instrução FML usada para criar a tabela atual. Também é permitido configurar ou modificar os campos da tabela. Para mais detalhes, consulte Configurar uma tabela de dados de destino.

    -- 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');

Configurar uma tabela de dados de destino

Para facilitar o entendimento, todas as instruções de configuração de tabelas são apresentadas no formato de uma declaração CREATE TABLE. No entanto, o recurso de modelagem de dados do DataWorks não suporta a criação de tabelas usando instruções FML. Na prática, basta referenciar as instruções que definem o conteúdo da tabela, como restrições e partições. O formato de uma instrução FML para configurar uma tabela de destino é o seguinte:

--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'
    ;
              

Parâmetro

Descrição

tableName

Nome da tabela de dados. Deve conter apenas letras, dígitos e sublinhados (_), com limite máximo de 128 caracteres.

if not exists

Se já existir uma tabela com o mesmo nome no engine de destino, a instrução CREATE TABLE retornará um erro caso if not exists não seja especificado. Ao incluir if not exists, a instrução será executada com sucesso independentemente da existência prévia de uma tabela homônima.

alias

Alias opcional para uma tabela de dados ou coluna, geralmente utilizado como nome de exibição.

tableType

Tipo da tabela a ser criada. Instruções FML permitem criar os seguintes tipos:

  • Tabela de dimensão

    • Tabela de dimensão comum (NORMAL): tipo padrão ao criar uma tabela de dimensão.

    • Tabela de dimensão hierárquica (LEVEL): armazena dados com relacionamentos hierárquicos, como estados, cidades e bairros.

    • Tabela de dimensão de enumeração (ENUM): guarda valores enumeráveis comuns, como masculino e feminino.

  • Tabela fato

    • Tabela fato transacional (TRANSACTION): tipo padrão na criação de tabelas fato. Registra fatos no nível de transação e armazena os dados mais atômicos.

    • Tabela fato de snapshot periódico (PERIODIC_SNAPSHOT): armazena registros de fatos regulares e previsíveis ao longo do tempo. Agrega medições em intervalos específicos, como acumulado anual ou histórico completo. Os dados nesta tabela costumam ser atualizados incrementalmente.

    • Tabela fato de snapshot acumulativo (ACCUMULATING_SNAPSHOT): guarda snapshots de transações para rastrear dados ao longo de um ciclo de vida de duração imprevisível.

  • Tabela DWS: tabela agregada lógica usada para unificar métricas específicas. Sua sintaxe de definição assemelha-se à das tabelas de dimensão e fato.

  • Tabela de consulta: também conhecida como tabela de códigos, armazena códigos para atributos padronizados e específicos do setor. Por exemplo, uma concessionária pode usar essa tabela para padronizar códigos de tipos de contrato de fornecimento de energia.

comment

Comentário da tabela. Recomenda-se um comprimento máximo de 1.024 caracteres.

columnDefinition

Definição de uma coluna da tabela. Pode incluir os seguintes parâmetros:

  • col_name: nome da coluna. Pode conter letras, dígitos e sublinhados (_). Se o nome for uma palavra reservada da FML, envolva-o em crases (``).

  • alias: alias opcional para a coluna, geralmente usado como nome de exibição.

  • dataType: tipo de dado. A FML suporta tipos como BIGINT, STRING, VARCHAR, CHAR, DECIMAL e DATETIME.

  • category: categoria da coluna. Na modelagem dimensional, uma coluna pode ser um atributo (ATTRIBUTE), uma medida (MEASUREMENT) ou uma correlação (CORRELATION).

Nota

Como a FML permite projetar tabelas antes de materializá-las, é possível criar uma tabela sem definir nenhuma coluna.

constraint

Define restrições na estrutura da tabela. Valores válidos:

  • Restrição de chave primária (PrimaryConstraint): formato PRIMARY KEY(col1, col2). As colunas col1, col2 devem ser campos previamente definidos.

  • Restrição de dimensão (DimConstraint): formato DIM KEY(col1, col2) REFERENCES table_name(ref1, ref2).

  • Restrição de hierarquia (LevelConstraint): aplica-se apenas em tabelas de dimensão hierárquica. Define os níveis dentro da hierarquia.

Partitioned BY

Cria partições na tabela.

WITH

Ao criar uma tabela, especifique informações personalizadas no formato key=value. A key e o value devem estar entre aspas simples para evitar conflitos com palavras-chave da FML. As propriedades estendidas na cláusula WITH são interpretadas pelo engine que materializa a instrução FML.