All Products
Search
Document Center

DataWorks:Pemodelan dalam Mode Skrip

Last Updated:Jun 21, 2026

Setelah membuat tabel data, gunakan pernyataan FML dalam Mode Skrip untuk mengonfigurasi bidang dan partisinya.

Pendahuluan

FML (Fast Modeling Language) adalah bahasa mirip SQL yang memungkinkan Anda membangun tabel data untuk pemodelan dimensional secara cepat. Sintaksnya berbasis standar SQL. Di DataWorks, pemodelan data memisahkan desain tabel logis dari implementasinya, sehingga Anda dapat merancang model tanpa mempertimbangkan detail mesin data besar yang mendasarinya. Mesin pemodelan menggunakan skema yang didefinisikan dalam FML untuk menjalankan operasi pada mesin tersebut. Untuk merealisasikan tabel logis menjadi tabel fisik, mesin pemodelan mengonversi FML ke dialek SQL spesifik mesin target, lalu mengeksekusi pernyataan tersebut.

Prasyarat

DataWorks saat ini tidak mendukung pembuatan tabel data menggunakan FML. Anda harus terlebih dahulu membuat tabel logis melalui antarmuka visual. Untuk informasi selengkapnya, lihat topik berikut:

Batasan

  • DataWorks tidak mendukung pembuatan tabel data atau modifikasi nama tabel menggunakan pernyataan FML. Anda hanya dapat mengedit tabel data yang sudah ada, misalnya dengan mengubah bidang tabel, mengonfigurasi asosiasi, atau mengatur partisi.

  • Anda hanya dapat menggunakan pernyataan FML untuk merealisasikan tabel data ke mesin MaxCompute, Hologres, atau Hive.

  • FML menggunakan kata kunci SQL sebagai kata tercadang. Jika nama tabel atau kolom Anda merupakan kata tercadang, Anda harus membungkusnya dengan backtick (``) untuk menghindari error. Jika tidak, error akan terjadi saat Anda membuat tabel.

Buka editor FML

  1. Pada halaman Dimensional Modeling, klik ganda nama tabel target di pohon direktori.

  2. Pada halaman Table Details, klik Script Mode.

    Di editor FML pada tab Script Mode, Anda dapat melihat pernyataan FML yang digunakan untuk membuat tabel saat ini. Anda juga dapat mengonfigurasi atau memodifikasi bidang tabel tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan tabel data target.

    -- Setelah model dipublikasikan ke tabel fisik, nama tabel tidak dapat diubah. Hal ini berlaku selama tahap persetujuan awal, publikasi, dan pasca-publikasi.
    CREATE DIM TABLE dim_ec_pub_staff_df ALIAS 'Tabel dimensi wilayah administratif geografis'
    (
        id           ALIAS 'ID wilayah administratif' STRING COMMENT 'ID wilayah administratif',
        name         ALIAS 'Nama wilayah administratif' STRING COMMENT 'Nama wilayah administratif',
        `level`      ALIAS 'Tingkat wilayah administratif. 1: Negara; 2: Provinsi/Wilayah Otonom/Kota; 3: Kota; 4: Kabupaten/Kota' INT COMMENT 'Tingkat wilayah administratif. 1: Negara; 2: Provinsi/Wilayah Otonom/Kota; 3: Kota; 4: Kabupaten/Kota',
        country_id   ALIAS 'ID negara' STRING COMMENT 'ID negara',
        country_name ALIAS 'Nama negara' STRING COMMENT 'Nama negara',
        province_id  ALIAS 'ID Provinsi/Wilayah Otonom/Kota' STRING COMMENT 'ID Provinsi/Wilayah Otonom/Kota',
        province_name ALIAS 'Nama Provinsi/Wilayah Otonom/Kota' STRING COMMENT 'Nama Provinsi/Wilayah Otonom/Kota',
        city_id      ALIAS 'ID kota' STRING COMMENT 'ID kota',
        city_name    ALIAS 'Nama kota' STRING COMMENT 'Nama kota',
        district_id  ALIAS 'ID Kabupaten/Kota' STRING COMMENT 'ID Kabupaten/Kota',
        district_name ALIAS 'Nama Kabupaten/Kota' STRING COMMENT 'Nama Kabupaten/Kota',
        ds           ALIAS 'Tanggal bisnis, yyyymmdd' STRING COMMENT 'Tanggal bisnis, yyyymmdd'
    )
    COMMENT 'Tabel dimensi wilayah administratif geografis'
    WITH('life cycle'='1000');

Konfigurasikan tabel data target

Untuk kemudahan Anda, semua pernyataan konfigurasi tabel disajikan dalam format pernyataan CREATE TABLE. Namun, fitur pemodelan data DataWorks tidak mendukung pembuatan tabel menggunakan pernyataan FML. Dalam praktiknya, Anda hanya perlu merujuk pada bagian pernyataan yang mendefinisikan konten tabel, seperti constraint dan partisi. Format pernyataan FML untuk mengonfigurasi tabel target adalah sebagai berikut.

