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

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

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

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

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

始める前に

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します

  3. Cloud Bigtable and Cloud Bigtable Admin API を有効にします。

    API を有効にする

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」と入力し、[削除] をクリックして、インスタンスを削除します。

次のステップ