{"id":31939726,"url":"https://github.com/alibaba/fast-modeling-language","last_synced_at":"2025-10-14T08:45:21.093Z","repository":{"id":45751214,"uuid":"473924887","full_name":"alibaba/fast-modeling-language","owner":"alibaba","description":"阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/276018.html) 团队出品，快速建模语言","archived":false,"fork":false,"pushed_at":"2025-07-06T03:06:11.000Z","size":4790,"stargazers_count":64,"open_issues_count":4,"forks_count":13,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-07-06T03:24:18.759Z","etag":null,"topics":["aliyun","dataworks","fastmodel","fml","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alibaba.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-25T08:19:58.000Z","updated_at":"2025-07-06T03:06:14.000Z","dependencies_parsed_at":"2025-02-10T07:28:01.791Z","dependency_job_id":"a9b40706-2f26-4da0-9b12-b9926090f8d8","html_url":"https://github.com/alibaba/fast-modeling-language","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/alibaba/fast-modeling-language","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Ffast-modeling-language","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Ffast-modeling-language/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Ffast-modeling-language/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Ffast-modeling-language/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alibaba","download_url":"https://codeload.github.com/alibaba/fast-modeling-language/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Ffast-modeling-language/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018297,"owners_count":26086345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aliyun","dataworks","fastmodel","fml","java"],"created_at":"2025-10-14T08:45:19.856Z","updated_at":"2025-10-14T08:45:21.085Z","avatar_url":"https://github.com/alibaba.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e\u003e 语言： [中文](https://github.com/alibaba/fast-modeling-language/blob/main/README_zh_CN.md) | English\n\n# Fast Modeling Language[![Java CI with Maven](https://github.com/alibaba/fast-modeling-language/actions/workflows/maven.yml/badge.svg?branch=main)](https://github.com/alibaba/fast-modeling-language/actions/workflows/maven.yml)\n\n\nFML(Fast Modeling Language) is a SQL-like language designed for Dimensional Modeling. It is an attempt for fast modeling follows the “Kimball\nDimensional Modeling Techniques Theory” and the “Alibaba’s OneData Theory.“ FML inherits many features from the SQL. For example, the FML studied and\nconsulted the standard DDL syntax when creating a model, and extensions upon it. While designing a model, you no longer have to care about the\nspecific 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\na certain kind of engine.\n\n### Features\n\n- A SQL-like language specially designed dimensional modeling.\n- Supports syntax definition in the process of data warehouse establishment, such as: Data Warehouse Planning, Fields Standards, Code Tables, Data\n  Indicators.\n- Build with Java, you can build models easily with the Syntax Nodes Construct API.\n- Transforms models into varies syntax with the Transform API for common engines, such as: Hive, Hologres, Mysql.\n- Supports JDBC Driver mode, interact with the model engine.\n\nRelation Document(Continuously updating): https://alibaba.github.io/fast-modeling-language/\n\n### Parser Example\n\n```java\n\nimport com.aliyun.fastmodel.core.parser.FastModelParser;\nimport com.aliyun.fastmodel.core.parser.FastModelParserFactory;\n\npublic class HelloFML {\n    //单例\n    private static final FastModelParser FAST_MODEL_PARSER = FastModelParserFactory.getInstance().get();\n\n    public static void main(String[] args) {\n        String fml\n            = \"create dim table t_1 alias 'alias_name' (col bigint alias 'alias_name' comment 'col_comment') comment 'comment';\";\n        CreateDimTable createDimTable = FAST_MODEL_PARSER.parseStatement(fml);\n        //do your work\n    }\n}\n\n```\n\n### Transformer Example\n\n```java\nimport com.aliyun.fastmodel.core.tree.BaseStatement;\nimport com.aliyun.fastmodel.transform.api.Transformer;\nimport com.aliyun.fastmodel.transform.api.TransformerFactory;\nimport com.aliyun.fastmodel.transform.api.context.TransformContext;\nimport com.aliyun.fastmodel.transform.api.dialect.DialectMeta;\n\npublic class HelloFMLTransformer {\n    public static void main(String[] args) {\n        DialectMeta dialectMeta =\n            Transformer \u003c BaseStatement \u003e statementTransformer = TransformerFactory.getInstance().get(dialectMeta);\n        statementTransformer.transform(statement, context).getNode();\n    }\n}\n```\n\n## Building FML from Source\n\nBuild environment and conditions for FML\n\n- Unix-like environment (we use Linux, Mac OS X, Cygwin, WSL)\n- Git\n- Maven (version 3.5.0+ recommended)\n- Java 8\n\nClone and build\n\n```Shell\ngit clone git@github.com:alibaba/fast-modeling-language.git\ncd fast-modeling-language\nmvn clean package -DskipTests # this will take up to 10 minutes\n```\n\n## Develop FML\n\nIntelliJ IDEA is recommended for the FML Java project. We provide IntelliJ IDEA to developers who would like to commit to the FML code base.\nDeveloper’s IDE need to support at least:\n\n- Java project development\n- Support Maven\n\nIntelliJ IDEA IntelliJ IDEA Plugins\n\n- IntelliJ地址: https://www.jetbrains.com/idea/\n- IntelliJ ANTLR: https://plugins.jetbrains.com/plugin/7358-antlr-v4\n- Code style template: docs/Alibaba_CodeStyle.xml\n- ErrorProne: https://errorprone.info/docs/installation\n\n## Documentation\n\nFML文档可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 quickstart\n\n- Run locally: `docsify serve docs`\n- Then visit http://localhost:3000\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2Ffast-modeling-language","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falibaba%2Ffast-modeling-language","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2Ffast-modeling-language/lists"}