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

ApsaraDB for HBase:コールドストレージ

最終更新日:Feb 19, 2025

ApsaraDB for HBase は、コールドデータを保存するための新しいコールドストレージ媒体を提供します。Ultra ディスクの 3 分の 1 のストレージコストで、同等の書き込みパフォーマンスを提供します。コールドストレージ内のコールドデータはいつでもクエリできます。

背景情報

ApsaraDB for HBase クラスタを購入する際に、追加のストレージスペースとしてコールドストレージ媒体を選択し、テーブル作成ステートメントを実行して、コールドデータをその媒体に保存できます。さらに、ApsaraDB for HBase Performance-enhanced Edition では、同じテーブル内のコールドデータとホットデータを分離できます。システムは、読み取り/書き込み速度の速いホットストレージにホットデータを自動的に保存し、アクセス頻度の低いデータをコールドストレージに保存してコストを削減できます。

使用上の注意

  • コールドストレージの読み取り IOPS(Input/Output Operations Per Second)は低くなっています(ノードあたり最大 25 回/秒)。そのため、コールドストレージは、頻度の低いクエリにのみ適用できます。

  • コールドストレージの書き込みスループットは、Ultra ディスクを使用するホットストレージのスループットと同じです。

  • コールドストレージは、多数の同時読み取りリクエストの処理には適していません。コールドストレージを使用して多数の同時読み取りリクエストを処理すると、エラーが発生する可能性があります。

  • 大容量のコールドストレージを購入した場合は、ビジネス要件に基づいて読み取り IOPS を調整できます。詳細については、テクニカルサポートへのチケットを送信してください。

  • コアノードごとに最大 30 TB のコールドデータを保存することをお勧めします。コアノードごとのストレージ容量を増やすには、最適化の提案についてチケットを送信できます。

前提条件

コールドストレージは、ApsaraDB for HBase Performance-enhanced Edition V2.1.8 以降でのみサポートされています。ApsaraDB for HBase Performance-enhanced Edition クラスタのバージョンが V2.1.8 より前の場合、クラスタのコールドストレージを有効にすると、クラスタは自動的に最新バージョンにアップグレードされます。クライアント依存関係 AliHBase-Connector のバージョンは V1.0.7 または V2.0.7 以降である必要があります。HBase Shell のバージョンは alihbase-2.0.7-bin.tar.gz 以降である必要があります。

シナリオ

コールドストレージは、データアーカイブやアクセス頻度の低いデータ消費など、さまざまなコールドデータシナリオに適用できます。

コールドストレージを有効にする

方法 1:ApsaraDB for HBase Performance-enhanced Edition クラスタを作成する際に、クラスタ購入ページでコールドストレージを購入するかどうか、およびコールドストレージの容量を選択できます。詳細については、「クラスタを購入する」をご参照ください。

方法 2:

  1. ApsaraDB for HBase コンソールにログインします。

  2. [クラスタ] ページで、管理するクラスタを見つけ、クラスタ ID をクリックします。

  3. 左側のナビゲーションウィンドウで、[コールドストレージ] をクリックします。

  4. [今すぐ有効にする] をクリックします。

警告
  • コールドストレージを有効にしている間、クラスタでジッターが発生する可能性があります。オフピーク時に操作を実行することをお勧めします。

  • コールドストレージは、ApsaraDB for HBase Performance-enhanced Edition V2.1.8 以降でのみサポートされています。ApsaraDB for HBase Performance-enhanced Edition クラスタのバージョンが V2.1.8 より前の場合、クラスタのコールドストレージを有効にすると、クラスタは自動的に最新バージョンにアップグレードされます。

コールドストレージを使用する

ApsaraDB for HBase Performance-enhanced Edition では、カラムファミリーに基づいてストレージプロパティを設定できます。カラムファミリーまたはテーブルのすべてのカラムファミリーのストレージタイプをコールドストレージに設定できます。その後、テーブル内のカラムファミリーまたはすべてのカラムファミリーのすべてのデータはコールドストレージに保存され、クラスタの Hadoop 分散ファイルシステム( HDFS )スペースを占有しません。テーブルを作成するときにカラムファミリーのプロパティを設定するか、テーブルを作成した後にプロパティを変更できます。

Java API または HBase Shell を使用して、テーブルを作成し、テーブルプロパティを変更できます。Java API を使用する場合は、最初に Java 用 SDK をインストールし、パラメーターを設定する必要があります。詳細については、「ApsaraDB for HBase Java API を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする」をご参照ください。HBase Shell を使用する場合は、最初に HBase Shell をインストールし、パラメーターを設定する必要があります。詳細については、「HBase Shell を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする」をご参照ください。

コールドストレージを使用するテーブルを作成する

HBase Shell

hbase(main):001:0> create 'coldTable', {NAME => 'f', STORAGE_POLICY => 'COLD'}

Java API

 Admin admin = connection.getAdmin();
 HTableDescriptor descriptor = new HTableDescriptor(TableName.valueOf("coldTable"));
 HColumnDescriptor cf = new HColumnDescriptor("f");
 cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD);
 descriptor.addFamily(cf);
 admin.createTable(descriptor);

テーブルプロパティを変更してコールドストレージを使用する

テーブルを作成する場合、テーブル内のカラムファミリーのプロパティを変更して、コールドストレージを使用できます。カラムファミリーにデータが含まれている場合、メジャーコンパクション操作の後でのみ、データはコールドストレージにアーカイブされます。

HBase Shell

hbase(main):011:0> alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'COLD'}

Java API

Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("coldTable");
HTableDescriptor descriptor = admin.getTableDescriptor(tableName);
HColumnDescriptor cf = descriptor.getFamily("f".getBytes());
// テーブルのストレージタイプをコールドストレージに設定します。
cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_COLD);
admin.modifyTable(tableName, descriptor);

テーブルプロパティを変更してホットストレージを使用する

テーブル内のカラムファミリーのストレージタイプがコールドストレージの場合、テーブルプロパティを変更することで、タイプをホットストレージに戻すことができます。テーブル内のカラムファミリーにデータが含まれている場合、メジャーコンパクション操作の後で、データはホットストレージにアーカイブされます。

HBase Shell

hbase(main):014:0> alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'DEFAULT'}

Java API

// クラスタへの接続を確立します。
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("coldTable");
HTableDescriptor descriptor = admin.getTableDescriptor(tableName);
HColumnDescriptor cf = descriptor.getFamily("f".getBytes());
// テーブルのストレージタイプをホットストレージ(デフォルト値)に設定します。
cf.setValue("STORAGE_POLICY", AliHBaseConstants.STORAGETYPE_DEFAULT);
admin.modifyTable(tableName, descriptor);

コールドストレージの状態を表示する

ApsaraDB for HBase コンソールの [コールドストレージ] ページで [コールドストレージスケーリング] をクリックすると、コールドストレージの状態を表示し、コールドストレージの容量を拡張できます。

重要
  • クラスタのコールドストレージ容量の 95% 以上が使用されている場合、データはコールドストレージに書き込めなくなり、クラスタはロックされます。クラスタの容量ストレージ使用率を監視してください。

  • にログインし、[緊急リスクアラート通知] を有効にして、使用率アラートをタイムリーに受信できます。

image [クラスタ管理システム] の [ユーザテーブル] タブで、テーブル内のコールドデータとホットデータのサイズを表示できます。