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 を使用すると、エラーやライブラリ不足のメッセージが表示されることがあります。その場合は、エラーメッセージの指示に従って、オペレーティングシステムに必要なライブラリを追加する必要があります。
操作手順
Lindorm Shell をダウンロードします。
Lindorm コンソールの左上隅で、インスタンスのリージョンを選択します。インスタンス一覧 ページで、対象インスタンスの ID をクリックします。
左側メニューで データベース接続 をクリックし、Wide Table Engine タブをクリックします。
[Lindorm Shell] の ダウンロード をクリックします。
次のコマンドを実行して、Lindorm Shell パッケージを展開します。この例では、パッケージを
alihbase-2.0.18ディレクトリに展開します。tar zxvf hbaseue-shell.tar.gz接続パラメーターを設定します。
alihbase-2.0.18/confディレクトリに移動し、hbase-site.xmlファイルを開きます。vi hbase-site.xmlLindormTable の接続エンドポイント、ユーザー名、パスワードを設定します。
<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 の クラスター管理システム で変更できます。詳細については、「ユーザーのパスワード変更」をご参照ください。
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 つのカラムファミリーを指定する必要があります。
create 'table_name', 'column_family_name'例:
// cf という名前のカラムファミリーを持つ test という名前のテーブルを作成します。 create 'test', 'cf'データを挿入します。
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'