2010-07-15 5 views
22

누구나 HBase 용 Java ORM 구현을 잘 알고 있습니다. 이 사람은 루비Hbase 용 Java ORM

http://www.stanford.edu/~sqs/rhino/doc/

정말 좋은 보이지만, 자바에 대한 하나를 찾을 수 없습니다.

감사합니다.

+10

왜이 질문이 닫혀 있습니까? !!!!!? 그것은 3390 번 전망과 함께 아주 좋은 질문입니다! SOF 사회자는 무엇을합니까? – Heidarzadeh

+4

이것은 매우 중요한 질문입니다. 왜 그것이 건설적인 것으로 간주되지 않습니까? – nitefrog

+0

이것은 여전히 ​​관련 질문입니다. 이 질문에 대한 대부분의 답은 구식이거나 존재하지 않는 프로젝트를 가리 킵니다. 다음 중 하나를 사용하는 것이 좋습니다 : [1] Apache Phoenix + Hibernate [2] https://flipkart-incubator.github.io/hbase-object-mapper/ (공개 : 저는이 프로젝트의 저자입니다) –

답변

2

pigiparhely이 있으며 그 중 아무 것도 사용하지 않았습니다. IMO HBase는 빠른 키/값 저장 엔진이지만 다른 추상화 레이어가 필요한 경우에는이를 체크 아웃해야합니다.

+0

감사합니다. . parhely는 문서가있는 것처럼 보이지 않으므로 먼저 pigi를 사용하도록 선택합니다. –

4

HBase의 장점은 동적 컬럼을 고정 컬럼 제품군으로 유지하는 것입니다. HBase로 응용 프로그램을 개발 한 경험으로 셀 한정자와 값을 결정하는 것이 SQL만큼 쉽지 않은 것으로 나타났습니다.

예를 들어 액세스 패턴, 작성자 수정 사항, 전체 저자를 책 테이블에 저장하도록 선택할 수있는 앱 계층 캐시 구현 (작성자는 2 테이블, 저자 테이블 및 서적 테이블) 또는 저자 ID. 더 나아가 저작자 모음을 XML/JSON 또는 개별 저자를위한 개별 셀로 하나의 셀에 저장할 수 있습니다.

이 이해로 나는 최대 절전 모드가 매우 어려울뿐만 아니라 실제로 결정적이지 않을 수도있는 본격적인 ORM을 작성한다고 결론을 내렸다. 따라서 iBatis가 최대 절전 모드에있는 것과 훨씬 다른 방식으로 접근했습니다.

어떻게 작동하는지 설명하겠습니다. 이를 위해 herehere의 소스 코드를 사용하겠습니다.

  1. 첫 번째이자 가장 중요한 작업은 ObjectRowConverter 인터페이스 (이 경우 SessionDataObjectConverter)를 구현하는 것입니다. 추상 클래스는 HBase 커뮤니티에서 논의하고 배운 기본 베스트 프랙티스를 캡슐화합니다. 이 확장은 기본적으로 객체를 HBase 행으로 변환하는 방법과 100 % 제어 할 수 있습니다. API의 유일한 제한 사항은 도메인 객체가 내부적으로 Put, Delete, id 객체에 byte 객체를 작성하는 데 사용되는 PersistentDTO 인터페이스를 구현해야한다는 것입니다.
  2. 다음 작업은 HBaseImplModule에서 수행 된 종속성을 연결하는 것입니다. 관심이 있으시면 의존성 주사를 통해 알려 드리겠습니다.

그리고 thats it. 사용 방법은 here입니다. 기본적으로 CommonReadDao, CommonWriteDao를 사용하여 HBase에서 데이터를 읽고 씁니다. 공통 읽기 DAO는 쿼리에서 다중 스레드 행을 구현하고, 다중 스레드 ID로 get하고, id로 얻고, Scan을 통해 HBase에 질의하는 API와 같은 Hibernate Criteria를가집니다 (사용 가능한 집계 함수 없음). 공통 쓰기 DAO는 낙관적/비관적 잠금, 저장/갱신, 삭제 등에 대한 셀 대체/병합 검사 엔티티 (비) 존재와 같은 일부 추가 기능으로 공통 쓰기 관련 코드를 구현합니다.

이 ORM은 내부 목적과 나는 내 목에 있었고 따라서 아직 일부 문서를 할 수 없습니다.그러나 관심이 있다면 알려주십시오. 은 우선 문서화에 시간을 할애 할 것입니다.

2

우리는 HBase를 ORM을 사용하는 - 언급 https://github.com/mushkevych/surus/wiki

아마 가치가 Surus을

  • 우리는 Hadoop map/reduce를 많이 사용하고 있습니다.
  • JSON 스트림에서 HBase 데이터를 펌프 할 수있는 추가 모듈이 있습니다 (이 경우 파이썬 코드에서 온 것입니다.)