天天看點

Microsoft Teams is about to launch the "Hide My Videos" feature

IT Home December 31 news that microsoft teams can't currently hide their video previews when it comes to video conferencing, but the company is planning to provide this feature soon.

Microsoft Teams is about to launch the "Hide My Videos" feature

Microsoft says constantly looking at your own video previews in Microsoft Teams can cause fatigue, and the new Hide My Videos feature will give users the ability to hide their video footage while others can still see the video without ruining the video experience during a call.

"Seeing yourself puts pressure on your brain because you have to deal with extra information, not to mention distraction — you can avoid that by hiding your videos," Microsoft said. ”

IT House understands that for most users, the feature will begin rolling out in January and will be fully available in February, though MoD and GCC-H users may have to wait until February to March 2022, and the change will only affect Windows and Mac desktop clients.

HBase基本知識介紹及典型案例分析

一、HBase是什麼?

HBase表核心概念

HBase資料模型:邏輯視圖

HBase資料模型:實體視圖

HBase架構

HBase寫資料

HBase MemStore

HBase Region Flush

HBase Compaction

HBase Spilt

HBase讀資料

HBase Region查找

二、RowKey設計

RowKey的作用

RowKey的設計原則

RowKey的設計——Salting

RowKey的設計——Hashing

RowKey的設計——Reversing

三、HBase多模式

多種資料格式

HBase多模式

Phoenix - SQL

Spark分析

Solr

HGraphDB - Graph

GeoMesa - GeoSpatial

四、HBase典型案例分析

HBase應用場景

車聯網案例 – 海量資料存儲

廣告買流分析平台

支付寶賬單查詢

曆史訂單全文查找

分布式、多版本、面向列的開源KV資料庫;

支援PB、百萬列的資料存儲;

強一緻性、高擴充、高可用。

RowKey:表中每條記錄的主鍵

Column Family:列族,将表進行橫向切割,簡稱CF;

Column:屬于某一個列族,可動态添加列;

Version Number:類型為Long,預設值是系統時間戳,使用者也可以自定義;

Value:真實資料。

HBase基本知識介紹及典型案例分析

一行(Row)資料是可以包含一個或多個 Column Family,但是我們并不推薦一張 HBase 表的 Column Family 超過三個。Column 是屬于 Column Family 的,一個 Column Family 包含一個或多個 Column。

Region:一段資料的集合;

RegionServer:用于存放Region的服務。

在實體層面上,所有的資料其實是存放在 Region 裡面的,而 Region 又由 RegionServer 管理,其對于的關系如下:

HBase基本知識介紹及典型案例分析

一個 RegionServer 管理多個 Region;而一個 Region 管理一個或多個 Column Family。

HBase基本知識介紹及典型案例分析

這張表有兩個 Column Family ,分别為 personal 和 office。而 personal 又有三列name、city 以及 phone;office 有兩列 tel 以及 address。由于存儲在 HBase 裡面的表一般有上億行,是以 HBase 表會對整個資料按照 RowKey 進行字典排序,然後再對這張表進行橫向切割。切割出來的資料是存儲在 Region 裡面,而不同的 Column Family 雖然屬于一行,但是其在底層存儲是放在不同的 Region 裡。是以這張表我用了六種顔色表示,也就是說,這張表的資料會被放在六個 Region 裡面的,這就可以把資料盡可能的分散到整個叢集。

一行 HBase 的資料其實是分了好幾行存儲,一個列對應一行,HBase 的 KV 結構如下:

HBase基本知識介紹及典型案例分析

RowKey 為 Row1 的資料第一清單示為上圖最後一行的形式。以此類推,整個表的存儲就可以如下表示:

HBase基本知識介紹及典型案例分析

可以從上面的 kv 表現形式看出,Row11 的 phone 這列其實是沒有資料的,在 HBase 的底層存儲裡面也就沒有存儲這列了,這點和我們傳統的關系型資料庫有很大的差別,有了這個特點, HBase 特别适合存儲稀疏表。

HBase支援資料多版本特性,通過帶有不同的時間戳的多個KeyValue版本來實作;

每次put、delete都會産生一個新的cell,都擁有一個版本;

預設隻存資料的三個版本,可以配置;

查詢預設傳回最新版本的資料,可以通過制定版本号或版本數擷取舊資料。

HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析

先将資料寫到WAL中;

WAL存放在HDFS上;

每次put、Delete操作的資料均追加到WAL末端;

持久化到WAL之後,再寫到MemStore中;

兩者寫完傳回ACK到用戶端。

MemStore 其實是一種記憶體結構,一個Column Family 對應一個MemStore,MemStore 裡面的資料也是對 Rowkey 進行字典排序的,如下:

HBase基本知識介紹及典型案例分析

既然我們寫數都是先寫 WAL,再寫 MemStore ,而 MemStore 是記憶體結構,是以 MemStore 總會寫滿的,将 MemStore 的資料從記憶體刷寫到磁盤的操作成為 flush:

HBase基本知識介紹及典型案例分析

以下幾種行為會導緻 flush 操作

全局記憶體控制;

MemStore使用達到上限;

RegionServer的Hlog數量達到上限;

手動觸發;

關閉RegionServer觸發。

每次 flush 操作都是将一個 MemStore 的資料寫到一個 HFile 裡面的,是以上圖中 HDFS 上有許多個 HFile 檔案。檔案多了會對後面的讀操作有影響,是以 HBase 會隔一定的時間将 HFile 進行合并。根據合并的範圍不同分為 Minor Compaction 和 Major Compaction:

