このトピックでは、データパーティション、テーブルのライフサイクル、および廃止されたテーブルの定期的な削除に関して、ストレージコストを最適化する方法について説明します。
次の操作を実行して、ストレージコストを最適化できます。
データパーティションを適切に設定します。
テーブルの合理的なライフサイクルを設定します。
非推奨テーブルを定期的に削除します。
データパーティションを適切に設定する
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か月以内にアクセスされないテーブル
先月にアクセスされなかったパーティション分割されていないテーブル
ストレージリソースを消費しないテーブル