# テーブルからデータを期限切れにする

データの期限切れは、テーブル内のデータに対して期限切れ間隔（日数）を設定できる機能です。Treasure コンソール を使用してテーブルデータの期限切れを設定するか、Hive および Trino クエリエンジンを使用できます。特定のテーブルに期限切れ期間が設定されると、Treasure Data は期限切れ期間よりも古いタイムスタンプを持つレコードを自動的にフィルタリングし、内部ストレージからの削除対象としてマークします。

## ユースケース - テーブルが消費するストレージ量の管理

たとえば、90日間のデータ期限切れポリシーを設定して、イベントテーブルに90日間の履歴を保持するように制限できます。イベントトラフィックが比較的一定であると仮定すると、このポリシーは継続的な管理を必要とせずに、一般的にテーブルの増加を制限します。

**データ保持規制への非準拠**。Treasure Data のデータ期限切れは、データプライバシー規制やその他の業界固有のデータ保持規制に準拠するには不十分です。TD からデータを即座に削除する必要がある場合は、推奨事項について Treasure サポートにお問い合わせください。

## Treasure コンソール でテーブルデータの期限切れを設定する

1. **Workbench** > **Databases** に移動します。
2. データベースを選択します。
3. テーブルを選択します。
4. ... > **Table settings** を選択します。
5. **Expire Data?** を選択します。
6. データをアクティブに保持する日数を入力します。
7. **Submit** を選択します。


## TD Toolbelt でのデータ期限切れ

### TD Toolbelt の例


```bash
$ td table:expire test_db test_table <expiration_days>
```

`<expiration_days>` は 0 より大きい整数です。

### テーブルデータの期限切れを無効にする

テーブルデータの期限切れを無効にするには、期限切れ日数を 0 に設定します。たとえば、TD toolbelt を使用：


```bash
$ td table:expire test_db test_table 0
```

## Hive および Trino クエリエンジンでのデータ期限切れ

使用する Hive のバージョンによって、データの期限切れが影響を受ける場合があります。

Hive および Trino クエリエンジンでは、データの期限切れはレコードリーダーで有効になります。

## データ期限切れの影響

Treasure Data がデータの期限切れをどのように処理するかを理解するために、以下を確認してください：

* **定義された期限切れ期間としきい値**。期限切れ期間が *N* 日の場合、期限切れしきい値はクエリが開始された現在時刻から *N* 日前です。time カラムの値が期限切れしきい値より前の行はフィルタリングされます。たとえば、今日の午前 9:15 に実行されるクエリが期限切れ期間 2 日のテーブルを参照する場合、クエリ処理時に 2 日前の午前 9:15 より前の時刻を持つそのテーブルの行は自動的に除外されます。


time カラムの値は、レコードが Treasure Data で実際に作成された日付とは関係がない場合があります。

* **フィルタリング**。Treasure Data は必要に応じてクエリに時間フィルター句を透過的に追加するため、期限切れの行はクエリ結果の計算に使用されません。複数のテーブルに異なるしきい値がある場合、各テーブルは独自の期限切れポリシーに基づいてフィルタリングされます。
* **古いタイムスタンプを持つレコードのインポート**。レコードが取り込まれるか作成されたときに、期限切れしきい値より古い時刻値を持つ場合、新しいレコードであっても期限切れとしてフィルタリングされます。
* **期限切れレコードの保持と削除**。期限切れレコードは削除される前に一定期間ストレージに残ります。ルールは次のとおりです：
  * テーブルの期限切れポリシーを変更すると、そのテーブルからレコードは次の 30 日間削除されません。これにより、異なる期限切れポリシー値を試してその効果を確認し、ポリシーを再度変更するだけでデータを復元する時間が得られます。
  * 期限切れポリシーが過去 30 日間変更されていない場合、ポリシーが意図したとおりに機能していると見なされます。その後、期限切れレコードの削除がより頻繁に発生します。レコードの削除ポリシーの詳細については、Treasure サポートにお問い合わせください。
  * 期限切れポリシーをゼロ日に設定することで、削除されていない期限切れレコードへのアクセスを復元できます。テーブルからの SELECT ステートメントはすべての行を返します。