<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                HBase 是稀疏的,稀疏主要是針對 HBase 列的靈活性,在列族(column family)中,你可以指定任意多的列,<mark>在列數據為空的情況下,是不會占用存儲空間的</mark>。 <br/> HBase 底層存儲的數據是 Key/Value 格式的數據。HBase 邏輯上也可以看成一個二維表格,可以添加行,可以動態添加列。 ![](https://img.kancloud.cn/73/f0/73f05d4ce96cb84852392b450a85939f_1032x594.png) ```sql 在一張表中由 [rowkey, column family, column qualifier, timestamp]: [value] 來找到value。 a, cf1, "bar", 1368394583: 7 a, cf1, "bar", 1368394261: "hello" ``` [TOC] # 1. RowKey RowKey 是用來檢索記錄的主鍵。類似關系型數據庫中的主鍵,但是 RowKey在 HBase 中功能不只是為了檢索,HBase 中表數據會按照 RowKey 進行排序,并會在 HRegion 達到一定大小后,會按照 RowKey 范圍進行裂變。<br/> HBase Table 中的行,只有三種方式: 1. 通過單個 RowKey 訪問 2. 通過 RowKey 的 range(正則) 3. 全表掃描 RowKey可以是任意字符串(最大長度是 64KB,實際應用中長度一般為 10-100bytes),在 HBase 內部,RowKey 保存為字節數組`byte[]`。存儲時,數據按照 RowKey 的字典順序排序存儲。設計 RowKey 時,要充分利用排序存儲這個特性,將經常一起讀取的行存儲放到一起。(位置相關性)。 <br/> # 2. Column Family 列族是 HBase 對表在縱向上的優化,前面介紹過 Region,將一個表橫向上切成多個 Region,列族是在縱向進行切分的,將多列分成一組進行管理。 <br/> 列族在物理存儲上對應于 HDFS 上的一個目錄。HBase 表中的每個列,都歸屬于某個列族。列族是表的 schema 的一部分(而列不是),必須在使用表之前定義(也就是創建表時定義)。列名都以列族作為前綴。例如 `courses:history`,`courses:math` 都屬于 courses 這個列族。 <br/> 每一個列族對應一個 Store,也對應 HDFS 一個目錄,類似于 Hive 分區操作一樣,HBase 相當于按列族進行了分區。 <br/> # 3. Cell 由`{RowKey, ColumnFamily, Version}` 唯一確定的單元。其中 Versions 實際上是TimeStamp。 <br/> Cell 可以看成是一個存儲空間,類似與 Excel 中的單元格,Cell 中的數據是沒有類型的,全部是字節碼形式存儲。 <br/> # 4. Time Stamp HBase中通過Rowkey和 `ColumnFamily:Column`確定的一個存儲單元稱為Cell。每個 Cell 都保存著同一份數據的多個版本。版本通過時間戳來索引。時間戳的類型是 64 位整型。 <br/> 時間戳可以由 HBase(在數據寫入時自動 )賦值,此時時間戳是精確到毫秒的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數據版本沖突,就必須自己生成具有唯一性的時間戳。 <br/> 每個 cell 中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。為了避免數據存在過多版本造成的管理 (包括存儲和索引)負擔,HBase 提供了兩種數據版本回收方式。一是保存數據的最后 n 個版本,二是保存最近一段時間內的版本(比如最近七天)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看