ORM框架在希望与关系数据库进行交互时可以帮助开发人员。 对于关系数据库,有许多出色的ORM框架,例如Hibernate和Apache OpenJPA,其中一些确实很棒。
如今,大数据正在涌现,越来越多的人开发在大数据上运行的应用程序。 已经开发了各种NoSQL数据库来存储这种大小的数据,即列存储和文档存储。
尽管ORM框架解决了许多问题(即使它们有缺点),并且在关系数据库方面如此普遍,但由于NoSQL数据库没有通用标准,因此NoSQL数据库的情况有所不同。
Apache Gora旨在通过特定于数据存储的映射为用户提供易于使用的内存数据模型和大数据框架的持久性。 Apache Gora的总体目标是成为大数据的标准数据表示和持久性框架。
Gora支持持久存储到列存储,键值存储,文档存储和RDBMS,并通过广泛的Apache Hadoop MapReduce支持来分析数据。
Gora使用Apache Avro,并且依赖于特定于每个数据存储的映射文件。 与其他OTD(对象到数据存储)映射实现不同,在Gora中,数据Bean到数据存储特定的架构映射是显式的。 这样做的好处是,在使用HBase和Cassandra等数据模型时,您始终可以知道这些值是如何持久保存的。
Apache Gora的路线图
- 数据持久性:将对象持久化到列存储,例如HBase,Cassandra,Hypertable; 键值存储,例如Voldermort,Redis等; SQL数据库,例如MySQL,HSQLDB,本地文件系统或Hadoop HDFS中的平面文件。
- 数据访问:易于使用的Java友好通用API,用于访问数据,而不管其位置如何。
- 索引:将对象持久化为Lucene和Solr索引,使用Gora API访问/查询数据。
- 分析:通过Apache Pig,Apache Hive和Cascading的适配器访问数据并进行分析
- MapReduce支持:现成的和广泛的MapReduce(Apache Hadoop)支持数据存储中的数据。
Apache Gora和当前解决方案之间有什么区别?
- Gora特别关注NoSQL数据存储,但对SQL数据库的支持有限。
- Gora的主要用例是使用Hadoop访问/分析大数据。
- Gora使用Avro进行bean定义,而不是字节码增强或注释。
- 对象到数据存储的映射是特定于后端的,因此可以使用完整的数据模型。
- Gora很简单,因为它忽略了复杂的SQL映射。
- Gora将使用Pig,Lucene,Hive等支持数据的持久性,索引和分析。
Apache Gora支持的数据存储
- Apache Accumulo
- 阿帕奇·卡桑德拉(Apache Cassandra)
- 亚马逊DynamoDB
- Apache HBase
- 阿帕奇·索尔(Apache Solr)
- MongoDB
Apache Spark是大数据开发人员的一个光辉的项目。 Spark提供了更快,更通用的数据处理平台。 与Hadoop相比,Spark使您在内存上运行程序的速度提高了100倍,在磁盘上运行的速度提高了10倍。 目前Gora不支持Spark,在我的GSoC期间,我正在为Apache Gora实施Spark后端以填补这一空白。
资源资源
- http://gora.apache.org/current/tutorial.html#introduction
- http://gora.apache.org/current/tutorial.html#introduction
- https://github.com/apache/gora
- https://hadoop.apache.org/
- https://avro.apache.org/
- http://spark.apache.org/
- 大数据徽标来自: http : //www.smartdatacollective.com/sites/smartdatacollective.com/files/big-data-big_0.png
翻译自: https://www.javacodegeeks.com/2015/08/in-memory-data-model-and-persistence-for-big-data.html