洞察:AI には バッチ × ストリーム × 特徴量共有 × ベクトル検索 が同居する基盤が必要。
目的 | 従来型 DWH だけでは起きる課題 |
---|---|
① データ品質の一貫性 | Notebook ごとに前処理がバラバラ → 本番とテストで食い違う |
② オンライン推論高速化 | API が低レイテンシ (<100 ms) 必須 → DWH には遅い |
③ 非構造データ対応 | 画像・テキストを SQL 型に無理矢理詰めると検索が困難 |
洞察:AI には バッチ × ストリーム × 特徴量共有 × ベクトル検索 が同居する基盤が必要。
目的 | 従来型 DWH だけでは起きる課題 |
---|---|
① データ品質の一貫性 | Notebook ごとに前処理がバラバラ → 本番とテストで食い違う |
② オンライン推論高速化 | API が低レイテンシ (<100 ms) 必須 → DWH には遅い |
③ 非構造データ対応 | 画像・テキストを SQL 型に無理矢理詰めると検索が困難 |
Kafka, Pulsar, Kinesis
高頻度データをマイクロバッチ/Exactly-once
Apache Flink, Spark Structured Streaming
Online aggregation, Window join
Feast, Tecton, Vertex AI FS
"同一計算ロジック" を Offline / Online 共有
Pinecone, Weaviate, pgvector
埋め込み検索 (RAG, 近似 kNN)
項目 | 推奨ベストプラクティス |
---|---|
エンティティキー | user_id, item_id など一意キーを定義 |
ティンギング | Event-time と Ingest-time の2列で遅延補正 |
オンライン Store | Redis / DynamoDB (<10 ms), Scylla(低レイテンシ) |
オフライン Store | Parquet + Hive Metastore / BigQuery |
メリット:
ユースケース | 従来型 DB の限界 | Vector DB の利点 |
---|---|---|
RAG | LIKE / TF-IDF 検索のみ | 句読点や言い回しが違っても意味近傍を取得 |
レコメンド | 単一 key ルックアップ | user/item embedding で Cold-start を軽減 |
異常検知 | 閾値判定 | 高次元センサー埋め込みの外れ点探索 |
インデックス: HNSW (高速 & 高再現)、IVF-PQ (低メモリ)
ハイブリッド検索: BM25 + Embedding で "キーワード"+"意味" を両取り
パターン | 適合例 | 更新頻度 | 技術 |
---|---|---|---|
Lambda | IoT デバイス + 月次分析 | 高 + 低 | Kafka (リアル) + Spark Batch |
Kappa | クリックストリームのみ | 高 | Flink (永続ログ) |
Delta | SaaS ログ + 日次 ETL | 中 | Delta Lake Merge-on-Read |
Tip:Vector DB は Delta 方式 と相性良 (DELETE, UPSERT を nightly で一括)
項目 | 推奨 |
---|---|
データリネージ | OpenLineage + Marquez |
カタログ | DataHub / Amundsen でスキーマ&権限 |
PII マスキング | LakeFS Hooks + Encryption |
アクセス制御 | RBAC + Attribute-based (email domain, region) |
レイヤ | 指標 | 目標例 |
---|---|---|
Stream Ingest | Lag | < 5 s |
Online FS | p95 GET | < 10 ms |
Vector DB | Recall@10 | > 0.93 |
全体 | Feature Freshness | < 15 min |
オール OSS (低コスト & カスタム自由)
マネージド重視 (保守最低限)
症状 | 原因 | 解決策 |
---|---|---|
Feature 再計算遅延 | バッチ再実行が全量 | Incremental Merge (Delta/iCEberg) |
オンライン Store 同期漏れ | スケジューラ分散 | Feast On-Demand Feature + CDC |
Vector DB メモリ爆発 | Embedding サイズ大 | ① 量子化 ② Top-N TTL 削除 |
まず Feature Store を立て、学習と推論で同じコードを再利用できる状態を作る。その後に Vector DB を追加して検索拡張系ユースケースへ展開しましょう。