Google Cloud Bigtable  介紹與實作 – 完全代管的 NoSQL 資料庫服務

Google Cloud Bigtable  應用實例

在這篇文章之前,部落格分享了好多機器學習、深度學習在視覺語音文字結構翻譯的運用。要訓練這些模型,都需要大量的資料。這些資料從哪裡來?怎麼儲存?對於大如Google 的公司來說,都是一個非常大的問題,也是為什麼大數據這個名詞會在幾年前非常火紅。而本篇要介紹的是 Google Cloud Bigtable 是 NoSQL database 用在大數據的商用版本。

Cloud Bigtable 優點

• 速度快、效能高,以下是兩種 storage type 的存取速度。其中 QPS 代表每秒鐘可以進行幾次的查詢。關於 Cloud Bigtable 如何透過 load balance 來提高存取速度,Google 的官方文件也有給出很精美的圖文介紹,參見 連結 。

螢幕快照 2017-12-26 下午8.11.26.png

• 調整資源配置容易
• 和常見的大數據開源工具例如 Hadoop 和 HBase Shell 的整合度都相當高,這點會在等一下的實作裡提到

實作

在開始之前,需要先把 Google Cloud Bigtable 的權限開起來,點連結,並選擇 project。接著我們要來進行配置,請按照以下配置。而執行個體類型 (instance type) 的部分,我們選擇開發(development) 即可。

螢幕快照 2017-12-26 下午9.31.52.png

實際工作環境 (production) vs 開發 (development)

實際工作環境  (production) 和開發 (development) 的差別主要是在 node 數,實際須最少指定 3 個,而開發只有 1 個。但因為 node 數會影響查詢的 latency,所以當產品擺上線時,建議選擇 production。此外,production 比起 development 還有一個大優勢,那就是 production 環境才有支援 SLA (Service Level Agreement)。什麼是 SLA 呢,簡單來說就是 Google 對自己產品的一個保證,倘若因為任何因素,導致服務掛彩,當掛彩時間相比 1 個月超過一定比例的話,Google 會給客戶下個月一定的優惠。以下是 SLA 的級距,當正常運作時間是一個月的 99% ~ 99.5% 時,下個月 Google 會作 10% 的優惠,以此類推。
螢幕快照 2017-12-27 下午8.25.46.png

回到實作的部分,Create 完  instance 之後,我們要使用 shell 來操作我們的 cluster,請點連結。點連結的同時,會詢問是否 clone Google Bigtable quickstart 的教學 repo,請點繼續。連上後,請輸入

gcloud config set project

project id 的部分,請選擇當初開 Bigtable instance 的 project,如果不知道的話,請點連結,而 id 是下圖紅框的部分。

螢幕快照 2017-12-26 下午9.16.48.png

接著執行

./quickstart.sh

有可能會接收到以下的詢問,那就補上下圖紅框的 id 即可。

螢幕快照 2017-12-26 下午9.32.55.png

接著,程式會自動安裝上 java、hadoop、Hbase shell,並自動進入 Hbase shell,如下圖。

螢幕快照 2017-12-26 下午9.34.46.png

Hbase shell 的功能是拿來操作 hadoop HDFS file system。透過 Hbase Shell,我們可以快速 create/drop table 和 insert/delete data。以下做幾個簡單的操作:
• 創建 table,然後 column family 為 cf1。column family 是 NoSQL database 像是 Cassandra 的一個特殊用法,詳細可以參考教學(英) (中1) (中2)

螢幕快照 2017-12-26 下午9.37.28.png• 列出所有 table螢幕快照 2017-12-26 下午9.38.32.png• 把 test-value 放在 row r1, 使用 column family cf1 和 column qualifier c1

螢幕快照 2017-12-26 下午9.45.26.png• 使用 scan 指令來看我們到底加了什麼資料

螢幕快照 2017-12-26 下午9.45.35.png• 最後把 my-table 砍掉

螢幕快照 2017-12-26 下午9.50.14.png

計價方式

目前主流的儲存硬體主要是 HDD 和 SSD。SSD 有著存取速度快的優點,相對的價格比起HDD而言會高一些。在創建 Bigtable 的時候可以選擇要使用哪一種。一般來說如果價格不是大問題的話,盡量選擇 SSD,在需要大量儲存,且 latency 不會是大議題的時候,才選擇HDD做為儲存方式。如果選擇兩者之一就像選者午餐一樣困難的話,詳見連結

螢幕快照 2017-12-26 下午8.33.54

而節點和網路的計價則如下,節點數會影響資料的存取速度﹐須要特別注意的是,開發版本的 Bigtable node 數只有 1 個,而實際工作環境的最小的點節點數為 3。螢幕快照 2017-12-26 下午8.19.31.png

至於網路輸出的意思代表的是資料傳輸到哪裡,以下是台灣機房的價格:

螢幕快照 2017-12-26 下午9.59.26.png

結語

以上是這一次的 Cloud Bigtable 教學,我們使用了 Google 提供的 quickstart 來快速建置 Hadoop 和 Hbase Shell,然後使用 Hbase shell 來建立 table 和插入資料。
(相關文章:GCP 存儲服務(一): Cloud Storage/ Datastore / Bigtable / SQL 介紹與比較)

(相關文章:Google 儲存空間(二): Cloud Storage/ Datastore / Bigtable / SQL 計價方式與使用優勢)
(相關文章:Google Cloud Datastore 介紹與實作 – 高度擴充性的 NoSQL 資料庫)

(本文來自合作部落客 沒一村:沒一村生活點滴,GCP 專門家授權轉載。)

 


iKala - GCP 專門家

GCP 專門家,Google Cloud 首席合作夥伴暨代理商,協助逾 200 家企業使用 Google Cloud,客戶廣布遊戲、媒體、數據廣告、電商、金融等多種產業。我們擁有超過 30 位技術人員,更通過 Google 原廠雲端架構師及資料工程師認證,具備第一手 GCP 產品開發及導入經驗,能提供您紮實的客製化技術服務。

我們提供了多項的 GCP 加值服務:

了解更多: https://gcp.expert/
加入我們: https://goo.gl/rg9D3Q
Facebook Fan Page: https://www.facebook.com/gcp.expert/
聯絡我們:+886 2 87681110 或請來信 gcp@ikala.tv