metamodel_Apache MetaModel –在各种数据存储中提供统一的数据访问

Apache MetaModel是一个Java库,提供与各种数据存储(如数据库、NoSQL、文件等)交互的统一接口。它支持元数据探索、查询和更新,并允许添加新数据存储的支持。MetaModel的查询模型类似SQL,提供了类型安全和动态构建查询的能力。
摘要由CSDN通过智能技术生成

metamodel

最近, Human InferenceApache软件基金会 (ASF)宣布捐赠并接受对MetaModel项目的孵化。 以前,MetaModel可以通过LGPL许可获得,并由Human Inference的产品开发进行管理,但是现在已移至ASF,获得了新的许可,社区和治理。 那么,这个项目的全部目的是什么?它有什么用?

MetaModel是一个Java库,旨在提供一个用于与任何数据存储进行交互的接口; 可以是关系数据库,NoSQL数据库,电子表格文件或其他文件格式。 通过交互,我们意味着探索元数据,查询和写入/更改存储中包含的数据。 当然,任何这样的抽象都会遗漏细节,因此存在过度概括和失去重要功能的风险。 您不希望将关系SQL数据库的功能简化为仅使用全表扫描( SELECT * FROM [table] ),例如查询。 另一方面,除了特定SQL Server品牌和版本之外,您也不想公开在其他任何数据存储上都无法使用的功能。 最后,您将希望利用现有的通用技能与数据进行交互,例如SQL。

处理元数据

那么,由MetaModel项目选择的数据存储抽象方法是什么? 该项目通过与SQL非常相似的Java接口(或可选地从String解析)公开了查询模型。 由于查询被定义为常规Java对象,因此可以轻松解释它,并且-根据底层技术-将选择实际执行查询的最佳策略。 这意味着MetaModel不仅提供接口,而且还提供接口。 它还包括一个完整的查询引擎,可以适合于处理查询中涉及的某些或所有任务。 对于关系JDBC数据库,查询执行的99%仍将在数据库的本机引擎中进行。 但是,使用MetaModel,您还可以在CSV文件或Excel电子表格上触发相同的查询,从而利用MetaModel的查询引擎正确地对数据进行切片和切块。 您根本不需要更改查询。

当然,这是假设元数据和数据存储的结构兼容的。 不同的数据存储区具有公开或推断其元数据的不同方式。 JDBC数据库通常通过JDBC元数据API公开其元数据。 CSV和Excel工作表等文件格式的定义不太明确; 他们通过读取文件的标题行来浏览元数据。 并且,作为一个极端的示例,有多个NoSQL数据库明确没有元数据。 MetaModel为您提供了以编程方式指定元数据或通过检查数据存储的前N条记录来推断元数据的选项。

MetaModel的最核心构造是DataContext接口,它表示数据存储并用于浏览和查询它。 另外,UpdateableDataContext子接口可用于可在其中执行数据更新的可写数据存储。 只要确保您具有DataContext实例,就可以使用基本的代码完成来或多或少地学习整个库。 以下是几个常见DataContext实现的示例以及如何实例化它们:

// a DataContext for a CSV file
UpdateableDataContext csv = new CsvDataContext(new File(“data.csv”));
// a DataContext for an Excel spreadsheet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值