このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

ホットデータとコールドデータの階層ストレージ

更新日時2025-02-12 09:04

データストレージのコストを削減し、クエリパフォーマンスとシステムリソースの使用率を向上させるために、ApsaraDB for ClickHouseはホットデータとコールドデータの階層ストレージを提供します。 クエリ頻度に基づいて、さまざまな種類のディスクにデータを保存できます。 このトピックでは、ホットデータとコールドデータの階層ストレージを有効にし、階層ストレージポリシーを設定する方法について説明します。

前提条件

  • ApsaraDB for ClickHouseクラスター

    V20.8以降が作成されます。

  • ApsaraDB for ClickHouseクラスターのデータバックアップ機能は無効になっています。

説明
  • バージョンがこの機能をサポートしていないApsaraDB for ClickHouseクラスターでホットデータとコールドデータの階層ストレージを使用する場合は、V20.8以降のApsaraDB for ClickHouseクラスターを作成し、新しいクラスターにデータを移行できます。 詳細については、「ApsaraDB For ClickHouse Community-compatible Editionクラスター間のデータ移行」をご参照ください。

  • ApsaraDB for ClickHouse Enterprise Editionは、ホットデータをキャッシュに、コールドデータを共有ストレージに自動的に保存します。 ホットデータとコールドデータの階層ストレージは、ホットデータとコールドデータのストレージルールに依存しません。

背景情報

  • ホットデータは、頻繁にアクセスされ、拡張SSD (ESSD) またはウルトラディスクに保存されるデータです。 これらのディスクは、クラスターを作成するときに選択されます。 ホットデータストレージは、高性能なクエリを必要とするビジネスシナリオに適しています。

  • コールドデータは、頻繁にアクセスされないデータです。 コールドデータは、コスト効率の高いストレージの要件を満たすために、低ストレージコストでコールドデータディスクに保存されます。

    ホットデータとコールドデータの階層ストレージは、次のストレージポリシーを提供します。

    ストレージポリシー

    説明

    ストレージポリシー

    説明

    デフォルトのストレージポリシー

    新しく書き込まれたデータは、効率的なクエリをサポートするためにホットデータディスクに保存されます。 格納されたホットデータの量が格納しきい値に達すると、ホットデータディスク内で最大サイズの部品データファイルが自動的にコールドデータディスクに移行されます。 このようにして、新たに書き込まれたホットデータをホットデータディスクに記憶することができる。

    生存時間 (TTL) に基づくストレージポリシー

    デフォルトのストレージポリシーにTTL句を追加します。 このようにして、TTL句で指定された期間より前に生成されたすべてのデータは、自動的にコールドデータディスクに移行されます。

注意事項

  • オフピーク時にのみホットデータとコールドデータの階層ストレージを有効にすることを推奨する場合。 ホットデータとコールドデータの階層ストレージを有効にすると、クラスターが再起動されます。 再起動中は、クラスター情報のみを表示できます。 クラスターのアップグレード、スケールアウト、スケールイン、またはパラメーター設定の変更はできません。

  • ホットデータとコールドデータの階層ストレージを使用する場合、テーブルのストレージポリシーを指定する必要があります。

    • テーブルを作成するときは、SETTINGS storage_policy = 'hot_to_cold 'を使用してデータストレージポリシーを指定できます。

    • 既存のテーブルのデータストレージポリシーを変更できます。

      2024年1月1日以降に有効になったホットデータとコールドデータの階層ストレージを持つクラスター
      2024年1月1日より前に有効になったホットデータとコールドデータの階層ストレージを持つクラスター

      次のステートメントを実行して、データストレージポリシーを変更します。

      ALTER TABLE <table_name> MODIFY SETTING storage_policy = 'hot_to_cold';

      ホットおよびコールドデータストレージポリシーの追加を申請するチケットを起票します。 これにより、ポリシーを使用して、ホットデータディスクからコールドデータディスクにデータを移行できます。

  • ホットデータとコールドデータの階層ストレージ機能は、この機能を有効にした後は無効にできません。

課金

  • 次のルールに基づいて、ホットデータおよびコールドデータ機能の階層ストレージに対して課金されます。

    ストレージタイプ

    課金の詳細

    ストレージタイプ

    課金の詳細

    ホットデータストレージ

    クラスター用に購入するストレージ容量は、ホットデータ専用です。 クラスターを購入した後、ホットデータ用の追加ストレージを購入する必要はありません。

    コールドデータストレージ

    従量課金の課金方法に基づいて、コールドデータストレージに対して課金されます。 ストレージを使用する前に、コールドデータ用のストレージを購入する必要はありません。 使用済みストレージに基づいて、1時間ごとにコールドデータストレージに対して課金されます。

  • コールドデータストレージの単価の詳細については、「ApsaraDB For ClickHouseクラスターのストレージ料金」をご参照ください。

  • 課金式: コールドストレージスペースの料金=コールドデータストレージの単価 × 使用済みコールドデータストレージ × 使用期間。

  • たとえば、コールドデータストレージの単価がGB-時間あたりUSD 0.000026で、19:00から20:00まで2,000 GBのコールドデータが保存されている場合、合計料金は次の式に基づいて計算されます。GB-時間あたりUSD 0.000026 × 2,000 GB × 1時間=USD 0.052。 20:00〜21:00の間にコールドデータ用に500 GBのストレージスペースを解放した場合、1,500 GBのストレージのみが使用されます。 この場合、20:00〜21:00の間に発生する合計料金は、次の式に基づいて計算されます。GB時間あたりのUSD 0.000026 × 1,500 GB × 1時間=USD 0.039。

