个人理解
听说过元数据metadata,metadata是data的data,metamodel是model的model,称为元模型。一堆相似的模型,通过功能或者结构可以抽象出共同的部分,就是元模型。例如菜系,川菜是个模型,湘菜、鲁菜、江浙菜、印度菜、泰国菜,都是模型,菜系都是做菜的,菜是基本的元素,菜本身的属性有名字、色、香、味、生成的方法、生成的材料等,每个具体的菜系都可以拿菜的元素找对应具体的值,在这里菜系是模型,菜是元模型。
这里的MetaModel是一个apache的具体的项目,是数据的元模型。mysql、pg、sqlserver、sqlite等是数据库,csv、xls、xml、access等是数据文件,mongdb是nosql,还有java对象等,这些都是关于数据的。我们比较理解数据库,以mysql为例,每个数据都有表、行、列等元素,有select可以有条件where,可以update,表与表之间可以join等操作,这是元模型。MetaModel使用的语言是java,在java中,将这些不同的数据源通过MetaModel访问后成为同一个概念dataContext,类似java程序中的中间件,然后MetaModel提供Query、update等操作对这些dataContext进行操作。
具体元素
dataContext是个大的概念,类似一个csv文件流,一个mysql链接等
schema是table与dataContext中间的一个概念,类似database、schema(pg)、多个sheet,(这个暂时还不确定)
table就是mysql的table,csv文件
column是table的column
row是table的row
具体操作
select、update、delete、insert、join
and( boolean or boolean) 貌似不行
官方例子
Knowledge base and background information about MetaModel:
-
Database compliancy and supported data formats 数据库编译、支持的数据格式
-
Schema and table semantics schema类似pg的schema,比table大的概念,table就是table
-
Migrating from eobjects.org to Apache MetaModel MetaModel孵化成apache项目
Some useful examples for learning to code with MetaModel:
- examples/CompiledQueries 编译查询
- examples/CompositeDataContext 混合dataContext
- examples/DataTypeConversion table中列的数据格式转换
- examples/PojoDataContext java对象转换成dataContext
- examples/SalesforceDataContext salesforce网站业务转换成dataContext
- examples/SimpleQueriesToGetStarted 简单查询开始
- examples/TraverseSchemaModel 遍历schema
- examples/UpdatingData 更新数据
- examples/XmlTableMapping xml转换成dataContext中使用mapping的方法
具体的信息,可以看: