従来のデータウェアハウスがハイテクワークロードに対応できない理由

ニキータは、データおよびプラットフォームチームと協力して、テレメトリやイベントパイプラインから顧客向け分析、AIを活用したエクスペリエンスまで、高並行性でリアルタイムなシステムを構築しています。
従来のデータウェアハウスがハイテクワークロードに対応できない理由

従来のデータウェアハウスは、その設計目的であるバッチ処理型の分析において優れた性能を発揮します。スケジュールに基づいてデータをロードし、大規模な分析クエリを実行し、ダッシュボードを公開し、これを繰り返します。

問題は、今日のハイテクワークロードはもはやそのような挙動を示さないということです。

実際には、いつも同じパターンが繰り返されます。チームはデータウェアハウスに多額の投資を行い、ダッシュボードは問題なく見え、経営陣は自信満々です。しかし、実際のユーザー、API、サービスが同時に同じデータにアクセスし始めると、状況は一変します。レイテンシが急上昇し、コストが跳ね上がり、エンジニアはシステムを維持するために「もう一つだけシステムを追加しよう」と躍起になるのです。

今日、データは絶えず生成され、人間やマシンによって照会され、製品内で直接収益化されています。そしてますます、AIエージェントによって消費されるようになっています。AIエージェントは、夜間の処理が終わるまで待つのではなく、常に最新のコンテキストを必要としています。

要するに、現代のハイテクなワークロードは、ウェアハウスが構築されてきた際の基本的な前提を覆すものなのです

何が変わったのか、なぜ「単にデータウェアハウスを拡張する」だけではたいてい失敗するのか、そしてリアルタイムのパフォーマンスと同時実行性が実際に重要になったときに、最も成功しているチームはどのような違いを生み出しているのかを詳しく見ていきましょう。


ウェアハウスは、ハイテクが存在しない世界のために構築された

オンプレミス型であれクラウド型であれ、従来のデータウェアハウスは、比較的安定した一連の前提に基づいて構築されていました。データはバッチで到着し、クエリは主に分析的であり、同時実行性は管理可能で、スキーマは頻繁に変更されず、結果が出るまでに数秒、あるいは数分待つことは許容範囲内です。データウェアハウスは過去の分析には優れていますが、リアルタイムの運用サービスに求められると苦戦します。

これらのプラットフォームの最新のクラウド版でさえ、その本質は依然として受け継がれています。操作は以前の世代よりもはるかに簡単で強力になっていますが、それでも分析はデータが取り込まれ、変換され、レポートに適した形式にモデル化された後に行われるという前提に基づいています。

以前のワークフローは、質問のほとんどが昨日や先週の出来事に関するものだった時代には理にかなっていました。しかし、今の状況は全く異なります。ハイテク企業はますます、まさに今起こっていることに基づいて事業を展開するようになっています。

今日のハイテクワークロードの実態とは

現代のハイテク環境において、「データ」とは通常、以下のことを意味します。

  • イベント、ログ、クリック、テレメトリの連続的なストリーム

  • 運用クエリと分析クエリが同じデータセットにアクセスする
  • 数千人のユーザー、API、サービス、およびバックグラウンドジョブによる高い同時実行性

  • 数百もの属性を持つ、広範かつ急速に進化するスキーマで、毎週新しいフィールドが追加される
  • 顧客対応エクスペリエンスを支える、秒単位以下のSLA

  • そしてますます増えているのが、AIを活用したクエリ:ベクトル検索、情報取得、特徴量検索、そしてエージェント型ワークフローです

最新の製品分析パイプライン、リアルタイム監視ダッシュボード、広告技術入札システム、あるいはハードウェア製造の品質ループを構築した経験があるなら、このパターンは既にご存知でしょう。

変化した点は、チームが単にシステムをリアルタイムで監視するだけではなくなったことです。彼らは、自動的、継続的、かつ大規模に、リアルタイムで行動することが求められるようになりました。

ウェアハウス中心のアーキテクチャの多くは、まさにそこで限界に達し始めます。

エージェント型リアルタイムアプリケーションでは、トランザクション層、構造化層、半構造化層にわたるデータアクセスを高い同時実行性で実現する必要があります。従来の分析とは異なり、セマンティック層自体がリアルタイム実行パスで利用可能である必要があり、AIエージェントが遅延なくデータの取得、推論、およびアクションを実行できるようにする必要があります。

ハイテクの圧力でウェアハウスがひび割れる理由

チームがウェアハウス業務をリアルタイムかつ高並行処理に対応させようとすると、同じような問題が何度も繰り返し発生する傾向があります。通常、劇的な失敗が起こるわけではなく、徐々に複雑化し、コストが増大し、運用が困難になっていくのです。

症状はよく知られています。

  • 同じデータのコピーがますます増える
  • 予測や説明が難しい、突然のレイテンシーの急激な低下
  • 「もう1件のジョブ」という応急処置でかろうじて繋ぎ止められた脆弱なパイプライン
  • 誰かがようやく指摘するまで、静かに上昇し続けるコスト
  • エンジニアリングチームは、実際にデータを使用するよりも、データの移動に多くの時間を費やしている

私の経験上、こうした問題はほぼ例外なく、ウェアハウスの構築方法と現在のハイテクシステムの運用方法との間の構造的な不一致に起因しています。

1) リアルタイム環境におけるバッチ優先アーキテクチャ

ウェアハウスは、大規模なスキャンと集計分析のために設計されています。まさに「昨夜何が起こったのか?」と問いかけるときに必要な機能です。

現在、多くのハイテク企業は、まさに今起きていることに対応しながら事業を展開しています。機能フラグの展開によってエラーが発生したり、製造ラインで不良品が出始めたり、ファネルのコンバージョン率が急激に低下したり、AIエージェントが意思決定を行う際に最新のコンテキストが必要になったりといった状況です。これらは、昨日のデータでは不十分な状況であり、チームが何時間も後に診断できるような問題ではありません。

データフローが、取り込み、ランディング、変換、ロード、そしてようやく配信というパターンを踏襲している場合、誰かが対応する前に、重要な意思決定時間が既に失われています。スピードが収益、信頼性、顧客の信頼に直接影響する環境では、数分、数時間の遅延は、単なる不便さではなく、すぐに問題の一部となってしまいます。

私が関わる多くの環境では、この遅延は単に不便なだけではありません。収益の損失、顧客体験の低下、そして運用リスクの増大に直接的に影響します。チームは何かがおかしいと認識しているものの、それに対処するために必要なデータは常に一歩遅れているのです。

2) 並行処理はサイレントキラーである

スケーラビリティに関する議論の多くは、保存できる行数や単一のクエリの実行速度に焦点を当てています。しかし実際には、システムをはるかに早く破綻させるのは、同じデータに同時にアクセスしようとする処理の数です。

ダッシュボードが1つなら簡単です。社内アナリストが100人いても、通常は管理可能です。

しかし、数千もの同時API呼び出し、ダッシュボード、バックグラウンドジョブ、顧客からの問い合わせ、そしてAIエージェントがすべて同じデータセットにアクセスするようになると、データウェアハウスを基盤としたアーキテクチャは苦戦し始めます。特に、それらが運用上のサービスレイヤーのように動作するように設計されていない場合はなおさらです。

この種の圧力は通常、次のような形で現れます。

  • キューが形成され、テールレイテンシが予測不能になる
  • 安定しているように見えるシステムが、突然不安定になる
  • 高額なスケーリング戦略にもかかわらず、一貫したSLAを提供できない

そして、これはチームが計画に盛り込むことがほとんどない部分です。並行処理が最重要要件になると、ほとんどのデータウェアハウスアーキテクチャでは、運用トラフィックを処理するためにシステムを追加する必要が生じます。そうなると、もはやクエリのチューニングだけでは済まなくなります。多くの場合、ビジネスが既にそれに依存している状況で、スタック全体を再設計する必要が出てくるのです。

3) システムが多すぎる、接着剤が多すぎる

チームが最終的に、データウェアハウスが運用上のサービス提供レイヤーとして機能しないことを受け入れたとき、その反応はアーキテクチャ全体の再考に及ぶことは稀です。多くの場合、彼らはそれを機能させるために周囲にシステムを追加し始めます。ここにキャッシュ、あそこにストリーム、高速読み取り用の別のデータベース。それぞれの追加は、その時点では実際の問題を解決するため、合理的に感じられます。しかし、数ヶ月、数四半期が経過するにつれて、スタックは広がり、理解するのが難しくなります

私が携わる環境では、ホットパスは通常、一連のシステムを経由して処理されます。分析用のデータウェアハウス、アプリケーションの読み書き用のトランザクションデータベース、最も時間的制約の厳しいリクエスト用のキャッシュ、イベントを移動するためのストリーミングシステム、データセットの整合性を維持するためのETLまたはELTジョブ、セマンティック検索用のベクトルデータベース、機械学習とAI用の特徴量ストア、そして最後に、すべての一貫性を維持しようとする何らかのガバナンスレイヤーです。各システムは、同じ基盤となるデータソースを個別に利用するようになり、重複と乖離が増加します。

これらの選択肢はどれも、単独で見れば悪いものではありません。むしろ、それらが解決しようとしていた差し迫った問題に照らし合わせれば、完全に理にかなっています。

私が懸念しているのは、それらすべてが結びついたときに何が起こるかということです。そうなると、パイプラインは脆弱になり、ビジネスロジックが複数の場所で重複し始め、チームは製品や顧客体験の改善よりも、どの数値が正しいかを議論することに多くの時間を費やすようになります。複雑さはもはや隠されたものではなく、日々の業務の一部となってしまうのです。

AI 駆動ワークフローが導入されると、この断片化はさらに顕著になります。実際のアプリケーションは、単にベクトル類似性検索を実行して終わりにするわけではありません。類似アイテムを取得し、テナントフィルターと権限フィルターを適用し、リレーショナルメタデータに結合し、最近の行動コンテキストを追加し、ユーザーが瞬時に感じられるほど高速に結果を返す必要があります。しかも、これらすべてを大量の同時トラフィックを処理しながら行わなければなりません。そのためには、構造化データ、半構造化データ、ベクトルベースデータなど、複数のデータソースを単一の実行パスに結合する必要があります。このロジックチェーンが複数のシステムに分散すると、レイテンシの許容範囲はほとんどのチームが予想するよりもはるかに早く失われます。ホップと同期ジョブが増えるごとに不確実性が増し、パフォーマンスチューニングは絶え間ないモグラ叩きゲームと化します。こうなると、問題は適切なインデックスやキャッシュを選択したかどうかではなく、アーキテクチャ自体が不利に働いているということになります。

4)ウェアハウスを誤って使用するとコストが急増する

データウェアハウスの料金モデルは、分析ワークロードを前提として設計されています。コンピューティングリソースの起動、大規模なスキャンの実行、マテリアライズドビューの更新、オブジェクトストレージへのデータの複数コピーの保持といった処理に対して料金が発生します。ダッシュボードやスケジュールされたレポートを1時間に数回、あるいは1日に数回実行する程度であれば、この料金体系は問題なく機能します。しかし、データウェアハウスを運用システムとして使用する場合、こうした料金体系の前提はすぐに崩れてしまいます。

本番環境のシステムは大きく様変わりしています。データは整然としたバッチ処理ではなく、常に到着しています。その大部分は、より安価なストレージに転送されるのではなく、常にアクセス可能でクエリ可能な状態を維持する必要があります。さらに、ユーザー、サービス、バックグラウンドジョブ、そしてますます増えているAI駆動型ワークフローからのトラフィックを処理しなければならず、これらすべてが同時に同じデータセットにアクセスします。更新もパイプラインのエッジでの挿入だけではなく、システム全体で発生します。

実際のところ、コストは通常すぐに急上昇するわけではありません。四半期ごとにじわじわと上昇し、最終的に誰かが「なぜウェアハウス費用が役員会レベルの議論の対象になっているのか」と疑問を呈するに至ります。その時点で、チームは運用上の行動をサポートするために分析費用を支払っていることに気づき、そのアーキテクチャを解消するのは、最初から設計しておけばよかった場合よりもはるかに困難になります。

最も成功しているハイテク企業が他と違う点とは?

最も優れたチームは、根本的な転換を図ります。リアルタイムの運用データを、後で保管するためのデータとして扱うのをやめ、戦略的なデータとして扱います。そして、同じデータ上で運用ワークロードと分析ワークロードの両方を大規模に処理できるデータレイヤーを構築します。

一貫して現れる3つのパターンがあります。

パターン1:リアルタイムトランザクションと分析のための単一エンジン

これは、すべてを一夜にして撤去するということではありません。ほとんどの場合、真の目的は、ホットパスに直接接続されているシステムの数を減らすことにあります。

最も効果的なアーキテクチャは、ポイントルックアップ、結合、分析クエリに同じエンジンを使用し、データを継続的に取り込み、即座にクエリを実行できるものです。これは、並行処理の動作が予測可能であり、チームが複数のプラットフォーム間で同じデータの運用コピーと分析コピーを同期させる必要がないことを意味します。

これが、HTAPスタイルの設計がハイテクワークロードにとって非常に重要になった理由です。HTAPスタイルでは、チームは最新の運用データを直接扱いながら、パイプラインや変換処理を経ることなく、分析クエリを実行できます。これこそがリアルタイム分析データベースの決定的な機能であり、運用データの鮮度と分析能力を単一システムで両立させるものです。

実践的な出発点をお探しなら、SingleStoreの初心者向けガイドでは、HTAPのコアコンセプトと、それらの概念が本番システムにおけるリアルタイム運用分析にどのように適用されるかが解説されています。

パターン2:運用データを戦略データとして扱い、リアルタイムで分析する

高いパフォーマンスを発揮するチームは、運用データをまずアーカイブして後で分析する対象とは考えません。データが生成された時点で、つまりまだ関連性があるうちに分析します。

私はこれを様々な業界で目にしています。半導体チームは、製造ログから直接テストデータと歩留まりデータを分析します。広告テクノロジープラットフォームは、オークションやインプレッションが発生すると、セグメントとシグナルをリアルタイムで再計算します。セールステクノロジー企業は、ユーザーが製品を実際に使用している間に、数十億件のレコードに対して複雑な検索を実行します。マーケティングテクノロジープラットフォームは、行動の変化に応じてパーソナライゼーションを継続的に更新します。これらのユースケースはすべて、高速なデータ取り込み高い同時実行性、そしてデータウェアハウスに適したモデルに整形されるのを待たずにライブ運用データをクエリできる機能という、同じ基盤となる機能に依存しています。これが、テレメトリの取り込み、デバイスとハードウェアのテスト、リアルタイム監視ループにおいて、アーキテクチャ上の限界が非常に早く露呈する理由でもあります。

パターン3:AIはもはやサイドプロジェクトではない

AIワークロードはもはや、チームが来年に向けて計画するものではなくなりました。多くの製品において、AIワークロードはすでにコアとなる実行パスの一部になりつつあります。

サポート担当者は、リアルタイムのアカウントデータとインタラクションデータにアクセスする必要があります。異常検知は、運用テレメトリ上で直接実行されます。パーソナライゼーションモデルは継続的に更新されます。エージェントのワークフローは、情報を取得し、それに基づいて推論を行い、アクションをトリガーします。

こうした変化は、見過ごしがちな方法で同時実行性を変化させます。人間は一度に1つのクエリを発行する傾向がありますが、エージェントはそうではありません。エージェントは処理を分散させ、再試行し、複数の取得ステップを並行して実行します。ダッシュボードやAPIトラフィックでは問題なく動作するシステムでも、エージェント主導のアクセスパターンが導入されると、対応に苦慮する可能性があります。この変化によって、分析データベースがダッシュボード向けに構築されたものなのか、それとも継続的なマシン主導のアクセス向けに構築されたものなのかが明らかになります。

ここでも、ベクトル検索をリレーショナル コンテキストに近づけることが重要になります。セマンティック検索と構造化フィルタリングが異なるシステムで実行されると、レイテンシと複雑さの両方が増加します。両方を同時に処理できるプラットフォームであれば、負荷がかかった状態でもAIワークフローを高速かつ予測可能な状態に保ちやすくなります。SingleStoreがリレーショナル クエリと並行してインデックス付きベクトル検索をサポートしているのはまさにこのためです。これにより、検索とフィルタリングを複数のサービスにまたがって実行するのではなく、同じ実行パスで実行できるようになります。

スタックを簡素化することで何が可能になるかを示す2つの実例

私が聞いた中でも特に印象深い説明の一つは、故障箇所特定に取り組む半導体チームから聞いたものです。彼らは、国際宇宙ステーションにいながら、路上でたった1本のホットドッグを探すようなものだと表現しました。数十億個の部品からなるチップの中から、たった1つの故障したトランジスタを見つけるのは、まさにそのような感覚です。

ある事例では、SingleStoreを活用してスキャンチェーンデータを複数の分析レイヤーを経由させるのではなく直接クエリすることで、検索時間が数週間から数秒に短縮されました。エンジニアは、試行ごとに数分待つ代わりに、短いセッションで数千回の反復処理を実行できるようになりました。製造データのデバッグサイクルが遅くて行き詰まった経験がある方なら、これが開発のペースにどれほど大きな影響を与えるかお分かりいただけるでしょう。

