個人理解
聽說過元數據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的方法
具體的信息,可以看: