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

MaxCompute:ストレージコストの最適化

最終更新日:Jan 22, 2025

このトピックでは、データパーティション、テーブルのライフサイクル、および廃止されたテーブルの定期的な削除に関して、ストレージコストを最適化する方法について説明します。

次の操作を実行して、ストレージコストを最適化できます。

  • データパーティションを適切に設定します。

  • テーブルの合理的なライフサイクルを設定します。

  • 非推奨テーブルを定期的に削除します。

データパーティションを適切に設定する

MaxComputeでは、パーティションキー列の各値はパーティションと呼ばれます。 テーブルの複数のフィールドを1つのパーティションにグループ化して、マルチレベルパーティションを作成できます。 マルチレベルパーティションは、マルチレベルディレクトリに似ています。 アクセスするパーティションの名前を指定すると、システムはそのパーティションからのみデータを読み取り、テーブル全体をスキャンしません。 これにより、コストが削減され、効率が向上します。

  • データ収集の最小期間が1日の場合、日付フィールドをパーティションフィールドとして使用することを推奨します。 システムは毎日、指定されたパーティションにデータを移行します。 次に、後続の操作のために指定されたパーティションからデータを読み取ります。

  • データ収集の最小期間が1時間の場合、日付フィールドと時間フィールドの組み合わせをパーティションフィールドとして使用することを推奨します。 システムは1時間ごとに指定されたパーティションにデータを移行します。 次に、後続の操作のために指定されたパーティションからデータを読み取ります。 時間単位で収集されたデータが日付に基づいて分割されている場合、各パーティションのデータは1時間ごとに追加されます。 その結果、システムは大量の不要なデータを読み取り、ストレージコストを増加させます。

ビジネスニーズに基づいてパーティションフィールドを使用できます。 日付フィールドと時刻フィールドに加えて、チャネル、国、または州など、相対的に固定された数の列挙値を持つ他のフィールドを使用できます。 また、時間と他のフィールドの組み合わせをパーティションフィールドとして使用することもできます。 テーブルに2つのレベルのパーティションを指定することを推奨します。 各テーブルは最大60,000のパーティションをサポートします。

テーブルの合理的なライフサイクルを設定する

テーブルを作成するときは、データ使用量に基づいてライフサイクルを設定できます。 MaxComputeは、ライフサイクルしきい値を超えるデータをタイムリーに削除します。 これは記憶スペースを節約する。

たとえば、次のステートメントを実行して、ライフサイクルが100日のテーブルを作成できます。 テーブルまたはパーティションの最後の変更が100日以上前に発生した場合、MaxComputeはテーブルまたはパーティションを削除します。

CREATE TABLE test3 (key BOOLEAN) PARTITIONED BY (pt STRING, ds STRING) LIFECYCLE 100;

ライフサイクルは、パーティションを最小単位とします。 パーティションテーブルの一部のパーティションがライフサイクルのしきい値に達すると、これらのパーティションは削除されます。 ライフサイクルのしきい値に達していないパーティションは影響を受けません。

次のステートメントを実行して、既存のテーブルのライフサイクル設定を変更できます。 詳細については、「ライフサイクル管理操作」をご参照ください。

ALTER TABLE table_name SET lifecycle days;

非推奨テーブルを定期的に削除する

長期間アクセスされない非推奨のテーブルを定期的に削除することをお勧めします。 次のテーブルは非推奨テーブルと見なされます。

  • 過去3か月以内にアクセスされないテーブル

  • 先月にアクセスされなかったパーティション分割されていないテーブル

  • ストレージリソースを消費しないテーブル