コールドストレージは、Ultra ディスクの 3 分の 1 のストレージコストでデータを保存しながら、オンデマンドクエリへのアクセスを維持します。ApsaraDB for HBase Performance-enhanced Edition は、同じテーブル内でホットデータを高速なホットストレージに自動的にルーティングし、アクセス頻度の低いデータをコールドストレージに移動するため、データモデルを再構築することなくコストを削減できます。
コールドストレージの適用範囲
コールドストレージは、以下の用途に適しています。
データアーカイブ:歴史的なレコードを削除せずに低コストで保持します。
アクセス頻度の低いデータ:たまにしかクエリされないが、引き続きアクセス可能である必要があるデータを保存します。
一方で、コールドストレージは以下の用途には適していません。
高同時実行読み取り:多数の同時読み取りリクエストを処理すると、エラーが発生する可能性があります。
レイテンシに敏感な読み取り:コールドストレージの読み取り IOPS(1 秒あたりの入出力操作数)はノードあたり最大 25 と低く、アクセス頻度が低く時間的制約のないクエリでのみ使用してください。
コールドストレージの書き込みスループットは、Ultra ディスクをバックエンドとするホットストレージと同等であるため、書き込み中心のワークロードには影響しません。
大容量のコールドストレージに対して読み取り IOPS を増やす場合は、チケットを送信してください。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
ApsaraDB for HBase Performance-enhanced Edition V2.1.8 以降を実行中のクラスター。クラスターのバージョンが V2.1.8 より前の場合、コールドストレージを有効化すると最新バージョンに自動的にスペックアップされます。
AliHBase-Connector のバージョンが 1.x 系列では V1.0.7 より後、または 2.x 系列では V2.0.7 より後であること
HBase Shell のバージョンが alihbase-2.0.7-bin.tar.gz より後であること
コールドストレージの有効化
以下のいずれかの方法でコールドストレージを有効化できます。
方法 1:クラスター購入時に有効化する
クラスター購入ページでコールドストレージオプションを選択し、容量を設定します。詳細については、「クラスターの購入」をご参照ください。
方法 2:コンソールから有効化する
ApsaraDB for HBase コンソールにログインします。
クラスターページで、対象クラスターの ID をクリックします。
左側のナビゲーションウィンドウで、コールドストレージをクリックします。
今すぐ有効化をクリックします。
コールドストレージの有効化により、一時的なクラスタージッターが発生する可能性があります。オフピーク時間帯にこの操作を実行してください。V2.1.8 より前のバージョンの ApsaraDB for HBase Performance-enhanced Edition を実行中のクラスターは、コールドストレージの有効化前に自動的にスペックアップされます。
コールドストレージが有効化されたことの確認
有効化後、コールドストレージページで コールドストレージのスケーリング をクリックし、ストレージのステータスと現在の容量を確認します。
テーブルのコールドストレージ設定
コールドストレージはカラムファミリーレベルで設定します。カラムファミリーにストレージポリシーを設定することで、そのファミリー内のすべてのデータをコールドストレージにルーティングできます。このデータはクラスター上の Hadoop 分散ファイルシステム (HDFS) 領域を占有しません。
HBase Shell または Java API を使用できます。Java API を使用する前に SDK をセットアップしてください。詳細については、「ApsaraDB for HBase Java API を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする」をご参照ください。HBase Shell を使用する前に、「HBase Shell を使用して ApsaraDB for HBase Performance-enhanced Edition インスタンスにアクセスする」をご参照ください。
以下の例では、coldTable をご利用のテーブル名に、f をご利用のカラムファミリー名に置き換えてください。
コールドストレージ付きテーブルの作成
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 %を超えると、コールドストレージへの書き込みがブロックされ、クラスターがロックされます。定期的に使用量をモニタリングし、しきい値に達する前に利用率アラートを受け取れるよう、緊急リスクアラート通知を有効化してください。
テーブルごとのコールドデータおよびホットデータのサイズを確認するには、クラスター管理システムの ユーザーテーブル タブに移動します。

使用制限
| 制限項目 | 詳細 |
|---|---|
| コアノードあたりのコールドデータ量 | コアノードあたり最大 30 TB を推奨します。この制限を引き上げる場合は、チケットを送信してください。 |
| 読み取り IOPS | ノードあたり最大 25 回/秒です。大容量に対する IOPS を増やす場合は、チケットを送信してください。 |
| 容量しきい値 | 使用量が総容量の 95 %を超えると、書き込みがブロックされ、クラスターがロックされます。 |
次のステップ
同じテーブル内でホットデータとコールドデータを自動的に分離するには、ApsaraDB for HBase Performance-enhanced Edition のホット/コールドデータ分離機能をご利用ください。