HBase シェルを使用してインスタンスを作成し、データを書き込む
このページでは、HBase シェルを使用して Cloud Bigtable インスタンスに接続する方法や、基本的な管理タスク、テーブルデータの読み取りと書き込みを行う方法について説明します。
HBase shell を使用しない場合は、代わりに cbt
ツールを使用したクイックスタートに従ってください。
このクイックスタートでは、Google Cloud Console で Cloud Shell を使用して、HBase shell を実行します。パフォーマンスを高めるために、自分のマシンに HBase シェルをインストールできます。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable and Cloud Bigtable Admin APIs.
Bigtable インスタンスを作成する
Google Cloud Console で [インスタンスの作成] ページを開きます。
[インスタンス名] に「
Quickstart instance
」と入力します。[インスタンス ID] に「
quickstart-instance
」と入力します。[ストレージの種類] で [SSD] を選択します。
[クラスタ ID] に「
quickstart-instance-c1
」と入力します。[リージョン] で「us-east1」を選択します。
[ゾーン] で [us-east1-c] を選択します。
[作成] をクリックしてインスタンスを作成します。
インスタンスへの接続
-
Cloud Shell でターミナル ウィンドウを開きます。
-
HBase シェルと Java 用 Cloud Bigtable HBase クライアントを使用するには、Java 8 ランタイム環境をインストールする必要があります。Java の他のバージョンはサポートされていません。次のコマンドを実行して、Java 8 環境をインストールして設定します。
sudo apt-get update
sudo apt-get install openjdk-8-jdk-headless
export JAVA_HOME=$(update-alternatives --list java | tail -1 | sed -E 's/\/bin\/java//') -
HBase シェルファイルを含むリポジトリのクローンを作成し、HBase シェルのディレクトリに移動します。
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git cd cloud-bigtable-examples/quickstart
HBase シェルを起動します。
./quickstart.sh
これで、接続されました。
データの読み取りと書き込み
Bigtable では、いくつもの行で構成されたテーブルにデータが格納されます。各行は行キーによって識別されます。
各行内のデータは、列のグループである「列ファミリー」に整理されます。列ファミリー内の個々の列は列修飾子によって識別されます。
行と列が交差する部分に、タイムスタンプ付きのセルが複数存在することがあります。
テーブルを
my-table
という名前で作成し、cf1
という名前で列ファミリーを 1 つ設定します。create 'my-table', 'cf1'
シェルによって次のような出力が表示されます。
0 row(s) in 1.5210 seconds => Hbase::Table - my-table
テーブルの一覧を表示します。
list
シェルによって次のような出力が表示されます。
TABLE my-table 1 row(s) in 1.3580 seconds => ["my-table"]
列ファミリー
cf1
と列修飾子c1
を使用して、r1
行に値test-value1
とtest-value2
を設定します。put 'my-table', 'r1', 'cf1:c1', 'test-value1' put 'my-table', 'r1', 'cf1:c1', 'test-value2'
scan
コマンドを使用してテーブルをスキャンし、追加したデータの最新の 2 つのバージョンを読み取ります。scan 'my-table', {VERSIONS => 2}
シェルによって次のような出力が表示されます。
ROW COLUMN+CELL r1 column=cf1:c1, timestamp=1679495055049, value=test-value1 r1 column=cf1:c1, timestamp=1679494856213, value=test-value2 1 row(s) in 1.2120 seconds
タイムスタンプが同じ 2 つの値が、同じ列の
r1
行に格納されます。テーブル
my-table
を削除します。disable 'my-table' drop 'my-table'
「
exit
」と入力し、Enter キーを押して、HBase シェルを終了します。終了した後に一連のログメッセージが表示されますが、これは正常です。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
-
Google Cloud コンソールで Bigtable インスタンスのリストを開きます。
- [クイックスタート インスタンス] をクリックします。
- [インスタンスの削除] をクリックします。
- 「
quickstart-instance
」と入力し、[削除] をクリックして、インスタンスを削除します。
次のステップ
- Bigtable Codelab に取り組む。
- コードサンプルを見る。
- 不正行為の検出のユースケースのサンプル ソースコードを見る。
- C#、C++、Go、Java、Node.js、PHP、Python、Ruby で、または Java 用 HBase クライアントを使用して Hello World アプリケーションを作成する。