資工問題雜筆

[資工雜筆] 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) 和開發 (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

OK 回到實作的部分,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做為儲存方式。如果選擇兩者之一就像選者午餐一樣困難的話,詳見連結

 

 

而節點和網路的計價則如下,節點數會影響資料的存取速度﹐須要特別注意的是,開發版本的 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加值服務歡迎隨時聯繫GCP專門家,也可以至GCP技術部落格查看更多GCP 最新消息與技術內容!

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s