ApsaraDB for HBase は、アクセス頻度の低いデータ向けに、コスト効率の高いコールドストレージ媒体を提供します。ストレージコストは Ultra Disk の 3 分の 1 でありながら、書き込みパフォーマンスは同等です。データは常に読み取り可能な状態に保たれます。
背景情報
ApsaraDB for HBase クラスターの購入時に、追加のストレージオプションとしてコールドストレージを選択できます。CREATE TABLE 文を使用して、コールドデータをコールドストレージ媒体に直接格納できます。また、ApsaraDB for HBase Performance-enhanced Edition は、コールドストレージを利用したデータ階層化機能も提供します。この機能は、アクセス頻度の高いホットデータを高速なホットストレージに自動的に配置し、アクセス頻度の低いコールドデータをコールドストレージに移動させることで、ストレージコストを削減します。

注意事項
コールドストレージの読み取り IOPS (Input/Output Operations Per Second) は低く、ノードあたり最大 25 です。そのため、クエリ頻度が低いシナリオにのみ適しています。
コールドストレージの書き込みスループットは、Ultra Disk 上のホットストレージと同等です。安心してデータを書き込むことができます。
コールドストレージは、高同時実行数の読み取りリクエストには適していません。リクエストの失敗につながる可能性があります。
コールドストレージ容量が大きく、より高い読み取り IOPS 上限が必要な場合は、チケットを送信して調整をリクエストできます。
各コアノードが管理するコールドデータは、平均で 30 TB 以下にすることを推奨します。単一のコアノードでより大量のコールドデータを管理する必要がある場合は、チケットを送信して最適化の提案をリクエストできます。
前提条件
コールドストレージは、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 コンソールにログインします。
クラスター ページで、対象クラスターの名前をクリックして、そのクラスター詳細ページを開きます。
Cold Storage で、Cold Storage をクリックします。
有効化 をクリックします。
有効化プロセス中に、サービスが一時的に中断される可能性があります。この操作はオフピーク時間に実行することを推奨します。
コールドストレージは、ApsaraDB for HBase Performance-enhanced Edition V2.1.8 以降でのみサポートされています。ご利用のクラスターがそれ以前のバージョンを実行している場合、有効化プロセス中にクラスターは自動的に最新バージョンにアップグレードされます。
コールドストレージの使用
ApsaraDB for HBase Performance-enhanced Edition では、カラムファミリーレベルでストレージプロパティを設定できます。テーブルの 1 つまたはすべてのカラムファミリーのストレージポリシーをコールドストレージに設定できます。ポリシーを設定すると、指定されたカラムファミリー内のすべてのデータはコールドストレージに保存され、ご利用のクラスターの Hadoop 分散ファイルシステム (HDFS) 領域は使用されません。この設定は、テーブルの作成時、または既存のテーブルのプロパティを変更することで構成できます。
Java API または HBase Shell を使用して、テーブルの作成やテーブルプロパティの変更ができます。設定手順については、Java API の場合は「Java API を使用して ApsaraDB for HBase Performance-enhanced Edition クラスターにアクセスする」を、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 シェル
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 コンソールの「コールドストレージ」ページでは、コールドストレージの使用量全体を確認し、Cold Storage Scalingをクリックしてその容量を拡張できます。
コールドストレージの使用量が総容量の 95% を超えると、書き込み操作が失敗し、クラスターがロックされます。これを防ぐために、コールドストレージの使用量を監視してください。
[メッセージセンター] にログインし、リスクに関する事前通告 を有効にすると、ストレージ使用量に関するタイムリーなアラートを受信できます。
Cluster Management Systemの「テーブル」タブでは、特定のテーブルが使用するコールドストレージとホットストレージの量を確認できます。