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
-
Pada halaman Dimensional Modeling, klik ganda nama tabel target di pohon direktori.
-
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 |
|
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:
|
|
comment |
Komentar tabel, dengan panjang maksimum yang direkomendasikan 1.024 karakter. |
|
columnDefinition |
Definisi kolom tabel. Dapat mencakup parameter berikut:
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:
|
|
Partitioned BY |
Membuat partisi tabel. |
|
WITH |
Saat membuat tabel, Anda dapat menentukan informasi kustom dalam format |