説明

前述の価格はあなたの参照のためにだけ提供されます。 実際の課金シナリオでは、ApsaraDB for ClickHouseコンソールに表示される料金が優先されます。

ホットデータとコールドデータの階層化ストレージの有効化

  1. ApsaraDB for ClickHouse コンソールにログインします。

  2. 上部のナビゲーションバーで、クラスターがデプロイされているリージョンを選択します。

  3. [クラスター] ページで、[コミュニティ互換版のクラスター] タブをクリックし、管理するクラスターのIDをクリックします。

  4. 左側のナビゲーションウィンドウで、[コールドおよびホットレイヤードストレージ] をクリックします。

  5. クリックして階層ストレージを有効にするをクリックします。

  6. [階層ストレージの有効化] メッセージで、[OK] をクリックします。

    その後、システムはクラスターを再起動します。 クラスターの状態が [設定の変更] から [実行中] に変更されると、ホットデータとコールドデータの階層ストレージが有効になります。

ホットデータとコールドデータの階層ストレージが有効化された後に使用されるデフォルトストレージポリシー

次の表に、ホットデータとコールドデータの階層ストレージが有効になった後に使用されるデフォルトのストレージポリシーのパラメーターを示します。

パラメーター

説明

パラメーター

説明

move_factor

ホットデータの全ストレージに対するホットデータの使用可能なストレージの割合がmove_factorパラメーターの値より小さい場合、ホットデータディスク内で最大のサイズの部品データファイルが自動的にコールドデータディスクに移行されます。

有効値: 0〜1 move_factorパラメーターを0に設定すると、ディスクストレージ容量に基づくホットデータとコールドデータの階層ストレージ機能が無効になります。 デフォルト値は 0.1 です。 デフォルト値は、ホットデータの使用可能なストレージの割合が10% 未満の場合にデータが自動的に移行されることを指定します。 テーブルを作成するときに、TTLベースの階層ストレージポリシーを追加することもできます。 詳細については、「TTLベースの階層ストレージポリシーの追加」をご参照ください。

説明

ディスク領域の表示方法の詳細については、このトピックの「ディスク領域の表示」をご参照ください。

prefer_not_to_merge

コールドデータディスク上のデータをマージするかどうかを指定します。 有効な値:

  • true: コールドデータディスクのデータはマージされません。 デフォルト値です。

  • false: コールドデータディスク上のデータがマージされます。

TTLベースの階層ストレージポリシーの追加

デフォルトのストレージポリシーにTTL句を追加します。 このようにして、TTL句で指定された期間より前に生成されたすべてのデータは、自動的にコールドデータディスクに移行されます。

構文

TTL <time_column> + INTERVAL <number> TO DISK 'cold_disk'

Parameters

パラメーター

説明

パラメーター

説明

time_column

DATEまたはDATETIMEデータ型の列。

数値

移行するデータが生成されるまでの期間。

一般的な単位は、日、週、月、年です。

説明

TTL句の詳細については、「TTL」をご参照ください。

日付列に基づいて、90日前に生成されたすべてのデータをコールドデータディスクに移行します。 日付列には、データが生成された日付が含まれます。 次の文を実行して、テーブルを作成します。

CREATE TABLE ttl_test_tbl
(
    `f1` String,
    `f2` String,
    `f3` Int64,
    `f4` Float64,
    `date` Date
)
ENGINE = MergeTree()
PARTITION BY date
ORDER BY f1
TTL date + INTERVAL 90 DAY TO DISK 'cold_disk'
SETTINGS storage_policy = 'hot_to_cold';

ホットデータとコールドデータのTTLベースの階層化ストレージの変更

TTLベースの階層ストレージポリシーで、日付または日付タイプの列を指定するtime_columnパラメーターと間隔を指定するnumberパラメーターを変更できます。

