opentsdb의 hbase 스키마는 다음 url에서 확인할 수 있다.
특이한 점은 데이터는 역순(증분)으로 되어 있고 마지막 uid 정보를 0x00에 저장한다는 점이다.
따라서 scanning할 때 무척 편하게 할 수 있다.
http://opentsdb.net/docs/build/html/user_guide/backends/hbase.html
UID Table Schema
A separate, smaller table called tsdb-uid
stores UID mappings, both forward and reverse. Two columns exist, one named name
that maps a UID to a string and another id
mapping strings to UIDs. Each row in the column family will have at least one of three columns with mapping values. The standard column qualifiers are:
metrics
for mapping metric names to UIDstagk
for mapping tag names to UIDstagv
for mapping tag values to UIDs.
The name
family may also contain additional meta-data columns if configured.
id
Column Family
Row Key - This will be the string assigned to the UID. E.g. for a metric we may have a value of sys.cpu.user
or for a tag value it may be 42
.
Column Qualifiers - One of the standard column types above.
Column Value - An unsigned integer encoded on 3 bytes by default reflecting the UID assigned to the string for the column type. If the UID length has been changed in the source code, the width may vary.
name
Column Family
Row Key - The unsigned integer UID encoded on 3 bytes by default. If the UID length has been changed in the source code, the width may be different.
Column Qualifiers - One of the standard column types above OR one of metrics_meta
, tagk_meta
or tagv_meta
.
Column Value - For the standard qualifiers above, the string assigned to the UID. For a *_meta
column, the value will be a UTF-8 encoded, JSON formatted UIDMeta Object as a string. Do not modify the column value outside of OpenTSDB. The order of the fields is important, affecting CAS calls.
UID Assignment Row
Within the id
column family is a row with a single byte key of \x00
. This is the UID row that is incremented for the proper column type (metrics, tagk or tagv) when a new UID is assigned. The column values are 8 byte signed integers and reflect the maximum UID assigned for each type. On assignment, OpenTSDB calls HBase's atomic increment command on the proper column to fetch a new UID.
'hbase' 카테고리의 다른 글
[hbase] hbase column addFamily, SingleColumnValueFilter 예제 (0) | 2018.03.20 |
---|---|
[Hbase] scan 결과에 대한 디버깅 - CellUtil (0) | 2018.03.19 |
[Phoenix] 시간 관련 API 예제 (0) | 2017.12.19 |
[Phoenix] describe (0) | 2017.12.19 |
[Phoenix] outputformat 결과 출력 형태 변경 예제 (0) | 2017.12.19 |