FML 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
FML 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
FML 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具
开源组织
地区 国产
投 递 者 家里有娃
适用人群 未知
收录时间 2023-12-11

软件简介

FML(Fast Modeling Language)是一种类似SQL的语言,专为维度建模而设计。它旨在实现快速建模,遵循"Kimball维度建模技术理论"和"阿里巴巴OneData理论"。FML从SQL中继承了许多特性。例如,在创建模型时,FML研究并参考了标准的DDL语法,并在此基础上进行了扩展。在设计模型时,您不再需要关注不同种类大数据引擎的具体规则。FML转换器将把您的模型转换为SQL语法,可以直接被特定类型的引擎读取。

特性

  • 一种专门为维度建模设计的类SQL语言。
  • 支持在数据仓库建立过程中定义语法,如:数仓规划、字段标准、码表、数据指标。
  • 基于Java构建,您可以使用语法结构API轻松构建模型。
  • 使用Transform API将模型转换为常见引擎的各种语法,如:Hive、Hologres、Mysql、Clickhouse等
  • 支持JDBC驱动模式,与模型引擎交互。

解析示例

import com.aliyun.fastmodel.core.parser.FastModelParser;
import com.aliyun.fastmodel.core.parser.FastModelParserFactory;

public class HelloFML {
    //单例
    private static final FastModelParser FAST_MODEL_PARSER = FastModelParserFactory.getInstance().get();

    public static void main(String[] args) {
        String fml
            = "create dim table t_1 alias 'alias_name' (col bigint alias 'alias_name' comment 'col_comment') comment 'comment';";
        CreateDimTable createDimTable = FAST_MODEL_PARSER.parseStatement(fml);
        //do your work
    }
}
 

Transformer示例

import com.aliyun.fastmodel.core.tree.BaseStatement;
import com.aliyun.fastmodel.transform.api.Transformer;
import com.aliyun.fastmodel.transform.api.TransformerFactory;
import com.aliyun.fastmodel.transform.api.context.TransformContext;
import com.aliyun.fastmodel.transform.api.dialect.DialectMeta;

public class HelloFMLTransformer {
    public static void main(String[] args) {
        DialectMeta dialectMeta =
            Transformer < BaseStatement > statementTransformer = TransformerFactory.getInstance().get(dialectMeta);
        statementTransformer.transform(statement, context).getNode();
    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
02/12 16:25

FML-0.5.15 版本发布

FML 是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql、Spark、StarRocks、Doris、PostgreSQL,Adb Mysql,Adb PostgreSQL,Flink等多种数据库引擎。 使用...

0
0
发表了资讯
01/01 10:11

FML-0.5.14 版本发布

FML 是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql 等。 使用 Java 实现目的主要是使用了 java 的语法解析工具来做语法的解析处理。 目前 FML 可以在 ...

0
1
发表了资讯
2024/08/25 18:23

FML-0.5.13 版本发布

FML 是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql 等。 使用 Java 实现目的主要是使用了 java 的语法解析工具来做语法的解析处理。 目前 FML 可以在 ...

0
2
发表了资讯
2024/07/07 16:08

FML-0.5.12 版本发布

FML 是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql 等。 使用 Java 实现目的主要是使用了 java 的语法解析工具来做语法的解析处理。 目前 FML 可以在 ...

0
2
发表了资讯
2024/06/23 17:24

FML-0.5.11 版本发布

FML 是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql 等。 使用 Java 实现目的主要是使用了 java 的语法解析工具来做语法的解析处理。 目前 FML 可以在 ...

0
2
发表了资讯
2024/06/09 10:30

FML-0.5.10 版本发布

FML是一个用Java实现的维度建模语言SDK,主要是参考了kimball建模理论和阿里Onedata,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前SDK封装了一套从模型表达转换其他不同引擎的DDL能力,目前引擎包括:Hive,Hologres,Mysql等。 使用Java实现目的主要是使用了java的语法解析工具来做语法的解析处理。 目前FML可以在Dataworks的智能建模...

1
2
发表了资讯
2024/06/08 14:12

FML-0.5.9 版本发布

FML—— 快速(维度)建模语言是一个用 Java 实现的维度建模语言 SDK,主要是参考了 kimball 建模理论和阿里 Onedata 方法论,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前 SDK 封装了一套从模型表达转换其他不同引擎的 DDL 能力,目前引擎包括:Hive,Hologres,Mysql 等。 使用 Java 实现目的主要是使用了 java 的语法解析工具来做语...

0
1
发表了资讯
2023/12/30 14:01

FML-0.5.8 版本发布

FML——快速(维度)建模语言是一个用Java实现的维度建模语言SDK,主要是参考了kimball建模理论和阿里Onedata方法论,定义一套用于表达上述理论中的模型语法,来做模型设计,该语言是面向数据建模和数据开发同学,同时针对为了解决模型发布的效率,基于当前SDK封装了一套从模型表达转换其他不同引擎的DDL能力,目前引擎包括:Hive,Hologres,Mysql等。 使用Java实现目的主要是使用了java的语法解析工具来做语法的解析处理。 目...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部