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

Lindorm:Lindorm Shell を使用した LindormTable への接続

最終更新日:Aug 22, 2026

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

前提条件

  • Java Development Kit (JDK) 1.8 以降がインストールされていること。

  • クライアントの IP アドレスを Lindorm インスタンスのホワイトリストに追加済みであること。詳細については、「ホワイトリストの設定」をご参照ください。

注意事項

  • Lindorm Shell を使用して LindormTable に接続する場合、基本的なデータ定義言語 (DDL) とデータ操作言語 (DML) の操作のみを実行できます。サポートされていない操作の詳細については、「HBase API の使用制限」をご参照ください。

  • SQL で作成されたワイドテーブルへのアクセスに HBase API を使用しないでください。文字化けが発生する可能性があります。

  • Lindorm Shell は、Linux または macOS オペレーティングシステムでの使用を推奨します。

    重要

    Windows で Lindorm Shell を使用すると、エラーやライブラリ不足のメッセージが表示されることがあります。その場合は、エラーメッセージの指示に従って、オペレーティングシステムに必要なライブラリを追加する必要があります。

操作手順

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

    1. Lindorm コンソールの左上隅で、インスタンスのリージョンを選択します。インスタンス一覧 ページで、対象インスタンスの ID をクリックします。

    2. 左側メニューで データベース接続 をクリックし、Wide Table Engine タブをクリックします。

    3. [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:LindormTable の接続エンドポイント。このエンドポイントは、コンソールの [HBase Java API によるアクセス] セクションで確認できます。

        • VPC エンドポイント:Lindorm Shell が Lindorm インスタンスと同じ VPC 内の ECS インスタンス上にある場合に使用します。

        • パブリックエンドポイント:Lindorm Shell がオンプレミスのマシンまたは Lindorm インスタンスの VPC 外にある ECS インスタンス上にある場合に使用します。

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

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

    alihbase-2.0.18/bin ディレクトリに移動し、次のコマンドを実行します。

    ./hbase shell

    次の出力は、接続が成功したことを示します。

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

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

Lindorm Shell リファレンス

コマンドリファレンス

シェルコマンドの詳細については、「The Apache HBase Shell」をご参照ください。

データ定義言語 (DDL)

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

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

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

  • is_disabled:テーブルが無効化されているかどうかを確認します。

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

  • is_enabled:テーブルが有効化されているかどうかを確認します。

  • describe:テーブルのプロパティやスキーマなどの詳細を表示します。

  • alter:テーブルを変更します。

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

  • drop:指定されたテーブルを削除します。

データ操作言語 (DML)

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

  • get:指定された行またはセルの内容を取得します。

  • delete:テーブル内のセルの値を削除します。

  • deleteall:指定された行のすべてのセルを削除します。

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

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

  • truncate_preserve:テーブルを切り捨てます。この操作は、指定されたテーブルを無効化、削除し、再作成します。新しいテーブルは、元のテーブルと同じリージョン分割を保持します。

シェルの起動と終了

  • シェル環境を起動します。

    bin/hbase shell
  • シェル環境を終了します。

    quit

例

データの作成と挿入

  1. テーブルを作成します。テーブル名と少なくとも 1 つのカラムファミリーを指定する必要があります。

    create 'table_name', 'column_family_name'

    例:

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

    put 'table_name', 'row_key', 'column_family:column_name', 'value'

    例:

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

    row1 は test テーブルの行キー、cf:a はカラムファミリーとカラム名、value1 は値です。

データのクエリ

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

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

    scan コマンドは、HBase データにアクセスするための柔軟な方法を提供します。scan コマンドを使用して、テーブル全体をスキャンしたり、特定の範囲内のデータをクエリしたりできます。スキャン操作は、get コマンドを使用した単一行のクエリよりもわずかに低速です。次のコマンドを実行して、test テーブルのデータをクエリします。

    scan 'table_name'

    例:

    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
  • テーブルから 1 行のデータをクエリします。

    get 'table_name', 'row_key' 

    例:

    get 'test', 'row1' 

    次の結果が返されます。

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

テーブルの無効化と有効化

テーブルを無効化または有効化します。テーブルの削除、設定の変更、またはその他の管理操作を実行する前に、まず disable コマンドでテーブルを無効化する必要があります。操作が完了したら、enable コマンドを使用して再度有効化します。

disable 'table_name'
enable 'table_name'

テーブルの削除

指定されたテーブルを削除します。

drop 'table_name'

一般的な設定

一般的な設定

  • 指定されたテーブルのメジャーコンパクションの期間を設定します。この設定は、特に必要がない限り変更しないことを推奨します。単位はミリ秒 (ms) です。

    次の例では、メジャーコンパクション期間を 7 日間に設定します。

    alter 'table_name', {NAME => 'column_family_name', CONFIGURATION => {'hbase.hregion.majorcompaction' => 604800000}}
    説明

    デフォルト値: Math.Min(TTL, 1728000000)。TTL を設定しない場合、デフォルト値は 1,728,000,000 ms (20 日) です。

  • 指定されたテーブルのカラムファミリーに圧縮アルゴリズムを設定します。

    alter 'table_name', NAME => 'column_family_name', COMPRESSION => 'ZSTD'
  • 指定されたテーブルのカラムファミリーにブロックエンコーディングタイプを設定します。

    test テーブルのカラムファミリーのブロックエンコーディングタイプを DIFF に設定します。

    alter 'table_name', NAME => 'column_family_name', DATA_BLOCK_ENCODING => 'DIFF'
  • 指定されたテーブルのカラムファミリーに Time-to-Live (TTL) を設定します。TTL の単位は秒 (s) です。たとえば、2,592,000 秒は 30 日に相当します。

    alter 'table_name', NAME => 'column_family_name', TTL => 2592000

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

    alter 'table_name', {NAME => 'column_family_name', TTL => 'FOREVER'}
  • 指定されたテーブルを事前分割します。

    create 'table_name', {NAME => 'column_family_name', COMPRESSION => 'snappy' }, { NUMREGIONS => 50, SPLITALGO => 'HexStringSplit' }

    パラメーター

    パラメーター

    説明

    NAME

    カラムファミリーの名前。

    COMPRESSION

    テーブルデータの圧縮アルゴリズム。デフォルト:None。サポートされているアルゴリズム:

    • ZSTD (推奨)

    • SNAPPY

    • LZ4

    NUMREGIONS

    リージョンの数。経験則として、リージョンあたり 6~8 GB のサイズを目標としてリージョンの数を計算します。大規模なインスタンスの場合、必要に応じてこの数を増やすことができます。

    SPLITALGO

    リージョンを初期化するために使用されるアルゴリズム。サポートされているアルゴリズムとそのユースケースは次のとおりです。

    • HexStringSplit:このアルゴリズムは、16 進文字列で始まる行キーに適しています。

    • DecimalStringSplit:このアルゴリズムは、10 進数の数値文字列で始まる行キーに適しています。

    • UniformSplit:このアルゴリズムは、完全にランダムなプレフィックスを持つ行キーに適しています。

設定を変更した後、次のコマンドを実行して変更が有効になったことを確認できます。

describe 'table_name'