動的パーティショニング・列指向フォーマット・Glue パーティション射影 完全図解
想像してください: あなたが運営する工場には、毎分数千個の製品が流れてきます。従来なら作業員が手作業で一つ一つ分類し、倉庫の適切な場所に保管していました。
Kinesis Data Firehose は: AI搭載の自動仕分けシステムです。製品の特徴を自動で判別し、最適な保管形式で、適切な倉庫区画に効率的に格納してくれます!
従来の図書館: すべての本を入荷順に一つの大きな書庫に保管
AI図書館司書: 本の内容を瞬時に分析し、ジャンル・著者・出版年別に自動で適切な書棚に分類配置
メリット: 特定の本を探すとき、全書庫を探す必要がなく、該当する書棚だけを確認すれば見つかる!
問題点:
メリット:
行指向(従来): 商品を顧客の注文単位でまとめて保管。「田中さんの注文:りんご、牛乳、パン」を一つの箱に
列指向(最適化): 商品の種類別に保管。「りんご倉庫」「牛乳倉庫」「パン倉庫」に分けて保管
効果: 「りんごの売上だけ知りたい」とき、りんご倉庫だけ確認すれば済む!
特徴: 人間が読みやすい
サイズ: 100MB
圧縮率: 低
クエリ速度: 遅い
用途: 開発・デバッグ
特徴: 分析に最適化
サイズ: 15MB
圧縮率: 非常に高い
クエリ速度: 高速
用途: データ分析・ML
特徴: Hive/Spark最適化
サイズ: 12MB
圧縮率: 最高
クエリ速度: 最高速
用途: ビッグデータ処理
| 行1 | 田中 | 28 | 東京 | 50000 |
|---|---|---|---|---|
| 行2 | 佐藤 | 35 | 大阪 | 60000 |
| 行3 | 鈴木 | 42 | 名古屋 | 55000 |
| 行4 | 高橋 | 29 | 福岡 | 48000 |
保存方法: 行ごとにまとめて保存
問題: 年齢だけ知りたくても全データ読み取り
| 名前列 | 田中 | 佐藤 | 鈴木 | 高橋 |
|---|---|---|---|---|
| 年齢列 | 28 | 35 | 42 | 29 |
| 地域列 | 東京 | 大阪 | 名古屋 | 福岡 |
| 給与列 | 50000 | 60000 | 55000 | 48000 |
保存方法: 列ごとに分けて保存・圧縮
メリット: 年齢列だけ読み取り可能
従来の図書館: 新しい本が入るたびに司書が手動でカタログカードを作成・分類
パーティション射影: 本のタイトルから自動で「出版年」「ジャンル」「著者」を推測し、カタログを自動生成
革新的な点: 実際にカタログを確認しなくても、ルールベースで瞬時に本の場所を特定!
S3のフォルダ構造からパターンを認識:
region=*/year=*/month=*/day=*
Glue テーブルで射影タイプを定義:
WHERE region='us-east-1' AND year=2024
のクエリ時に、Glueが自動でパス
s3://bucket/region=us-east-1/year=2024/
を生成
メタデータ確認不要でS3から直接データ読み取り。従来の1000倍高速化を実現
平均クエリ時間
45分 → 2分15秒
データサイズ
1.2TB → 180GB
月額費用
$15,000 → $3,300
読み取りデータ量
10GB → 800MB
年間 $36,000 → $5,400
削減額: $30,600
年間 $24,000 → $1,920
削減額: $22,080
年間 $12,000 → $3,600
削減額: $8,400
年間 $120,000 → $48,000
削減額: $72,000
$133,080
投資回収期間:3ヶ月
データ: クリックストリーム、購入履歴、在庫変動
パーティション: 地域・時間・カテゴリ別
効果: リアルタイム在庫最適化、パーソナライゼーション
成果: 売上15%向上、在庫コスト30%削減
データ: バイタル記録、診療履歴、検査結果
パーティション: 病院・診療科・日付別
効果: 疾患パターン分析、治療効果測定
成果: 診断精度20%向上、コスト40%削減
データ: 位置情報、燃費、運転パターン
パーティション: 車両ID・地域・時間別
効果: 予防メンテナンス、ルート最適化
成果: 故障率50%減、燃費25%改善
データ: 視聴履歴、エンゲージメント、デバイス情報
パーティション: 地域・デバイス・コンテンツ別
効果: コンテンツ推薦、配信最適化
成果: 視聴時間35%増、解約率60%減
データ: センサーデータ、品質検査結果、生産ライン状況
パーティション: 工場・ライン・時間別
効果: 不良品予測、設備最適化
成果: 不良率80%減、稼働率15%向上
データ: 取引履歴、市場データ、顧客行動
パーティション: 地域・商品・リスクレベル別
効果: 不正検知、信用リスク評価
成果: 不正検知精度95%、審査時間70%短縮
動的パーティショニングを有効化し、パーティションキーを設定
Parquet形式を選択し、圧縮方式(GZIP/Snappy)を設定
データカタログにテーブルを作成し、パーティション射影を設定
各パーティションの射影ルールを定義
Lambda関数でデータ前処理や形式変換を実行
CloudWatchでメトリクス監視とアラート設定
症状: クエリが全パーティションをスキャン
原因: 射影設定の不備
解決方法:
症状: データ配信が失敗する
原因: スキーマ不整合
解決方法:
症状: すべてのデータが同じフォルダに
原因: パーティションキーの設定ミス
解決方法:
症状: S3・クエリ費用が高額
原因: パーティション戦略の問題
解決方法:
動的パーティショニング + 列指向フォーマット + パーティション射影
Created by SSuzuki1063
AWS SAP Learning Resources