すべてのプロダクト
Search
ドキュメントセンター

Lindorm:Lindorm Shellを使用してLindormTableに接続する

最終更新日:Mar 24, 2025

Lindorm Shellは、Lindormが提供する HBase クライアントツールです。これを使用すると、HBase API for Javaを使用してLindormTableに接続し、テーブルの作成、データの挿入、データのクエリなどの操作を実行できます。このトピックでは、Lindorm Shellをダウンロードし、それを使用してLindormTableに接続する方法について説明します。

前提条件

  • Java Development Kit(JDK) V1.8以降がインストールされている。

  • クライアントのIPアドレスが Lindorm インスタンスのホワイトリストに追加されている。詳細については、「ホワイトリストを構成する」をご参照ください。

使用上の注意

  • Lindorm Shellを使用してLindormTableに接続した後、実行できるのは単純なDDL操作、データ読み取り操作、およびデータ書き込み操作のみです。詳細については、「制限」をご参照ください。

  • SQLを使用して作成されたワイドテーブルにアクセスするために HBase API を使用しないでください。

  • Lindorm Shellを使用してLindormTableに接続する場合は、LinuxまたはmacOS環境にクライアントをデプロイすることをお勧めします。

    Windows環境にクライアントをデプロイする場合、ライブラリがないためにエラーが返される可能性があります。この場合は、対応するライブラリファイルをオペレーティングシステムに追加する必要があります。

手順

  1. Lindorm Shellをダウンロードします。

    1. Lindormコンソールにログインします。ページの左上隅で、Lindormインスタンスがデプロイされているリージョンを選択します。インスタンス一覧 ページで、インスタンスを見つけてインスタンスIDをクリックします。

    2. 左側のナビゲーションペインで、[データベース接続] をクリックします。表示されるページで、Wide Table Engine タブをクリックします。

    3. [hbase互換アドレス] をクリックし、[lindorm Shellのダウンロード] をクリックして、Lindorm Shellのパッケージをダウンロードします。

  2. 次のコマンドを実行して、ダウンロードしたLindorm Shellのパッケージをターゲットパスに解凍します。この例では、パッケージは alihbase-2.0.18 パスに解凍されます。

    tar zxvf hbaseue-shell.tar.gz
  3. 接続パラメータを構成します。

    1. alihbase-2.0.18/conf ディレクトリに移動し、hbase-site.xml ファイルを開きます。

      vi hbase-site.xml
    2. LindormTableへの接続に使用するエンドポイント、ユーザー名、およびパスワードを指定します。

      <configuration>
          <property>
              <name>hbase.zookeeper.quorum</name>
              <value>ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020</value>
          </property>
          <property>
              <name>hbase.client.username</name>
              <value>testuser</value>
          </property>
          <property>
              <name>hbase.client.password</name>
              <value>password</value>
          </property>
      </configuration>

      構成ファイルには、次の接続パラメータを構成できます。

      • hbase.zookeeper.quorum: このパラメータを、Lindormコンソールの [ワイドテーブルエンジン] タブの [hbase Java APIを使用したアクセス] の後に表示されるLindormTableエンドポイントに置き換えます。

        • Lindorm Shellが、Lindormインスタンスと同じVPCにあるElastic Compute Service(ECS)インスタンスにデプロイされている場合は、このパラメータをLindormTableのVPCエンドポイントに置き換えます。

        • Lindorm Shellが、ローカルコンピュータまたはLindormインスタンスと同じリージョンにないECSインスタンスにデプロイされている場合は、このパラメータをLindormTableのパブリックエンドポイントに置き換えます。

      • hbase.client.username および hbase.client.password: これら2つのパラメータを、LindormTableへの接続に使用するユーザー名とパスワードにそれぞれ置き換えます。パスワードを忘れた場合は、LindormTableの [クラスタ管理システム] でパスワードを変更できます。詳細については、「ユーザーのパスワードを変更する」をご参照ください。

  4. Lindorm Shellを使用してLindormTableに接続します。

    alihbase-2.0.18/bin パスに移動し、次のコマンドを実行します。

    ./hbase shell

    次の結果が返された場合、クライアントはLindormTableに接続されています。

    Version 2.0.18, r08b8d58a9d6ce89765d5ebe2ddff425aed644c16, Mon Feb  1 12:46:39 CST 2021
    Took 0.0034 seconds
    説明

    Shellの使用方法の詳細については、「Lindorm Shellリファレンス」セクションをご参照ください。

Lindorm Shellリファレンス

Shellコマンド

Shellコマンドの使用方法の詳細については、「The Apache HBase Shell」をご参照ください。

DDLコマンド

  • create: テーブルを作成します。

  • list: Lindorm内のすべてのテーブルを一覧表示します。

  • disable: テーブルを無効にします。

  • is_disabled: テーブルが無効になっているかどうかを確認します。

  • enable: テーブルを有効にします。

  • is_enabled: テーブルが有効になっているかどうかを確認します。

  • describe: テーブルの属性とスキーマを含む、特定のテーブルの詳細を記述します。

  • alter: テーブルのスキーマを変更します。

  • exists: テーブルが存在するかどうかを確認します。

  • drop: テーブルを削除します。

DMLコマンド

  • put: 特定の列の値を更新します。

  • get: 特定の行または列の値を取得します。

  • delete: 特定の列の値を削除します。

  • deleteall: 行内のすべての列を削除します。

  • scan: テーブル内のデータをスキャンして返します。

  • count: テーブル内の列の数をカウントして返します。

  • truncate_preserve: テーブル内のすべてのデータをクリアします。この操作は、テーブルを無効化して削除し、元のテーブルと同じリージョンを持つ新しいテーブルを作成することで実装されます。

