DSE階層化ストレージの構成

ストレージ・メディア間でのデータのスマートな移動を自動化するDSE階層化ストレージの構成についてのドキュメント。

ストレージ・メディア間のデータ移動の構成は、ノード・レベルおよびスキーマ・レベルで行います。
  • ストレージの場所と、ストレージの場所を定義する階層を、dse.yamlファイル内でノード・レベルで定義します。

    さまざまなユース・ケース向けに複数の構成を定義できます。複数の異種ディスク構成がサポートされています。

    DataStaxでは、クラスター全体をデプロイする前にローカル構成テストを実施することを推奨しています。

  • スキーマ・レベルで有効期間ポリシーを構成します。

    サポートされているデータ使用ポリシーは、パーティションの有効期間のみです。サポートされているコンパクション・ストラテジは、DateTieredStorageStrategyのみです。階層の有効期間のしきい値は、TieredCompactionStrategyコンパクション・ストラテジでテーブルが作成されると設定されます。

DSE階層化ストレージで使用されるデータ・セットは非常に大きくなる可能性があります。Searchの制限事項と既知のApache Solrの問題がこれに該当します。
dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services /etc/dse/dse.yaml
パッケージ・インストール /etc/dse/dse.yaml
Installer-No Services install_location/resources/dse/conf/dse.yaml
tarボール・インストール install_location/resources/dse/conf/dse.yaml

手順

  1. 各ノードのdse.yamlファイルで、tiered_storage_optionsセクションのコメントを解除します。
  2. 階層化ストレージ・ストラテジごとに、各階層の構成名、ストレージ階層、およびデータ・ディレクトリーの場所を定義します。
    1. 最初にリストされた階層で、最も高速なストレージ・メディアによる優先順位でストレージ階層を定義します。
    2. 階層ごとに、データ・ディレクトリーの場所を定義します。
    以下の形式を使用します。ここで、config_nameは、CREATEまたはALTERテーブル・ステートメントを使用して参照するストラテジです。config_nameは、すべてのノードで同じである必要があります。
    tiered_storage_options:
    config_name:
    tiers:
    -paths:
    - path_to_directory1
    -paths:
    - path_to_directory2
    ここで、
    • config_nameTiered Storageの構成ストラテジの構成可能な名前ですです。例:strategy1の場合
    • tiersは」セクション。です
    • pathsは」セクション。最初にリストされる階層は最上位階層で、通常、最も高速なストレージ・メディアを含んでいます。これらのパスは、Tiered Storageを使用するために構成したデータを格納する場合にのみ使用します。これらのパスはcassandra.yamlファイルの設定とは関係ありません。 です
    たとえば、strategy1という名前の階層化ストレージ構成には、リストの最初にある階層の優先度が最も高いという優先順位で3つの異なるストレージ階層が定義されます:
    tiered_storage_options:
    strategy1:
    tiers: 
    -paths:
    - /mnt1
    - /mnt2
    -paths:
    - /mnt3
    - /mnt4
    -paths:
    - /mnt5
    - /mnt6
  3. CREATEまたはALTERテーブル・ステートメントを使用して、階層化ストレージをテーブルに適用します。
    たとえば、階層化ストレージをテーブルks.tblに適用するには、次のようにします。
    CREATE TABLE ks.tbl (k INT, c INT, v INT, PRIMARY KEY (k, c)) 
    WITH COMPACTION={'class':'org.apache.cassandra.db.compaction.TieredCompactionStrategy',  
    'tiering_strategy':'DateTieredStorageStrategy', 
    'config':'strategy1',  
    'max_tier_ages':'3600,7200'};
    コンパクションのオプションは以下のとおりです。
    • class

      'class':'org.apache.cassandra.db.compaction.TieredCompactionStrategy'は、階層化ストレージを使用するようにテーブルを構成します。

    • tiering_strategy

      'strategy':'DateTieredStorageStrategy'は、DateTieredStorageStrategyを使用してデータの移動先の階層を決定します。DateTieredStorageStrategyは、サポートされている唯一のストラテジです。

    • config

      'config':'strategy1'は、dse.yamlファイルで構成されたストラテジ(この場合はstrategy1)を使用するように指定します。

    • max_tier_ages
      'max_tier_ages':'3600,7200'は、コンマ区切りリストの値を使用して、最大有効期間を秒単位で階層ごとに定義します。
      • 3600は、第1の階層を1時間(3600秒)以下の時間が経過したデータに制限します。
      • 7200は、第2の階層を2時間(7200秒)以下の時間が経過したデータに制限します。
      • 他のすべてのデータは、第3の階層について定義されたデータ方向の場所にルーティングされます。
      注: DateTieredStorageStrategyの場合、DataStaxでは、max_tier_agesについて指定された各有効期間に加えて、より古いデータの別の階層についても1つの階層を定義することを推奨しています。ただし、DataStax Enterpriseでは、テーブル・スキーマとdse.yamlファイルで構成された階層のみを使用します。
      たとえば、dse.yamlの3つの階層を持つストラテジは、以下のようになります。
      • 'max_tier_ages':'3600,7200'は、3つの階層すべてを使用します。
      • 'max_tier_ages':'3600'は、最初の2つの階層のみを使用します。
      • 'max_tier_ages':'3600,7200,10800'は、3つの階層すべてを使用しますが、最後の値を無視します。最初の2つの階層に属さないデータは、データが10800秒より古いかどうかにかかわらず、第3階層に移動します。
    DTCSのCQLコンパクション・サブプロパティもサポートされています。