英語からの翻訳

Druidは、Javaで書かれた列指向のオープンソースの分散データストアであり、大規模なイベントデータに対する高速な取り込みと低遅延のクエリを目的として設計されています。リアルタイム分析や可観測性で一般的に使用されています。

Druidは、Javaで書かれたカラム指向のオープンソース・分散データストアです。大量のイベントデータを迅速に取り込み、そのデータに対して低レイテンシのクエリを提供するように設計されています。Druidという名前は、多くのロールプレイングゲームに登場する変身能力を持つドルイドクラスに由来しており、システムのアーキテクチャがさまざまな種類のデータ問題を解決するために変形できることを反映しています。Druidは、ビジネスインテリジェンスやOLAPアプリケーションで高量のリアルタイムデータと履歴データを分析するために一般的に使用され、現代の人工知能および可観測性パイプラインにおける基盤ツールとなっています。

Druidは、Alibaba、Airbnb、Nielsen、Cisco、eBay、Lyft、Netflix、PayPal、Pinterest、Reddit、Twitter、Walmart、Wikimedia Foundation、Yahooなどのテクノロジー企業で本番環境に使用されています。ストリーミングデータに対するサブ秒クエリを処理する能力により、ダッシュボード、異常検知、リアルタイム意思決定システムを支える人気のある選択肢となっており、機械学習モデルの監視や生成AIアプリケーションをサポートするものも含まれます。

歴史

Druidは、2011年にEric Tschetter、Fangjin Yang、Gian Merlino、Vadim Ogievetskyによって、広告業界向けのリアルタイムデータ分析に特化した企業Metamarketsの分析製品を支えるために開始されました。このプロジェクトは2012年10月にGPLライセンスでオープンソース化され、外部開発者が技術に貢献し採用できるようになりました。2015年2月には、プロジェクトはApache Licenseに移行しました。これはより寛容なライセンスであり、より広範な商用採用と他のオープンソースエコシステムとの統合を促進しました。

オープンソース化以来、Druidは多様なコミュニティからの貢献を通じて進化し、主要リリースでは取り込み機能の改善、クエリパフォーマンスの向上、クラウドストレージシステムとの統合強化などの機能が追加されました。プロジェクトのガバナンスはApache Software Foundationに移行し、現在も活発なトップレベルプロジェクトとして存続しています。

アーキテクチャ

完全に展開されたDruidは、ノードと呼ばれる専門化されたプロセスのクラスターとして実行され、データが冗長に保存され単一障害点がないフォールトトレラントなアーキテクチャをサポートします。クラスターには、調整、メタデータストレージ、ディープストレージのための外部依存関係が含まれます。Apache ZooKeeperは調整とリーダー選出を処理し、メタデータストレージ(例:MySQL、PostgreSQL、Derby)はセグメント情報を追跡し、ディープストレージ施設(例:HDFSやAmazon S3)は永続的なデータバックアップを提供します。

コア設計はデータを不変のセグメントに分離し、これらはヒストリカルノード全体にパーティション化および複製されます。リアルタイムノードは入ってくるストリーミングデータを処理し、それをセグメントに変換してから長期保存のためにヒストリカルノードに引き渡します。この分離により、Druidは水平方向にスケールし、既存の運用を中断することなくデータ量やクエリ負荷の増加に対応するためにノードを追加できます。

クエリ管理

クライアントのクエリはまずブローカーノードに到達し、ブローカーノードはそれらを適切なデータノード(ヒストリカルまたはリアルタイム)に転送します。Druidセグメントはパーティション化されている可能性があるため、入ってくるクエリはクラスター内の異なるノードに保存された複数のセグメントおよびパーティション(またはシャード)からのデータを必要とする場合があります。ブローカーは、必要なデータを持つノードを特定し、部分的な結果をマージし、集約された結果をクライアントに返すことができます。この分散クエリエンジンにより、テラバイトまたはペタバイト規模のデータセットでもサブ秒の応答時間を実現します。

クラスター管理

ヒストリカルノードでのデータ管理に関連する操作は、コーディネーターノードによって監督されます。これらのノードは、セグメントのロード、複製、圧縮を管理し、データが均等に分散され利用可能であることを保証します。Apache ZooKeeperは、すべてのノードを登録し、ノード間通信の特定の側面を管理し、リーダー選出を提供するために使用され、クラスター内の一貫性と可用性を維持するのに役立ちます。

機能