同様の傾向は製品分析にも見られます。多くのスタックは、データをクエリ可能にするために大規模なロールアップに依存しており、そのため粒度を犠牲にし、フィードバックの速度を遅らせることになります。チームが数十億ものイベントを取り込み、完全な精度でクエリできるようになれば、分析は個々のインタラクションレベルかつ現在までの状況で行われます。疑問に答えるために、モデリングプロジェクトを作成する必要はなくなります。

Heapは、このアプローチを実運用で実現している代表的な例であり、IEX Cloudもまた、大量のリアルタイムデータを一貫して低遅延で外部ユーザーに提供している事例です。

私がチームに次に何をするように伝えるか

最新のハイテクワークロード向けにデータスタックを構築またはリファクタリングする場合、私がいつも参考にしているのがこの手順書です。

  1. 「ホットパス」のユースケースを特定しましょう
    すべてのワークロードがミリ秒単位の鮮度を必要とするわけではありませんが、一部のワークロードは必要とします。
    顧客向け検索とレコメンデーション、テレメトリと異常検知、リアルタイムパーソナライゼーション、製造品質ループなどが一般的な例です。レイテンシが実際のビジネスリスクを生み出す箇所を正直に把握しましょう。
  2. まず並行処理を考慮した設計を心がけましょう
    ほとんどのシステムはデータ量ではなく、並行処理の不備によって障害が発生します。同時リクエスト数、バーストパターン、p95/p99レイテンシ、マルチテナントの影響、AIエージェントによるトラフィック増幅などを測定しましょう。可観測性を高めることで、問題が深刻化する前に発見できます。
  3. 重要な部分でスタックを縮小しましょう
    ホットパスに12個ものシステムは必要ありません。システムが増えるごとに、レイテンシ、コスト、障害発生リスク、ガバナンスのオーバーヘッドが増加します。コピー数、同期ポイント、そして連携要素を減らす方が、ほぼ確実に良い結果につながります。
  4. 運用データと分析データの整合性を保つ
    クエリの高速化だけでなく、何が真実なのかについての議論を減らすことにもつながります。運用データと分析データが統合されると、チームはリアルタイムの指標を信頼し、より迅速に業務を進めることができます。
  5. AIを念頭に置いて構築しましょう
    たとえ現時点でAIを実装していなくても、いずれは実装することになるでしょう。もしあなたのアーキテクチャが、リレーショナル結合によるデータ取得、高い並行処理能力、高速な更新、そして一貫性のあるセマンティクスをサポートできないのであれば、後から別のシステムを無理やり追加することになるでしょう。

最後に

従来のウェアハウスが失敗したわけではありません。単に、本来想定されていなかった役割、つまり現代のハイテクビジネスにおけるリアルタイムかつ高並列性のデータプレーンとしての役割を担うことを求められているだけなのです。

ビジネスが現時点に基づいて運営されているのであれば、データレイヤーも現時点に基づいて運用されなければなりません。

現在のシステム構成が運用上の障害となっているかどうかを把握しようとする場合、まずはいくつかの簡単な質問から始めることをお勧めします。どのワークロードが本当にクリティカルパス上にあり、適切な意思決定を行うためにデータはどの程度最新の状態である必要があるでしょうか?単一のユーザーリクエストやAPI呼び出しが結果を返すまでに、実際に何台のシステムにアクセスしているでしょうか?データ量の増加ではなく、トラフィックの急増時にレイテンシとコストはどのように変化するでしょうか?また、異なるシステムで利用できるようにするためだけに、既に同じデータをコピーしている箇所はどこでしょうか?

前進するために全てを刷新する必要はありませんが、統合によってリスクが実際に軽減される箇所を意図的に見極める必要があります。そうしないと、かえってリスクが増大してしまうからです。多くの場合、ホットパスを統合し、運用アクセスと分析アクセスをより密接に連携させることで、クエリチューニングをいくら行っても得られない大きなメリットが得られます。

このシリーズの次回の記事では、統合されたリアルタイムアーキテクチャが実際にどのようなものなのか、そしてチームが新たなマルチシステム迷路に陥ることなくそれをどのように評価できるのかについて、さらに詳しく解説します。しかし、既に同時実行制限、リアルタイムSLA、運用データに対するAI駆動型データ取得といった課題に直面している場合は、システムをさらに複雑化するのではなく、簡素化を始めるべき時が来たという強い兆候と言えるでしょう。

よくある質問

Share