使用上の注意

  • データへの影響

    • 既存のデータ: デフォルトでは、TTLベースの階層ストレージポリシーを変更した後、システムは新しいストレージポリシーに基づいて既存のデータを保存します。 しかし、データを非同期に格納するには時間がかかる。 新しいストレージポリシーをすぐに有効にするには、TTLベースの階層ストレージポリシーを変更したALTER TABLEマテリアライズTTL; ステートメントを実行する必要があります。 既存のデータに新しいストレージポリシーを適用しない場合は、TTLベースの階層ストレージポリシーを変更するSET materialize_ttl_after_modify=0; ステートメントを実行する必要があります。

    • 増分データ: デフォルトでは、新しいストレージポリシーに基づいて増分データが保存されます。

  • TTLベースの階層ストレージポリシーを変更した後、元のストレージポリシーに基づいてコールドデータディスクに移行されたデータは、自動的にホットデータディスクに移行されません。 コールドデータをホットデータディスクに移行する場合は、このトピックの「ホットデータディスクとコールドデータディスクへのデータの移行」をご参照ください。

構文

ALTER TABLE <table_name> ON CLUSTER default MODIFY TTL <time_column> + INTERVAL <number> TO DISK 'cold_disk';

説明

パラメーター

説明

パラメーター

説明

table_name

<td class="en-UStry align-left colsep-1 rowsep-1">テーブル名。</td>

time_column

新しいストレージポリシーの日付または日付タイプの列。

数値

移行するデータが生成されるまでの期間。

一般的な単位は、日、週、月、年です。

ホットデータディスクとコールドデータディスクのデータを移行する

  • 次のステートメントを実行して、ホットデータディスクからコールドデータディスクにデータを移行します。

    ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'cold_disk';
  • 次の文を実行して、データをコールドデータディスクからホットデータディスクに移行します。

    ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'default';
    説明

    partitionはパーティション名を指定します。 system.partsシステムテーブルで値を表示できます。

ホットデータディスクとコールドデータディスクのデータを表示する

  • 次のステートメントを実行して、ホットデータディスク上のデータを表示します。

    SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='default' AND active = 1;
  • 次のステートメントを実行して、コールドデータディスク上のデータを表示します。

    SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='cold_disk' AND active = 1;

ディスク領域の表示

ホットデータとコールドデータの階層ストレージが有効になったら、次のステートメントを実行してディスク容量を表示できます。

SELECT * FROM system.disks;

次の結果が返されます。

┌─name─────┬─────────path───────────────────────────┬─free_space───────────┬─total_space ─────────┬─used_space───┬─keep_free_space───┬──type──┐
│ cold_disk│ /clickhouse/data/data/disks/cold_disk/18446744073709551615184467440737095516151153120806980               │   OSS  │
│ default/clickhouse/data/data/20166320947220708324966454200401920local │ 
└ ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

次の表に、返された結果のパラメーターを示します。

パラメーター

説明

パラメーター

説明

name

ディスク名。

  • cold_disk: コールドデータディスクの名前。

  • default: ホットデータディスクの名前。

パス

ディスク上のデータが格納されるパス。

free_space

ディスク上の使用可能なスペース。 コールドデータディスク上の利用可能なスペースは制限されない。 単位はバイトです。

total_space

合計ディスク容量。 コールドデータディスク上の利用可能なスペースは制限されない。 単位はバイトです。

used_space

ディスク上で使用されるスペース。 単位はバイトです。

keep_free_space

ディスク上の予約済みの空き容量。 単位はバイトです。

type

ストレージメディア。 有効な値:

  • OSS: コールドデータはOSS (Object Storage Service) に保存されます。

  • local: データはローカルディスクに保存されます。

よくある質問

データがホットデータディスクからコールドデータディスクに移行されないのはなぜですか?

move_ttl_info.minおよびmove_ttl_info.maxパラメーターの値を表示して、データがホットデータディスクからコールドデータディスクに移行されているかどうかを確認できます。 次のステートメントを実行して、2つのパラメーターの値を照会できます。

SELECT move_ttl_info.min,move_ttl_info.max FROM system.parts WHERE database = '<db_name>'AND table = '<tb_name>'AND disk_name = 'default'

現在の時刻がいずれかの戻り値よりも前の場合、データはコールドデータディスクに移行されません。 さらに、システムは、データを移行しているか、または移行の準備をしている。 移行が完了していません。

  • 目次 (1, M)
  • 前提条件
  • 背景情報
  • 注意事項
  • 課金
  • ホットデータとコールドデータの階層化ストレージの有効化
  • ホットデータとコールドデータの階層ストレージが有効化された後に使用されるデフォルトストレージポリシー
  • TTLベースの階層ストレージポリシーの追加
  • 構文
  • Parameters
  • ホットデータとコールドデータのTTLベースの階層化ストレージの変更
  • 使用上の注意
  • 構文
  • 説明
  • ホットデータディスクとコールドデータディスクのデータを移行する
  • ホットデータディスクとコールドデータディスクのデータを表示する
  • ディスク領域の表示
  • よくある質問
フィードバック
phone お問い合わせ

Chat now with Alibaba Cloud Customer Service to assist you in finding the right products and services to meet your needs.

alicare alicarealicarealicare