Slide 19
              Slide 19 text
              
                  © 2025 Classmethod, Inc.
18
変換関数をデータ列に適用してパーティションを定義、パーティション用の
カラムをデータスキーマに追加する手間が不要となる。
3. 隠しパーティション設定の注意点と対策
関数 説明 サポートしている型
year(ts) 日付またはタイムスタンプから「年」を抽出します。 date, timestamp
month(ts) 日付またはタイムスタンプから「月」を抽出します。(例: 2025-10-29 → 2025-10) date, timestamp
day(ts) 日付またはタイムスタンプから「日」を抽出します。(例: 2025-10-29 06:00 →
2025-10-29)
date, timestamp
hour(ts) タイムスタンプから「時」を抽出します。(例: 2025-10-29 06:01 → 2025-10-29-06) timestamp
bucket(N, col) 値をハッシュ化し、N個のバケット(グループ)に均等に分散させます。カーディナリティ
が高い列(例: UUID, ユーザーID)に適しています。
Amazon Athenaの場合は、Nに100以内を指定して同時更新パーティション数を超えない
運用が可能。
int, long, decimal,
date, timestamp,
string, binary
truncate(L,
col)
値を指定した幅(L)で切り捨てます。
・文字列: 最初のL文字で切り捨てます。(例: truncate(3, 'Iceberg') → Ice)
・整数: Lの倍数に切り捨てます。(例: truncate(10, 123) → 120)
int, long, decimal,
string