--Buat tabel baru
      CREATE <table_type> TABLE
      IF NOT EXISTS
      --Nama tabel
      <table_name> [ALIAS <alias>]
      --Definisikan atribut kolom
      <col_name> [ALIAS <alias>] <datatype> [<category>] [COMMENT <comment>] [WITH (<key>=<value>,....)]
      --Definisikan constraint
      PRIMARY KEY (<col_name>),
      --Constraint dimensi
      CONSTRAINT <constraint_name> DIM KEY (<col_name>) REFERENCES <ref_table_name> (<ref_table_col_name>),
      --Constraint hierarki
      CONSTRAINT <constraint_name> LEVEL <col_name:(<col_name>)>, --Constraint pengelompokan
      CONSTRAINT <constraint_name> COLUMN_GROUP(<col_name>,...), 
      --Definisikan komentar
      COMMENT 'comment'
      --Definisikan partisi
      PARTITION BY (col DATATYPE COMMENT 'comment' WITH ('key'='value',...), ...)
      --Definisikan properti
      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'
    ;
              

Parameter

Deskripsi

tableName

Nama tabel data. Harus hanya berisi huruf, angka, dan garis bawah (_) serta tidak lebih dari 128 karakter.

if not exists

Jika tabel dengan nama yang sama sudah ada di mesin target, pernyataan CREATE TABLE akan menghasilkan error jika Anda tidak menentukan if not exists. Jika Anda menentukan if not exists, pernyataan tersebut akan berhasil terlepas dari apakah tabel dengan nama yang sama sudah ada atau belum.

alias

Alias opsional untuk tabel data atau kolom, biasanya digunakan sebagai nama tampilannya.

tableType

Jenis tabel yang akan dibuat. Anda dapat menggunakan pernyataan FML untuk membuat jenis tabel berikut:

  • Tabel dimensi

    • Tabel dimensi umum (NORMAL): Jenis default saat Anda membuat tabel dimensi.

    • Tabel dimensi hierarki (LEVEL): Menyimpan data dengan hubungan hierarkis, seperti provinsi, kota, dan kabupaten.

    • Tabel dimensi enumerasi (ENUM): Menyimpan nilai enumerable umum, seperti laki-laki dan perempuan.

  • Tabel fakta

    • Tabel fakta transaksi (TRANSACTION): Jenis default saat Anda membuat tabel fakta. Mencatat fakta pada tingkat transaksi dan menyimpan data paling atomik.

    • Tabel fakta snapshot periodik (PERIODIC_SNAPSHOT): Menyimpan catatan fakta yang reguler dan dapat diprediksi seiring waktu. Mengagregasi pengukuran dalam interval tertentu, seperti year-to-date atau all-time. Data dalam tabel ini biasanya diperbarui secara inkremental.

    • Tabel fakta snapshot akumulatif (ACCUMULATING_SNAPSHOT): Menyimpan snapshot transaksi untuk melacak data sepanjang siklus hidup dengan durasi yang tidak dapat diprediksi.

  • Tabel DWS: Tabel agregat logis yang digunakan untuk menggabungkan metrik tertentu. Sintaks definisinya mirip dengan tabel dimensi dan fakta.

  • Tabel lookup: Juga dikenal sebagai tabel kode, menyimpan kode untuk atribut standar yang spesifik industri. Misalnya, perusahaan utilitas dapat menggunakan tabel lookup untuk menstandarkan kode jenis kontrak pasokan listrik.

comment

Komentar tabel, dengan panjang maksimum yang direkomendasikan 1.024 karakter.

columnDefinition

Definisi kolom tabel. Dapat mencakup parameter berikut:

  • col_name: Nama kolom. Dapat berisi huruf, angka, dan garis bawah (_). Jika nama kolom merupakan kata tercadang FML, Anda harus membungkusnya dengan backtick (``).

  • alias: Alias opsional untuk kolom, biasanya digunakan sebagai nama tampilannya.

  • dataType: Tipe data. FML mendukung tipe data seperti BIGINT, STRING, VARCHAR, CHAR, DECIMAL, dan DATETIME.

  • category: Kategori kolom. Dalam pemodelan dimensional, kolom dapat berupa atribut (ATTRIBUTE), pengukuran (MEASUREMENT), atau korelasi (CORRELATION).

Catatan

Karena FML mendukung desain tabel sebelum direalisasikan, Anda dapat membuat tabel tanpa mendefinisikan kolom apa pun.

constraint

Menentukan constraint pada struktur tabel. Nilai yang valid adalah:

  • Constraint primary key (PrimaryConstraint): Formatnya PRIMARY KEY(col1, col2). Kolom col1, col2 harus merupakan bidang yang telah didefinisikan sebelumnya.

  • Constraint dimensi (DimConstraint): Formatnya DIM KEY(col1, col2) REFERENCES table_name(ref1, ref2).

  • Constraint hierarki (LevelConstraint): Hanya berlaku pada tabel dimensi hierarki. Mendefinisikan level dalam hierarki tersebut.

Partitioned BY

Membuat partisi tabel.

WITH

Saat membuat tabel, Anda dapat menentukan informasi kustom dalam format key=value. key dan value harus dibungkus dengan tanda kutip tunggal untuk mencegah konflik dengan kata kunci FML. Properti tambahan dalam klausa WITH diurai oleh mesin yang merealisasikan pernyataan FML.