2013-05-22 1 views
0

Hbase 및 Hive의 새로운 기능입니다. 누군가 날 하이브를 사용하여 Hbase에 데이터를 삽입하는 방법을 설명해 주시겠습니까?Hive를 사용하여 HBase에 즉석 쿼리 데이터를 삽입하는 방법

나는 이것에 관한 많은 정보를 발견했지만, 모두 정확히 똑같은 것을 말하고있다. 즉, 다른 기존 테이블에서 Hbase 테이블에 삽입하는 것입니다.

내 경우에는 다릅니다. 나는 사용자로부터 일부 데이터를 읽고 서버로 전송하는 응용 프로그램을 가지고 있으며 들어오는 데이터는 Hbase 테이블에 작성되어야합니다. 어떻게해야합니까?

CREATE TABLE hive_table (key INT, username STRING, password STRING, address STRING) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES('hbase.columns.mapping'=':key, user:val') 
TBLPROPERTIES('hbase.table.name'='hbase_table'); 

내 HBase를 테이블에 다음 레코드를 삽입 할 수 있습니까 하이브 사용 hbase_table입니다 :

key=123, username='something', password='pass', address='somewhere'; 

답변

1

하이브는 ANSI SQL INSERT INTO table VALUES (a, b, c, d)에 대한 모든 지원을 제공하지 않습니다 여기에

내 테이블 insert 문.

  1. : 당신이 문제가되는 데이터를 포함하는 다른 테이블이나 파일이있는 경우 직접 HBase와 상호 작용하려면, 당신은 내가 사용하는 것이 좋습니다,

    INSERT INTO hive_table SELECT key, username, password, address FROM foo

    같은 것을 사용하여 삽입 할 수 있습니다 HBase shell

  2. Phoenix
  3. Kiji
+0

예레미야에게 감사드립니다. 그러면 사용자가 웹 사이트에 등록하고 동시에 작업을 배포 할 때 어떻게 사용자 데이터를 저장할 수 있습니까? 나는 HBase 자체가 어떠한 업무 병렬 처리도 제공하지 않는다고 생각한다. 적어도 MapReduce와 함께 사용하여 작업을 분산시켜야합니다. Hive가 MapReduce를 대신 할 수있는 좋은 대안 인 것처럼이 경우에는 Hive를 사용하고 싶습니다. – CacheCort

+0

HBase와 통신하여 데이터를 쓰면 행 키를 지정합니다. 이 행 키는 하나의 데이터 행을 처리 할 책임이있는 지역 서버를 결정합니다. 하이브는 데이터베이스가 아닙니다. Hive는 작업 번역자입니다. 사실 HiveQL은 MapReduce로 변합니다. 데이터를 HBase 데이터로 푸시하려면 앞서 언급 한 세 가지 HBase 클라이언트 라이브러리를 사용해야합니다. –

+0

알았어, 됐어! 예레미아 감사합니다. – CacheCort

관련 문제