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

ApsaraDB for HBase:HBaseシェル

最終更新日:Jan 16, 2025

HBaseシェルを使用して、ApsaraDB for HBaseのデータを管理できます。たとえば、テーブルの作成、データの挿入、データの削除、テーブルの削除などです。このトピックでは、HBaseシェルについて簡単に紹介します。

アクセス構成

共通コマンド

このセクションでは、HBaseシェルでサポートされている共通コマンドについて説明します。詳細については、The Apache HBase Shellをご参照ください。

  • データ定義言語

    create: creates a table. // テーブルを作成します。
    list: lists all tables in HBase. // HBaseのすべてのテーブルを一覧表示します。
    disable: disables a table. // テーブルを無効にします。
    is_disabled: verifies whether a table is disabled. // テーブルが無効になっているかどうかを確認します。
    enable: enables a table. // テーブルを有効にします。
    is_enabled: verifies whether a table is enabled. // テーブルが有効になっているかどうかを確認します。
    describe: provides the description of a table. // テーブルの説明を提供します。
    alter: alters a table. // テーブルを変更します。
    exists: verifies whether a table exists. // テーブルが存在するかどうかを確認します。
    drop: deletes a table from HBase. // HBaseからテーブルを削除します。
  • データ操作言語

    put: puts a cell value at a specified column in a specified row in a particular table. // 特定のテーブルの特定の行の特定の列にセル値を配置します。
    get: gets the content of a row or cell. // 行またはセルの内容を取得します。
    delete: deletes a cell value in a table. // テーブル内のセル値を削除します。
    deleteall: deletes all cells in a given row. // 指定された行のすべてのセルを削除します。
    scan: scans and returns table data. // テーブルデータをスキャンして返します。
    count: counts and returns the number of rows in a table. // テーブルの行数をカウントして返します。
    truncate: truncates all data in a table. This command actually disables, deletes, and re-creates a specified table. This command causes the loss of regions. // テーブル内のすべてのデータを切り捨てます。このコマンドは、実際には指定されたテーブルを無効化、削除、および再作成します。このコマンドを実行すると、リージョンが失われます。
    truncate_preserve: truncates all data in a table. This command actually disables, deletes, and re-creates a specified table. The regions in the new table are consistent with those in the old table. // テーブル内のすべてのデータを切り捨てます。このコマンドは、実際には指定されたテーブルを無効化、削除、および再作成します。新しいテーブルのリージョンは、古いテーブルのリージョンと一致します。

HBaseシェルの実行と終了

  • HBaseシェルを実行するには、次のコマンドを実行します。

    bin/hbase shell
  • HBaseシェルを終了するには、次のコマンドを実行します。

    quit
  • 基本的なコマンドとその使用方法を表示するには、次のコマンドを実行します。

    help

基本操作

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

    create コマンドを使用してテーブルを作成します。テーブルを作成するときは、テーブルと列ファミリの名前を入力する必要があります。

    // testという名前のテーブルを作成します。このテーブルには、cfという名前の列ファミリがあります。
    create 'test', 'cf'
  • すべてのテーブルに関する情報をクエリします。

    list コマンドを使用して、HBaseデータベース内のすべてのテーブルに関する情報をクエリします。正規表現を使用してテーブルをフィルタリングすることもできます。

    list
    list 'abc.*'
    list 'test'
  • データを挿入します。

    put コマンドを使用して、新しいテーブルにデータを挿入します。たとえば、次のステートメントを実行して、3つのデータレコードをテーブルに挿入できます。

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

    上記のステートメントでは、test はテーブル名、row1 はテーブルのrowkey、cf:a はカスタム列ファミリ名と列名、value1 は値を示します。

  • 指定したテーブルのデータをクエリします。

    scan コマンドを使用して、HBaseデータをクエリできます。このコマンドを使用して、テーブルをスキャンしたり、指定した範囲内のデータをクエリしたりできます。ただし、このコマンドは、単一のデータレコードをクエリするために使用される get コマンドよりもクエリ結果を返す速度が遅くなります。この例では、デモデータベースに少量のデータしか格納されていないため、scanコマンドを使用しています。testという名前のテーブルのデータをクエリするには、次のステートメントを実行します。

    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 コマンドを使用して、テーブル内の単一のデータレコードをクエリします。

    get 'test', 'row1'

    次のデータが返されます。

    COLUMN                                   CELL
     cf:a                                    timestamp=1421762485768, value=value1
    1 row(s) in 0.0350 seconds
  • 指定したテーブルを無効にして有効にします。

    テーブルを削除したり、設定を変更したりする場合は、最初に [無効化] コマンドを使用してテーブルを無効にする必要があります。テーブルを削除するか、設定を変更した後、[有効化] コマンドを使用してテーブルを有効にします。

    disable 'test'
    enable 'test'
  • 指定したテーブルを削除します。

    [削除] コマンドを使用してテーブルを削除します。このコマンドは注意して使用してください。

    drop 'test'

共通構成

  • 指定したテーブルのメジャーコンパクション期間を設定します。特に必要がない限り、この期間を設定しないことをお勧めします。

    メジャーコンパクション期間はミリ秒(ms)単位で測定されます。デフォルト値は 7 日です。値を 0 に設定すると、メジャーコンパクション期間は無効になります。

    alter 'test', CONFIGURATION => {'hbase.hregion.majorcompaction' => 300000}
  • 指定したテーブルの列ファミリのデータ圧縮形式を設定します。

    ApsaraDB for HBaseのデータ圧縮の詳細については、データの圧縮とエンコードをご参照ください。

    alter 'test', NAME => 'cf', COMPRESSION => 'SNAPPY'
  • 指定したテーブルの列ファミリのブロックエンコードタイプを設定します。

    たとえば、次のステートメントを実行して、testという名前のテーブルのcfという名前の列ファミリのブロックエンコードタイプをDATA_BLOCK_ENCODINGに設定できます。

    alter 'test', NAME => 'cf', DATA_BLOCK_ENCODING => 'DIFF'
  • 指定したテーブルの列ファミリのデータの有効期間(TTL)を設定します。

    TTLは秒単位で測定されます。この例では、TTL値は2592000秒に設定されています。これは30日に相当します。

    alter 'test', NAME => 'cf', TTL => 2592000
  • 指定したテーブルをリージョンに事前に分割します。詳細については、事前分割をご参照ください。