2017-10-15 2 views
0

나는 Cell in HBase을 읽고 그 값이 주어진 행, 열 패밀리, 열 한정자, 타임 스탬프 및 유형에서 고유하다는 것을 알았습니다.HBase에서 사용되는 셀 유형은 어떻게됩니까?

처음 4 개를 알았지 만 HBase가 바이트 배열로 모든 것을 저장한다는 사실을 알지 못해서 type에 대해 아무것도 알지 못했습니다. 그런 다음 값의 유형이 아니라 The byte representation of the KeyValue.TYPE of this cell: one of Put, Delete, etc이라는 것을 발견했습니다. 코드 here에 링크하십시오. 그것은 그 Cell 상태를 야기 CRUD 연산 값

  • 인가? 왜 HBase에 저장됩니까?
  • Cell의 유형은 delete 일 수 있습니까? 삭제 후에 셀을 제거하면 안됩니까?

답변

1

HBase는 즉시 셀을 삭제하지 않고 대신 셀이 삭제되었음을 나타내는 묘비 마커를 넣습니다. 스캔 및 작업을 수행하면이 마커가 표시되면 셀을 무시합니다. 주요 압축 후에 이러한 모든 셀은 물리적으로 삭제됩니다.

+0

상자에 묘비 및이 필드를 사용하는 대신이 정보에 액세스하는 것이 유용합니까? –

+0

@AndreaBergonzo 삭제 된 것을 포함하여 모든 셀을 읽을 수있는 스캔을 프로그래밍 방식으로 만들 수 있습니다. 그것이 api에서 사용할 수있는 이유입니다. – AdamSkywalker

+0

알 수 있습니다. 응용 프로그램/비즈니스 계층에서 삭제되지만 실제로 HBase에서는 삭제되지 않는 셀을 검색하는 사용 사례는 보이지 않고 압축이 실제로 제거 될 때까지 기다리고 있습니다. HBase 자체에서만 관리되는 대신 정보가 필요한 유스 케이스에 대해 생각했습니다. 이 대답은 내 질문에 동의하는 것입니다. –

관련 문제