[英]Hbase MapReduce: how to use custom class as value for the mapper and/or reducer?
[英]How to use same domain class for HBase and PostgreSQL
我有存儲在HBase和PostgreSQL中的域對象。
在定義類時,用於PostgreSQL的注釋不適用於HBase,因此我最終定義了兩個具有相同屬性但注釋不同的類。 我使用Hibernate / Spring框架。
對於PostgreSQL,我使用的域類如下:(代碼段)
@Entity
@Table(name="foo_bar")
public class FooBarPgsql implements Serializable {
private static final long serialVersionUID = 5848293352035620189L;
@Id
@Column(name="id")
String id;
@Column(name="name")
String name;
}
對於HBase,該類是:
public class FooBarHbase {
String id;
String name;
}
因此,如果我必須對PostgreSQL和HBase使用單個類,那么我應該如何定義該類?
我認為您的組合類將比具有公共接口(可以根據需要調度)的兩個類更加復雜。 數據庫是如此不同,並且HBase確實與ORM方法不兼容。
我認為,與不嘗試完全合並類相比,通過謹慎地使用合成等,您將獲得更多收益。 由於Java可以動態更改類屬性,因此嘗試以這種方式集中化代碼更有可能允許您使用一組干凈的類來委派實際的數據庫處理。
如果您確實想要,可以這樣做,但是我不確定在代碼質量方面肯定要付出的代價是否值得。 讓細節取決於接口,而不取決於接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.