HBase基本知識介紹及典型案例分析

Minor Compaction: 指選取一些小的、相鄰的HFile将他們合并成一個更大的Hfile。

Major Compaction:

将一個column family下所有的 Hfiles 合并成更大的;

删除那些被标記為删除的資料、超過TTL(time-to-live)時限的資料,以及超過了版本數量限制的資料。

HBase 讀操作相對于寫操作更為複雜,其需要讀取 BlockCache、MemStore 以及 HFile。

HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析

用戶端按照上面的流程查找需要讀寫的 RegionServer 。這個過程一般是第一次讀寫的時候進行的,在第一次讀取到中繼資料之後用戶端一般會把這些資訊緩存到自己記憶體中,後面操作直接從記憶體拿就行。當然,後面中繼資料資訊可能還會變動,這時候用戶端會再次按照上面流程擷取中繼資料。

HBase 中的 Rowkey 主要有以下的作用:

讀寫資料時通過Row Key找到對應的Region

MeMStore中的資料按RowKey字典順序排序

HFile中的資料按RowKey字典順序排序

HBase基本知識介紹及典型案例分析

底層的 HFile 最終是按照 Rowkey 進行切分的,是以我們的設計原則是結合業務的特點,并考慮高頻查詢,盡可能的将資料打散到整個叢集。

綜合業務的特點,考慮高頻查詢,盡可能的将資料打散到整個叢集。

HBase基本知識介紹及典型案例分析

Salting的原理是将固定長度的随機數放在行鍵的起始處。

HBase基本知識介紹及典型案例分析

優缺點:由于字首是随機生成的,如果想要按照字典序找到這些行,則需要更多的工作。從這個角度來看,salting增加了寫操作的吞吐量,也增大了讀操作的開銷。

Hashing的原理将RowKey進行hash計算,然後取hash得部分字元串和原來的RowKey進行拼接。

HBase基本知識介紹及典型案例分析

優缺點:可以一定程度的打算整個資料集,但是不利于Scan;由于不同資料的hash值可能一樣,實際應用可以使用md5計算,然後截取前幾位的字元串,如:

Reversing的原理是反轉一段固定長度或全部的鍵。

HBase基本知識介紹及典型案例分析

優缺點:有效地打亂了行鍵,但是犧牲了行排序的屬性。

HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析

HBase 的生态主要有:

Phoenix:主要提供使用 SQL 的方式來查詢 HBase 裡面的資料。一般能夠在毫秒級别傳回,比較适合 OLTP 場景。

Spark:我們可以使用 Spark 進行 OLAP 分析;也可以使用 Spark SQL 來滿足比較複雜的 SQL 查詢場景;使用 Spark Streaming 來進行實時流分析。

Solr:原生的 HBase 隻提供了 Rowkey 單主鍵,如果我們需要對 Rowkey 之外的列進行查找,這時候就會有問題。幸好我們可以使用 Solr 來建立二級索引/全文索引充分滿足我們的查詢需求。

HGraphDB:HGraphDB是分布式圖資料庫。依托圖關聯技術,幫助金融機構有效識别隐藏在網絡中的黑色資訊,在團夥欺詐、黑中介識别等。

GeoMesa:目前基于NoSQL資料庫的時空資料引擎中功能最豐富、社群貢獻人數最多的開源系統。

OpenTSDB:基于HBase的分布式的,可伸縮的時間序列資料庫。适合做監控系統;譬如收集大規模叢集(包括網絡裝置、作業系統、應用程式)的監控資料并進行存儲,查詢。

為HBase提供關系資料庫的SQL能力,用于低延遲的OLTP及操作性分析。

SQL引擎:

支援ANSI 92文法

算子/過濾條件下推到Server執行

支援所有HBase特性:動态列、TTL等;

支援二級索引

HBase基本知識介紹及典型案例分析

OLAP

利用Spark-SQL查詢一些比較複雜的分析

利用Spark Streaming進行實時流分析,結果存入HBase

直接讀取HFile

HBase基本知識介紹及典型案例分析

基于Lucene的全文搜尋引擎

為HBase添加二級索引功能;

提供範圍查找、模糊查找等。

HBase基本知識介紹及典型案例分析

HGraphDB是分布式圖資料庫,底層基于HBase;

支援數百億點與邊的即時查詢;

支援OLTP & OLAP。

應用:依托圖關聯技術,幫助金融機構有效識别隐藏在網絡中的黑色資訊,在團夥欺詐、黑中介識别等。

目前基于NoSQL資料庫的時空資料引擎中功能最豐富、社群貢獻人數最多的開源系統;

提供了多種空間索引方式供使用者靈活選擇;

提供了基于Coprocessor的空間查詢方式,将計算過程放置在server端,能夠減少通訊開銷,進而獲得很好的性能提升;

提供了豐富資料入庫、操作等工具,便于使用者處理資料;

提供了多種空間資料分析算法,如KNN、直方圖、熱點分析、TubeSelect等;

基于OGC标準設計,便于系統間的內建與互操作。

HBase基本知識介紹及典型案例分析

場景:百萬車載終端,百TB級資料不間斷寫入,數十億級資料量下分頁查詢和車輛曆史軌迹查詢要求毫秒級響應

HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析
HBase基本知識介紹及典型案例分析

Read on