時系列データにおいて、「このデータは1年分しかいらないから1年より古いデータは削除バッチで削除して」「削除バッチ実行時に重いっす」「削除バッチ重いのでテーブルを1ヶ月毎にします」「運用めんどいっす」って話はよくあると思います!
そこで今日はこれ、今回GAしましたAuto TTLです!

Auto TTLとは

Auto TTLとは「TimestampやDate型を確認して設定した期間よりも古いデータがあれば自動的に削除する」という機能となります!
削除はPredictive Optimizationの実行時に削除することになり、最終的に一定期間のデータのみがある状態、ということが保たれることとなります。

詳しくはドキュメントも参考にしてください!

GAしました!

今回このAuto TTLがGAしており、お使い頂くことができます!

GAに際して以下の機能が追加されています!

  • Managed Iceberg Tableのサポート
  • ストリーミングテーブルに対するパイプライン構文とSQL構文(CREATE)のサポート
  • Auto TTLのPredictive Optimization System Tableでの可視性を向上

Auto TTLの設定方法

ということで、今回はLakeflow Spark Declarative Pipelineを使ってのAuto TTL設定例となります!

JSONがございます。

{"date":"2020-01-01","event_timestamp":"2020-01-01T00:00:00.000Z","event_timestamp_ntz":"2020-01-01T00:00:00.000","year":2020,"month":1,"day_of_week":4,"value":85.76,"category":"A"}
{"date":"2020-01-02","event_timestamp":"2020-01-02T00:00:00.000Z","event_timestamp_ntz":"2020-01-02T00:00:00.000","year":2020,"month":1,"day_of_week":5,"value":310.91,"category":"B"}
以下略

こちらにLakeflow Spark Declarative Pipelineを設定していきます。

これだけ。

-- Timeseries data ingested from JSON files via Auto Loader
-- Retains only last 30 days of data based on event_timestamp
CREATE OR REFRESH STREAMING TABLE timeseries
DELETE ROWS 30 DAYS AFTER event_timestamp
AS
SELECT
  * EXCEPT (event_timestamp),
  CAST(event_timestamp AS TIMESTAMP) AS event_timestamp
FROM STREAM(read_files(
  '/Volumes/kuwano_test_catalog/ttl_demo/data/timeseries/',
  format => 'json'
));

実行結果がこれ。

category	date	day_of_week	event_timestamp	event_timestamp_ntz	month	value	year	_rescued_data
A	2020-01-01	4	2020-01-01T00:00:00.000Z	2020-01-01T00:00:00.000	1	85.76	2020	null
(中略)
A	2026-12-31	5	2026-12-31T00:00:00.000Z	2022-09-26T00:00:00.000	9	1101.79	2026	null

その後に時間が立つとPOが実行されて、以下のようになるのです。

category	date	day_of_week	event_timestamp	event_timestamp_ntz	month	value	year	_rescued_data
A	2026-05-13	4	2026-05-13T00:00:00.000Z	2026-05-13T00:00:00.000	1	85.76	2026	null
(中略)
A	2026-12-31	5	2026-12-31T00:00:00.000Z	2022-09-26T00:00:00.000	9	1101.79	2026	null

というわけで、全量保存する必要がないテーブルなどの管理を楽にするためにAuto TTLぜひお使いくださいませ!

コメントを残す

Trending