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

Lindorm:コールドストレージの設定

最終更新日:Jan 14, 2025

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);