時系列データにおいて、「このデータは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ぜひお使いくださいませ!




コメントを残す