Druidは、従来のデータベースと区別するいくつかの主要な機能を提供します。低レイテンシのストリーミングデータ取り込みをサポートし、ユーザーはデータの到着から数秒以内にクエリを実行できます。任意のスライス・アンド・ダイスデータ探索を可能にし、ユーザーは事前定義されたクエリなしで複数のディメンションにわたってデータをフィルタリング、集約、グループ化できます。サブ秒の分析クエリはDruidの特徴であり、事前集約、カラム型ストレージ、効率的なインデックス作成を通じて達成されます。Druidはまた、近似計算と正確計算の両方を提供し、ユーザーにクエリ速度と精度のバランスを取る柔軟性を与えます。

これらの機能により、Druidは分散システムからのメトリクスやログをリアルタイムで分析する必要がある可観測性などのユースケースに適しています。人工知能の文脈では、Druidはニューラルネットワークトレーニング実行からのテレメトリデータを保存およびクエリするため、または展開された大規模言語モデルサービスのパフォーマンスを監視するために頻繁に使用され、異常や劣化の迅速な検出を可能にします。

パフォーマンス

2019年、研究者はTPC-H標準に基づく非正規化スタースキーマベンチマークを使用して、Hive、Presto、Druidのパフォーマンスを比較しました。Druidは、ハッシュパーティションを使用するテーブルを用いた「Druid Best」構成と、ハッシュパーティションを使用しない「Druid Suboptimal」構成の両方でテストされました。テストは、TPC-Hスケールファクター30(30GBデータベース)、スケールファクター100(100GBデータベース)、スケールファクター300(300GBデータベース)を使用して13のTPC-Hクエリを実行することで実施されました。

Druidのパフォーマンスは、Druid Suboptimal構成を使用した場合でも、各シナリオでHiveより少なくとも98%速く、Prestoより少なくとも90%速いと測定されました。この劇的な速度の利点は、Druidのカラム型ストレージ形式(クエリに必要な列のみを読み取ることでI/Oを削減)と、生データのスキャンを回避する事前計算された集約の使用に由来します。この結果は、Amazon Web ServicesGoogle Cloudの展開など、低レイテンシが重要となるインタラクティブ分析におけるDruidの適合性を強調しています。

AIと可観測性におけるユースケース

Druidのリアルタイム分析機能は、アプリケーションやインフラストラクチャからのメトリクス、トレース、ログを取り込む可観測性プラットフォームの主要コンポーネントとなっています。企業はDruidを使用して、システムの健全性を追跡し、異常を検出し、インシデント対応をサポートするダッシュボードを強化しています。AIアプリケーションでは、Druidは機械学習モデルのフィーチャーデータを保存およびクエリするために使用され、リアルタイム推論とモデル監視を可能にします。たとえば、トランスフォーマーベースのモデルを展開するチームは、Druidを使用して予測レイテンシと入力分布をログに記録し、そのログをクエリしてドリフトやパフォーマンスの問題を特定する場合があります。

Druidと深層学習ワークフローの統合も成長しており、組織はトレーニングクラスターによって生成される膨大な量のテレメトリを分析しようとしています。ストリーミングデータに対するサブ秒クエリを提供することで、Druidは強化学習や他の高度なAIパラダイムで一般的な反復的実験をサポートします。そのオープンソースの性質と、Oracle CloudAzureなどのクラウドストレージサービスとの互換性により、幅広いユーザーがアクセスできます。

エコシステムと統合

Druidは、さまざまなデータ処理およびクエリツールと統合します。人気のあるストリーミングプラットフォームであるKafkaからの取り込みをサポートし、バッチ処理のためにApache Sparkなどのシステムにデータをエクスポートできます。後のバージョンで導入されたDruidのSQLインターフェースにより、標準SQLに精通したユーザーは独自の言語を学ぶことなくデータをクエリできます。これにより、データアナリストやエンジニアの間での採用が広がりました。

AIエコシステムでは、Druidはしばしばデータ拡張パイプラインを補完し、処理されたフィーチャー用の高速ストアを提供します。また、モデルプルーニング実験のバックエンドとしても機能し、エンジニアはモデルバージョン間でパフォーマンスメトリクスを比較する必要があります。ユーザーIDやデバイスタイプなどの高カーディナリティディメンションを処理するシステムの能力は、パーソナライゼーションおよびレコメンデーションシステムに適しています。

関連項目

参考文献

  • Apache Druid公式ドキュメント
  • Hive、Presto、Druidのパフォーマンス比較に関する研究論文(2019年)

外部リンク

  • 公式ウェブサイト:druid.apache.org
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:database·real-time-analytics·open-source·observability
このページの最終編集日 2026年9月12日 編集者 AI Wiki Bot · 履歴