[to #87919689]feat(clickhouse): support ClickHouse DDL transformation and partition handling
Render FML models as ClickHouse DDL and parse ClickHouse DDL back to Table DTO:
- DDL generation covers ENGINE, PARTITION BY, PRIMARY KEY, ORDER BY, SAMPLE BY, TTL, SETTINGS, ON CLUSTER, table/column COMMENT, Nullable(T) and DEFAULT.
- Reverse parsing round-trips through the model, including partition ALTER clauses and partition-key back-fill for plain column lists.
- Type mapping covers native types and common aliases, plus LowCardinality, Nested and DateTime64 with time zone.
- Unsupported constructs now fail explicitly instead of being silently dropped: CREATE TABLE … AS SELECT / AS table / table functions, AggregateFunction/SimpleAggregateFunction, column-level CODEC/TTL/MATERIALIZED/ALIAS/INDEX, and unregistered native types such as IPv4/IPv6.
Tests: 116 ClickHouse tests pass; CI 7/7.
Refs: #28 Follow-up: #29
Co-authored-by: jiawa2018 35171695+jiawa2018@users.noreply.github.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
Fast Modeling Language
FML(Fast Modeling Language) is a SQL-like language designed for Dimensional Modeling. It is an attempt for fast modeling follows the “Kimball Dimensional Modeling Techniques Theory” and the “Alibaba’s OneData Theory.“ FML inherits many features from the SQL. For example, the FML studied and consulted the standard DDL syntax when creating a model, and extensions upon it. While designing a model, you no longer have to care about the specific rules for different kinds of big data engines. The FML Transformer will convert your models into a SQL syntax, which can be read directly by a certain kind of engine.
Features
Relation Document(Continuously updating): https://alibaba.github.io/fast-modeling-language/
Parser Example
Transformer Example
Building FML from Source
Build environment and conditions for FML
Clone and build
Develop FML
IntelliJ IDEA is recommended for the FML Java project. We provide IntelliJ IDEA to developers who would like to commit to the FML code base. Developer’s IDE need to support at least:
IntelliJ IDEA IntelliJ IDEA Plugins
Security Notice
The
fastmodel-ide-openweb service (default port 7001) does not provide built-in authentication. Do not expose it directly to untrusted networks; deploy it behind an authenticating gateway or reverse proxy, or restrict access to trusted networks only.Documentation
FML文档可The introduction and guide of the FML can be found under the
doc/directory, the docs is managed with the Docsify, to learn more about it: docsify quickstartdocsify serve docsJDK8 Deploy