HBase中rowkey及建表方式設計
阿新 • • 發佈:2019-01-11
場景 | 單次查詢條件 | 查詢 方式 |
rowkey設計 | 建表 | 存在的問題 |
指標牆 | 時間、地域、指標都固定 | get | 指標 + 時間 + 子region | 三種場景一個表 | 第一種場景沒問題 |
指標分析 | 地域、指標固定、時間範圍查詢 | scan+過濾器 | scan後有大量的資料需要過濾(多達數十萬以上的資料),直接影響查詢效率 | ||
報表 | 時間、指標固定、指定父地域查詢父子地域的指標 | scan+過濾器 |
場景 | 單次查詢條件 | 查詢 方式 |
rowkey設計 | rowkey字首設計 | 建表 | 設計理由 |
指標牆 | 時間、地域、指標都固定 | get | 指標-地域-時間 | 地域+指標一起做hash | 兩個場景用一個表 | rowkey是固定的用get能夠快速返回 |
指標分析 | 地域、指標固定、時間範圍查詢 | scan | 地域、指標固定後,最大的時間範圍就是365天,scan的資料很小,能快速返回 | |||
報表 | 時間、指標固定、指定父地域查詢父子地域的指標 | scan | 指標-時間-父地域-子地域 | 時間+指標一起做hash | 單獨一個表 | 1、時間、指標、父地域三者固定,scan來查子地域掃描的範圍就少多了 (父地域下的子地域最多有幾千個) 2、時間、指標、父地域三者固定,可以從前兩個場景對應的表裡用get快速 查出父地域的資料 |
原文連結:https://blog.csdn.net/KamRoseLee/article/details/84070349