クイックスタート: HBase シェルを使用してインスタンスを作成し、データを書き込む

HBase シェルを使用してインスタンスを作成し、データを書き込む

このページでは、HBase シェルを使用して Cloud Bigtable インスタンスに接続する方法や、基本的な管理タスク、テーブルデータの読み取りと書き込みを行う方法について説明します。

HBase shell を使用しない場合は、代わりに cbt ツールを使用したクイックスタートに従ってください。

このクイックスタートでは、Google Cloud Console で Cloud Shell を使用して、HBase shell を実行します。パフォーマンスを高めるために、自分のマシンに HBase シェルをインストールできます。

始める前に

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Cloud Bigtable and Cloud Bigtable Admin APIs.

    Enable the APIs

Bigtable インスタンスを作成する

  1. Google Cloud Console で [インスタンスの作成] ページを開きます。

    [インスタンスの作成] ページを開く

    [インスタンスの作成] ページのスクリーンショット

  2. [インスタンス名] に「Quickstart instance」と入力します。

  3. [インスタンス ID] に「quickstart-instance」と入力します。

  4. [ストレージの種類] で [SSD] を選択します。

  5. [クラスタ ID] に「quickstart-instance-c1」と入力します。

  6. [リージョン] で「us-east1」を選択します。

  7. [ゾーン] で [us-east1-c] を選択します。

  8. [作成] をクリックしてインスタンスを作成します。

インスタンスへの接続

  1. Cloud Shell でターミナル ウィンドウを開きます。

    Cloud Shell で開く

  2. 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//')
  3. HBase シェルファイルを含むリポジトリのクローンを作成し、HBase シェルのディレクトリに移動します。

    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
    cd cloud-bigtable-examples/quickstart
  4. HBase シェルを起動します。

    ./quickstart.sh

これで、接続されました。

データの読み取りと書き込み

Bigtable では、いくつもの行で構成されたテーブルにデータが格納されます。各行は行キーによって識別されます。

各行内のデータは、列のグループである「列ファミリー」に整理されます。列ファミリー内の個々の列は列修飾子によって識別されます。

行と列が交差する部分に、タイムスタンプ付きのセルが複数存在することがあります。

  1. テーブルを my-table という名前で作成し、cf1 という名前で列ファミリーを 1 つ設定します。

    create 'my-table', 'cf1'
    

    シェルによって次のような出力が表示されます。

    0 row(s) in 1.5210 seconds
    
    => Hbase::Table - my-table
    
  2. テーブルの一覧を表示します。

    list
    

    シェルによって次のような出力が表示されます。

    TABLE
    my-table
    1 row(s) in 1.3580 seconds
    
    => ["my-table"]
    
  3. 列ファミリー cf1 と列修飾子 c1 を使用して、r1 行に値 test-value1test-value2 を設定します。

    put 'my-table', 'r1', 'cf1:c1', 'test-value1'
    put 'my-table', 'r1', 'cf1:c1', 'test-value2'
    
  4. 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 行に格納されます。

  5. テーブル my-table を削除します。

    disable 'my-table'
    drop 'my-table'
    
  6. exit」と入力し、Enter キーを押して、HBase シェルを終了します。終了した後に一連のログメッセージが表示されますが、これは正常です。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. Google Cloud コンソールで Bigtable インスタンスのリストを開きます。

    インスタンスのリストを開く

  2. [クイックスタート インスタンス] をクリックします。
  3. [インスタンスの削除] をクリックします。

    [インスタンスの削除] ペインのスクリーンショット

  4. quickstart-instance」と入力し、[削除] をクリックして、インスタンスを削除します。

次のステップ