Lindorm は、アクセス頻度の低いコールドデータを保存するために容量ストレージを使用します。Lindorm インスタンスのコールドストレージを有効にすると、コールドストレージを使用してテーブルまたはテーブル内の列ファミリーを保存するかどうかを設定できます。このトピックでは、テーブルまたは列ファミリーのコールドストレージを設定する方法について説明します。
背景情報
コールドストレージ機能は、LindormTable V2.1.8 以降のバージョンでのみサポートされています。 Lindorm では、単一テーブルのストレージ属性を設定できます。 コールドストレージを使用してテーブルまたは列ファミリーを保存するかどうかを設定できます。 コールドストレージを使用してテーブルまたは列ファミリーを保存する場合、テーブルまたは列ファミリーのデータは容量ストレージに保存され、Lindorm インスタンスのデフォルトのストレージ容量を占有しません。
容量ストレージの詳細については、「容量ストレージの読み取り IOPS の制限」をご参照ください。
設定方法
次の方法を使用して、テーブルまたは列ファミリーのコールドストレージを設定できます。
Lindorm Shell を使用してコールドストレージを設定します。 コールドストレージを設定する前に、Lindorm Shell をダウンロードして設定します。 詳細については、「Lindorm Shell を使用して LindormTable に接続する」をご参照ください。
テーブルを作成するときに、次のステートメントを実行してテーブルのコールドストレージを設定します。
create 'coldTable', {NAME => 'f', STORAGE_POLICY => 'COLD'}テーブルを作成済みの場合は、テーブル内の列ファミリーの属性を変更して、コールドストレージを使用して列ファミリーを保存できます。
重要列ファミリーにデータが含まれている場合、メジャーコンパクション操作の後でのみ、データはコールドストレージにアーカイブされます。
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'COLD'}ホットストレージを使用してテーブルにデータを保存する場合は、次のステートメントを実行します。
alter 'coldTable', {NAME=>'f', STORAGE_POLICY => 'DEFAULT'}
Java 用の ApsaraDB for HBase API を使用してコールドストレージを設定します。 コールドストレージを設定する前に、Java 用の ApsaraDB for HBase SDK をダウンロードして設定します。 詳細については、「Java 用の ApsaraDB for HBase 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);テーブルを作成済みの場合は、テーブル内の列ファミリーの属性を変更して、コールドストレージを使用して列ファミリーを保存できます。
重要列ファミリーにデータが含まれている場合、メジャーコンパクション操作の後でのみ、データはコールドストレージにアーカイブされます。
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);ホットストレージを使用してテーブルにデータを保存する場合は、次のステートメントを実行します。
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);