日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何統計表行數

本文介紹如何統計云原生多模數據庫 Lindorm寬表的總行數。

注意事項

通過HBase Shell工具統計表行數

已通過HBase Shell連接Lindorm寬表引擎,具體操作,請參見通過Lindorm Shell訪問寬表引擎。

通過HBase Shell工具使用COUNT命令可以精確的統計HBase表行數。執行COUNT命令的原理是將表的數據分批次全部掃描出來進行統計,所以建議在相同內網的ECS客戶端上執行COUNT命令。如果通過公網執行COUNT命令,網絡使用率會較大,導致統計效率降低。根據表結構的不同,掃描的速度會有所差別,使用COUNT命令掃描全表的速度可以小于10萬行每秒。執行以下語句統計table表的總行數。

count 'table'

執行結果如下:統計結果顯示

使用HBase RowCounter統計表行數

已通過HBase Shell連接Lindorm寬表引擎,具體操作請參見通過Lindorm Shell訪問寬表引擎

RowCounter會在本地啟動一個偽分布式的MR任務來進行COUNT操作。默認情況下這種方式是按照單個線程來執行的,統計速率與HBase Shell執行COUNT命令的統計速率差不多。如果您想提高統計速度,可以通過指定Dmapreduce.local.map.tasks.maximum=線程數來進行多線程并發執行,需要注意以下兩點:

  • 線程數小于等于表Region的個數。

  • 線程數增多可能造成集群負載過高從而影響線上業務,請根據業務需求設置。

在HBase Shell中執行以下代碼統計Lindorm寬表的行數。

  • 統計目標表table的總行數。

    ./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter  "table"
  • 統計目標表table的總行數,16個線程并發執行。

    ./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter -Dmapreduce.local.map.tasks.maximum=16 "table"
  • 統計NameSpace為ns中的目標表table的總行數。

    ./alihbase-2.0.18/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter  "ns:table"

執行結果保存在Log目錄中的hbase.log文件。image

通過Lindorm SQL統計表行數

已通過Lindorm-cli連接寬表引擎,具體操作請參見通過Lindorm-cli連接并使用寬表引擎

通過Lindorm SQL統計表行數的速度比使用HBase RowCounter統計表行數的速度快,是因為Lindorm自動將COUNT的統計邏輯分布式地下發給每一個Lindorm進程,相當于多線程進行統計,而HBase Shell是單線程進行統計。但是COUNT的統計過程仍然是掃描全表,同時Lindorm SQL中的執行語句默認超時時間為120秒,如果120秒內仍然無法統計出結果,該語句會超時報錯。使用Lindorm SQL統計表行數的速度大概可以達到每臺每秒數十萬行,由于COUNT是分布式進行,集群的機器越多越快。

執行以下代碼統計table表行數。

SELECT COUNT(*) FROM table;

執行結果如下:

+--------+
| EXPR$0 |
+--------+
| 16000  |
+--------+
重要

統計行數需要掃描全表,請慎重操作,如果數據量超過百萬,建議使用搜索索引加速:通過搜索索引查詢寬表數據

通過集群管理系統粗略查看表行數

已進入Lindorm集群管理系統,具體操作請參見登錄集群管理系統。

Lindorm集群管理系統中,在概覽頁面可以粗略查看表行數。該估計值是通過將數據文件的行數元信息累加計算出來的。如果用戶存在更新,刪除等操作,同一行數據可能分布在多個文件當中。同時,文件的行數元信息是在生成文件時統計的,如果用戶使用了TTL功能,文件中的部分數據可能已經過期了,從而導致該信息不準。因此,該值僅僅只是一個估計值。但如果用戶的表沒有更新,沒有刪除和TTL過期,顯示的行數是完全準確的,可以在歷史數據遷移完成時用于估計數據完整性。

Lindorm集群管理系統中,單擊左側導航欄概覽,在當前idc區域下,找到目標表,在預估行列中單擊查看,查看目標表的粗略行數。image

說明

如果表中有數據但預估行數顯示為0,則說明當前Lindorm寬表引擎小版本過低,請升級Lindorm寬表引擎小版本。如何升級,請參見升級小版本