2017-09-26 4 views
0

사용자 프로필 데이터를 만들려는 요구 사항이 있습니다. 이 프로파일 데이터/스키마는 시간이 지남에 따라 점점 더 많은 속성이 프로파일에 추가된다는 의미를 계속 진화시킬 것입니다. 일부 데이터는 삭제, 업데이트 및 확장 될 수 있습니다.하이브 및 스키마 생성

Hive + Avro가 그러한 용도로 좋은 저장소인지 알고 싶습니다 (하이브가 스키마가 없으며 스키마 진화를 지원하지 않는다고 가정합니다 - 불변의 데이터에 더 적합). HBase/Cassandra가 좋은 선택일까요?

답변

0

하이브/아브로를 사용한 스키마 진화가 가능합니다. 좋은 설명은 here이지만 현재는 Avro 데이터 세트 (ACS 파일 형식이 지원되지만)에서 ACID 삽입/업데이트/삭제를 지원하지 않습니다. HBase/Cassandra는이 사용 사례로 사용될 수 있습니다. 이러한 기술 간의 주요 차별화는 진화하는 데이터 (읽기/쓰기 성능, 기본 저장소, CAP 속성, 데이터 쿼리 요약을위한 기본 프레임 워크 (지도 축소 또는 기본) 등) 및 각 이러한 기술. 이 세 가지를 나란히 비교할 수 있습니다. here

+0

감사합니다. 기존 레코드의 업데이트 및 삭제와 관련하여 질문이 있습니다. 예를 들어, 위의 링크에서 "natalia"에 대해 "Italy"로 국가를 변경하고 "tofi"에 대한 레코드를 삭제하려는 경우 하이브를 통해이 작업을 수행 할 수 있습니까? Avro 파일에서 이것이 변경됩니까? Avro 파일은 (HDFS에서와 같이) 불변이므로, 새로운 Avro 파일을 생성합니까? HBase에서이 (삭제/업데이트) 작동 방식을 이해합니다. (다른 HFile (불변)을 유지 관리하여 자동으로 처리 한 다음 최신 버전의 데이터 만 유지하도록 보조/주요 압축을 수행합니다) – sunillp

+0

오른쪽 - 나는 하이브가 아직 Avro 형식의 트랜잭션 삽입/업데이트/삭제를 지원하지 않는다고 생각하지만 현재 ORC 파일 형식에서만 지원됩니다. 그래서 당신의 유스 케이스에서 Avro를 배제 할 것입니다. – Shailendra

+0

그런 다음 ORC 파일 형식은 스키마 진화, 즉 새로운 레코드 또는 기존 레코드에 대한 새로운 컬럼 추가를 지원합니까? 나는이 모든 지원을 새로운/기존 레코드에 삽입/업데이트/삭제/확장 스키마가 필요합니다. HBase/Cassandra가 더 나은 선택 일 것이라고 생각하십니까? – sunillp