From the Metamodel Wiki:
MetaModel is a library that encapsulates the differences and enhances the capabilities of different datastores. Rich querying abilities are offered to datastores that do not otherwise support advanced querying and a unified view of the datastore structure is offered through a single model of the schemas, tables, columns and relationships.
Also from the MetaModel Wiki, supported data formats:
Relational databases known to be working with MetaModel
Database Version JDBC driver MySQL 5+ Connector/J PostgreSQL 8+ PostgreSQL JDBC driver Oracle 10g SQLJ/JDBC Apache Derby 10+ Derby driver Firebird SQL 2.0+ Jaybird driver Hsqldb/HyperSQL 1.8+ Hsqldb driver H2 1.2+ H2 driver SQLite 3.6.0+ Xerial driver Microsoft SQL Server 2005+ JTDS driver Ingres Non-relational / NoSQL databases supported by MetaModel
- MongoDB
- CouchDB
Business application supported (through system services) by MetaModel
- Salesforce.com
- SugarCRM
File data formats supported by MetaModel
File format File extension Version Comma separated file .csv Microsoft Excel spreadsheet .xls Excel ’97-2003 . .xlsx Excel 2007+ OpenOffice.org database .odb OpenOffice 2.0+ XML file (SAX based) .xml XML file (DOM based) .xml Microsoft Access database .mdb Access ’97-2003 . .accdb Access 2007+ dBase database .dbf Java object datastores (aka POJO datastores)
MetaModel also supports creating datastores built on top of plain Java objects. Either by using a collection of Java bean objects (with getters and setters) or by using collections of Maps or arrays. In the case of using collections of arrays, you will need to manually appoint column names to each index in the arrays.
Composite datastores
MetaModel supports an advanced feature called composite datastores. In short it means that it’s possible to access and query several datastores as if they where one. This involves transparent client-side joining, filtering, grouping etc. Composite datastores are typically not as performant in terms of querying but provides for a convenient way to combine data that is otherwise inherently separated from each other.
That’s an impressive list but who have they missed?
- AllegroGraph
- HBase
- Hive
- Neo4j
- OrientDB
Just as a starter list. How many more can you name?