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:
ApsaraDB for HBase コンソールにログインします。
[クラスタ] ページで、管理するクラスタを見つけ、クラスタ ID をクリックします。
左側のナビゲーションウィンドウで、[コールドストレージ] をクリックします。
[今すぐ有効にする] をクリックします。
コールドストレージを有効にしている間、クラスタでジッターが発生する可能性があります。オフピーク時に操作を実行することをお勧めします。
コールドストレージは、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% 以上が使用されている場合、データはコールドストレージに書き込めなくなり、クラスタはロックされます。クラスタの容量ストレージ使用率を監視してください。
にログインし、[緊急リスクアラート通知] を有効にして、使用率アラートをタイムリーに受信できます。
[クラスタ管理システム] の [ユーザテーブル] タブで、テーブル内のコールドデータとホットデータのサイズを表示できます。