Lindorm Shellの開始と終了

  • Lindorm Shellを開始します。

    bin/hbase shell
  • Lindorm Shellを終了します。

    quit

テーブルを作成し、テーブルにデータを挿入する

  1. テーブルを作成します。テーブルと列ファミリの名前を指定する必要があります。

    create 'テーブル名', '列ファミリ名'

    例:

    // cfという列ファミリを持つtestという名前のテーブルを作成します。
    create 'test', 'cf'
  2. テーブルにデータを挿入します。

    put 'テーブル名', 'Rowkey', '列ファミリ名:列名', '値'

    例:

    put 'test', 'row1', 'cf:a', 'value1'
    put 'test', 'row2', 'cf:b', 'value2'
    put 'test', 'row3', 'cf:c', 'value3'
    説明

    前述のコマンドでは、test はテーブル名、row1 はテーブルの行キー、cf:a は列ファミリ名と列名、value1 は列の値です。

データをクエリする

  • すべてのテーブルに関する情報をクエリします。正規表現を使用して、クエリするテーブルをフィルタリングできます。

    list
    list 'abc.*'
    list 'test'
  • 指定されたテーブルのデータをクエリします。

    scan コマンドは、HBaseテーブルのデータにアクセスするために使用できます。また、テーブル内のすべてのデータ、または指定された範囲内のデータを柔軟にクエリするためにも使用できます。このコマンドのクエリ速度は、get コマンドよりもわずかに遅くなります。次のコマンドを実行して、testテーブルのデータをクエリできます。

    scan 'テーブル名'

    例:

    scan 'test'

    次の結果が返されます。

    ROW                                      COLUMN+CELL
     row1                                    column=cf:a, timestamp=1421762485768, value=value1
     row2                                    column=cf:b, timestamp=1421762491785, value=value2
     row3                                    column=cf:c, timestamp=1421762496210, value=value3
    3 row(s) in 0.0230 seconds
  • テーブル内の特定のデータ行をクエリします。

    get 'テーブル名', 'Rowkey' 

    例:

    get 'test', 'row1' 

    次の結果が返されます。

    COLUMN CELL
     cf:a timestamp=1421762485768, value=value1
    1 row(s) in 0.0350 seconds

テーブルを有効化および無効化する

特定のテーブルを有効または無効にすることができます。テーブルの設定を削除または変更する前に、disable コマンドを実行して、最初にテーブルを無効にする必要があります。削除または変更後、enable コマンドを実行して、このテーブルを有効にすることができます。

disable 'テーブル名'
enable 'テーブル名'

テーブルを削除する

特定のテーブルを削除します。

drop 'テーブル名'

参照設定

共通設定

  • メジャーコンパクション操作が実行される間隔を構成します。間隔の単位はミリ秒です。特別な要件がない限り、間隔を構成しないことをお勧めします。

    次のコマンドを実行して、メジャーコンパクション操作が実行される間隔を7日に設定できます。

    alter 'テーブル名', {NAME => '列ファミリ名', CONFIGURATION => {'hbase.hregion.majorcompaction' => 16800000}}
    説明

    デフォルトの間隔は、次の式を使用して計算されます: Math.Min(TTL,1728000000ms)。テーブルにTTLが指定されていない場合、デフォルトの間隔は 1728000000ms(20日)です。

  • 指定されたテーブルの列ファミリの暗号化アルゴリズムを構成します。

    alter 'テーブル名', NAME => '列ファミリ名', COMPRESSION => 'ZSTD'
  • 指定されたテーブルの列ファミリのブロックエンコーディングタイプを構成します。

    次のコマンドを実行して、testテーブルの列ファミリのブロックエンコーディングタイプをDATA_BLOCK_ENCODINGに設定できます。

    alter 'テーブル名', NAME => '列ファミリ名', DATA_BLOCK_ENCODING => 'DIFF'
  • 指定されたテーブルの列ファミリのTTLを構成します。TTLの単位は秒です。次のコマンドを実行して、列ファミリのTTLを 2592000 秒(30日)に設定できます。

    alter 'テーブル名', NAME => '列ファミリ名', TTL => 2592000

    データを永続的に保持する場合は、TTLをFOREVERに設定できます。例:

    alter 'テーブル名' , {NAME => '列ファミリ名', TTL => 'FOREVER'}
  • HBaseテーブルの事前パーティション分割を構成します。

    create'テーブル名',{NAME => '列ファミリ名',COMPRESSION => 'snappy' }, { NUMREGIONS => 50, SPLITALGO => 'HexStringSplit' }

    パラメータ

    パラメータ

    説明

    NAME

    HBaseテーブルの列ファミリ名。

    COMPRESSION

    HBaseテーブルのデータを圧縮するために使用されるアルゴリズム。このパラメータにはデフォルト値がありません。有効な値:

    • ZSTD (推奨)

    • SNAPPY

    • LZ4

    NUMREGIONS

    パーティションの数。パーティションの数を計算するときは、各パーティションで 6 ~ 8 GB のストレージが使用されると想定できます。インスタンスのサイズに基づいて複数のパーティションを構成できます。

    SPLITALGO

    リージョンを初期化するために使用されるアルゴリズム。次のアルゴリズムがサポートされています。

    • HexStringSplit: このアルゴリズムは、行キーの前に16進文字列が付加されているテーブルに適用できます。

    • DecimalStringSplit: このアルゴリズムは、行キーの前に10進文字列が付加されているテーブルに適用できます。

    • UniformSplit: このアルゴリズムは、行キーのプレフィックスがランダムなテーブルに適用できます。

パラメータ設定を変更した後、次のコマンドを実行して、変更が有効になっているかどうかを確認できます。

describe 'テーブル名'