2021년 3월 1일 월요일

Apache Phoenix - 기존 HBase테이블 Mapping


기존 HBase 테이블에 Phoenix 테이블을 매핑하는 법은 

기존에 있는 HBase 테이블과 똑같은 이름의 Phoenix테이블 또는 뷰를 생성한다.

또한 두 테이블 컬럼의 자료형이 일치해야하는데, 

특히 숫자의 경우 Hbase와 Phoenix의 표현방식이 다르므로 표현되기 어렵다. 


"Phoenix will flip the first bit so that negative values will sort before positive values. Because HBase sorts row keys in lexicographical order and negative value’s first bit is 1 while positive 0 so that negative value is ‘greater than’ positive value if we don’t flip the first bit. So if you stored integers by HBase native API and want to access them by Phoenix, make sure that all your data types are UNSIGNED types."

간단히 말하면 HBase에 맵핑된 컬럼의 숫자 값을 Phoenix에서 액세스하려면 

모든 데이터 유형이 UNSIGN 형식이여야 한다. 

Hbase : var - Integer

Phoenix : var - Integer 

일 경우 매핑이 되지 않는다.



예시 ]

HBase 테이블을 생성한다.

create 'T1', {NAME => 'F1', VERSIONS => 5}


매핑되는 Phoenix테이블을 생성한다.

CREATE VIEW t1 ( pk VARCHAR PRIMARY KEY, f1.val VARCHAR )

Or 

CREATE TABLE t1 ( pk VARCHAR PRIMARY KEY, val VARCHAR )



결과 확인 ]

1. Hbase 테이블 값 변경시 Phoenix 테이블 변경 값 확인

2. Phoenix 테이블 값 변경시 Hbase 테이블 변경 값 확인




참조 : 

https://phoenix.apache.org/faq.html

댓글 없음:

댓글 쓰기