Apache Druid を 1 つの記事で詳しく説明

王林
リリース: 2021-02-18 10:20:40
転載
5790 人が閲覧しました

Apache Druid を 1 つの記事で詳しく説明

前書き:

Apache ドルイドとは何ですか?

時系列データベース、データウェアハウス、全文検索システムの特徴を統合した分析データプラットフォームです。

この記事では、ドルイドの特性、使用シナリオ、技術的特徴、アーキテクチャなどを簡単に理解できます。これは、データ ストレージ ソリューションを選択し、ドルイドのストレージと時系列について深く理解するのに役立ちます。ストレージ。

概要

最新のクラウドネイティブ、ストリームネイティブの分析データベース

Druid は、高速なクエリと高速なデータ取り込みワークフロー向けに設計されています。 Druid の強みは、強力な UI、実行時の操作可能なクエリ、および高性能の同時処理にあります。 Druid は、多様なユーザー シナリオを満たすデータ ウェアハウスのオープンソース代替手段とみなすことができます。

既存のデータ パイプラインとの簡単な統合

Druid は、メッセージ バス (Kafka、Amazon Kinesis など) からデータをストリーミングしたり、データ レイク (HDFS、Amazon S3 など) からファイルをバッチ ロードしたりできます。および他の同様のデータ ソース)。

従来のソリューションよりも 100 倍高速なパフォーマンス

データ取り込みとデータクエリに関する Druid のベンチマーク パフォーマンス テストは、従来のソリューションを大幅に上回っています。

Druid のアーキテクチャは、データ ウェアハウス、時系列データベース、検索システムの最良の機能を組み合わせたものです。

新しいワークフローのロックを解除

Druid は、クリックストリーム、APM (アプリケーション パフォーマンス管理システム)、サプライ チェーン (サプライ チェーン)、ネットワーク テレメトリ、デジタル マーケティング、その他のイベント駆動型のシナリオのシナリオをロック解除します Newクエリ方法とワークフロー。 Druid は、リアルタイム データと履歴データの高速なアドホック クエリを実行できるように構築されています。

AWS/GCP/Azure、ハイブリッド クラウド、k8s、レンタル サーバーにデプロイ

Druid はあらゆる *NIX 環境にデプロイできます。オンプレミス環境でもクラウド環境でも。 Druid のデプロイは非常に簡単です。サービスを追加または削除することでスケールアップまたはスケールダウンします。

使用シナリオ

Apache Druid は、リアルタイムのデータ抽出、高パフォーマンスのクエリ、高可用性の要件が高いシナリオに適しています。したがって、Druid は、豊富な GUI を備えた分析システムとして、または高速な集計を必要とする同時実行性の高い API のバックエンドとしてよく使用されます。 Druid はイベント指向のデータにより適しています。

一般的な使用シナリオ:

クリック ストリーム分析 (Web およびモバイル分析)

リスク管理分析

ネットワーク テレメトリ分析 (ネットワーク パフォーマンスの監視)

サーバー指標ストレージ

サプライチェーン分析(製造指標)

アプリケーションパフォーマンス指標

ビジネスインテリジェンス/リアルタイムオンライン分析システムOLAP

これらの使用シナリオは以下で詳細に分析されます:

ユーザーのアクティビティと行動

Druid は、クリック ストリーム、アクセス ストリーム、およびアクティビティ ストリーム データでよく使用されます。具体的なシナリオには、ユーザー エンゲージメントの測定、製品発売の A/B テスト データの追跡、ユーザーの使用パターンの理解などが含まれます。 Druid は、独自のカウント指標などのユーザー指標を正確かつ近似的に計算できます。これは、毎日のアクティブ ユーザーなどの指標を 1 秒以内に概算値 (平均精度 98%) で計算して全体的な傾向を確認したり、正確に計算して関係者に提示したりできることを意味します。 Druid を使用すると、特定のアクションを実行し、別のアクションを実行しなかったユーザーの数を測定する「ファネル分析」を実行できます。これは、ユーザー登録を追跡する製品に役立ちます。

ネットワーク フロー

Druid は、ネットワーク フロー データの収集と分析によく使用されます。 Druid は、ストリーミング データをセグメント化して任意の属性と組み合わせて管理するために使用されます。 Druid は大量のネットワーク フロー レコードを抽出でき、クエリ時に数十の属性をすばやく組み合わせて並べ替えることができるため、ネットワーク フロー分析が容易になります。これらの属性には、IP 番号やポート番号などのコア属性に加え、場所、サービス、アプリケーション、デバイス、ASN などの追加の拡張属性が含まれます。 Druid は非固定スキーマを処理できるため、必要な属性を追加できます。

デジタル マーケティング

Druid は、オンライン広告データの保存とクエリによく使用されます。通常、このデータは広告サービス プロバイダーから提供され、広告キャンペーンのパフォーマンス、クリック浸透率、コンバージョン率 (消費率) などの指標を測定して理解することが重要です。

Druid はもともと、広告データのための強力なユーザー指向の分析アプリケーションとして設計されました。広告データの保存に関しては、Druid はすでに多くの制作実践を行っており、世界中の多数のユーザーが PB レベルのデータを数千台のサーバーに保存しています。

アプリケーション パフォーマンス管理

Druid は、アプリケーションによって生成された運用データを追跡するためによく使用されます。ユーザー アクティビティの使用シナリオと同様に、このデータはユーザーがアプリケーションとどのように対話するかに関するものである場合もあれば、アプリケーション自体によって報告される指標データである場合もあります。 Druid を使用すると、ドリルダウンしてアプリケーションのさまざまなコンポーネントがどのように実行されているかを発見し、ボトルネックを特定し、問題を特定できます。

多くの従来のソリューションとは異なり、Druid には、ストレージ容量が小さく、複雑さが小さく、データ スループットが大きいという特徴があります。数千のプロパティに関するアプリケーション イベントを迅速に分析し、複雑な負荷、パフォーマンス、使用率のメトリクスを計算できます。たとえば、API エンドポイントは 95% のクエリ レイテンシに基づいています。データを日ごとにセグメント化する、ユーザーのポートレートごとの統計、データセンターの場所ごとの統計など、一時的な属性によってデータを整理およびセグメント化できます。

IoT とデバイスのメトリクス

Driud は、処理サーバーおよびデバイスの指標データを保存するための時系列データベース ソリューションとして使用できます。マシンによって生成されたリアルタイム データを収集し、迅速なアドホック分析を実行して、パフォーマンスを測定し、ハードウェア リソースを最適化し、問題を特定します。

従来の多くの時系列データベースとは異なり、Druid は本質的に分析エンジンです。 Druid は、時系列データベース、列解析データベース、検索システムの概念を組み合わせたものです。単一システムで時間ベースのパーティショニング、列ストレージ、検索インデックス作成をサポートします。これは、時間ベースのクエリ、数値集計、および取得フィルター クエリが非常に高速になることを意味します。

何百万もの固有のディメンション値をメトリクスに含めることができ、任意のディメンションでグループとフィルターを自由に組み合わせることができます (Druid のディメンションは時系列データベースのタグに似ています)。タググループとランクに基づいて、多数の複雑なメトリクスを計算できます。また、タグの検索とフィルタリングは、従来の時系列データベースよりも高速になります。

OLAP とビジネス インテリジェンス

Druid は、ビジネス インテリジェンスのシナリオでよく使用されます。同社は Druid を導入してクエリを高速化し、アプリケーションを強化しています。 Hadoop ベースの SQL エンジン (Presto や Hive など) とは異なり、Druid は高い同時実行性と 1 秒未満のクエリ向けに設計されており、UI を介した対話型のデータ クエリを強化します。これにより、Druid は実際の視覚的インタラクション分析により適したものになります。

テクノロジー

Apache Druid は、オープンソースの分散データ ストレージ エンジンです。 Druid のコア設計には、OLAP/分析データベース、時系列データベース、検索システムの概念が組み込まれており、幅広いユースケースに適した統合システムを作成します。 Druid は、これら 3 つのシステムの主な機能を、Druid のインジェスト レイヤー (データ インジェスト レイヤー)、ストレージ フォーマット (ストレージ フォーマット レイヤー)、クエリ レイヤー (クエリ レイヤー)、およびコア アーキテクチャ (コア アーキテクチャ) に統合します。

Apache Druid を 1 つの記事で詳しく説明

Druid の主な機能は次のとおりです。

列ストレージ

Druid は、データの各列を個別に保存および圧縮します。また、クエリの際には、クエリが必要な特定のデータのみがクエリされ、高速スキャン、ランキング、および groupBy がサポートされます。

ネイティブ検索インデックス

Druid は、文字列値の逆インデックスを作成して、データの高速検索とフィルタリングを実現します。

ストリーミングおよびバッチ データの取り込み

すぐに使える Apache kafka、HDFS、AWS S3 コネクタ、ストリーミング プロセッサ。

柔軟なデータ スキーマ

Druid は、変化するデータ スキーマやネストされたデータ型にエレガントに適応します。

時間ベースの最適化されたパーティショニング

Druid は、時間に基づいてデータをインテリジェントに分割します。したがって、Druid の時間ベースのクエリは従来のデータベースよりも大幅に高速になります。

SQL ステートメントのサポート

ネイティブ JSON ベースのクエリに加えて、Druid は HTTP および JDBC ベースの SQL もサポートします。

水平方向のスケーラビリティ

数百万/秒のデータ取り込み速度、大規模なデータ ストレージ、および 1 秒未満のクエリ。

運用・保守が簡単

サーバーの追加・削除により容量を拡張・削減できます。 Druid は自動リバランスとフェイルオーバーをサポートしています。

データ取り込み

Druid は、ストリーミングとバッチ データの取り込みの両方をサポートしています。 Druid は通常、Kafka などのメッセージ バス (ストリーミング データのロード) または HDFS などの分散ファイル システム (バッチ データのロード) を介して生データ ソースに接続します。

Druid は、インデックス処理を通じて元のデータをセグメントの形式でデータ ノードに保存します。セグメントはクエリに最適化されたデータ構造です。

Apache Druid を 1 つの記事で詳しく説明

データ ストレージ

ほとんどの分析データベースと同様、Druid はカラム型ストレージを使用します。さまざまな列のデータ型 (文字列、数値など) に応じて、Druid はさまざまな圧縮方法とエンコード方法を使用します。 Druid は、さまざまな列タイプに対してさまざまなタイプのインデックスも構築します。

検索システムと同様に、Druid は文字列列の逆インデックスを作成して、より高速な検索とフィルタリングを実現します。時系列データベースと同様に、Druid は時間に基づいてデータをインテリジェントに分割し、時間ベースのクエリを高速化します。

従来のほとんどのシステムとは異なり、Druid はデータを取り込む前に事前にデータを集約できます。この事前集計操作はロールアップと呼ばれ、ストレージ コストを大幅に節約できます。

Apache Druid を 1 つの記事で詳しく説明

Query

Druid は、JSON-over-HTTP および SQL クエリ メソッドをサポートしています。標準の SQL 操作に加えて、Druid は多数の独自の操作もサポートしており、Druid が提供するアルゴリズム スイートを使用して、カウント、ランキング、分位数の計算を迅速に実行できます。

Apache Druid を 1 つの記事で詳しく説明

アーキテクチャ

Druid はマイクロサービス アーキテクチャであり、複数のサービスに分解されたデータベースとして理解できます。 Druid の各コア サービス (取り込み、クエリ、調整) は、汎用ハードウェア上に個別に展開することも、共同で展開することもできます。

Druid は、運用および保守担当者が使用状況や負荷状況に応じて対応するサービスのパラメータを調整できるように、各サービスに明確な名前を付けています。たとえば、負荷が必要な場合、オペレータはデータ インジェスト サービスにより多くのリソースを与え、データ クエリ サービスへのリソースを減らすことができます。

Druid は、他のサービスの動作に影響を与えることなく、独立して失敗する可能性があります。

Apache Druid を 1 つの記事で詳しく説明

運用とメンテナンス

Drui は、24 時間 365 日稼働する必要がある堅牢なシステムになるように設計されています。 Druid には、長期的な運用を保証し、データ損失を防ぐために次の機能があります。

データ コピー

Druid は、設定されたコピー数に基づいて複数のデータ コピーを作成するため、1 台のマシンに障害が発生しても Druid クエリには影響しません。

独立したサービス

Druid は各主要サービスに明確な名前を付けており、用途に応じて各サービスを調整できます。サービスは、他のサービスの通常の動作に影響を与えることなく、独立して失敗する可能性があります。たとえば、データ インジェスト サービスが失敗した場合、新しいデータはシステムにロードされませんが、既存のデータをクエリすることはできます。

自動データ バックアップ

Druid は、すべてのインデックス付きデータをファイル システム (HDFS などの分散ファイル システム) に自動的にバックアップします。すべての Druid クラスター データが失われ、バックアップ データからすぐにリロードされる可能性があります。

ローリング アップデート

ローリング アップデートにより、ダウンタイムなしで Druid クラスタを更新できるため、ユーザーには表示されません。すべての Druid バージョンには下位互換性があります。

時系列データベースと比較について知りたい場合は、別の記事に移動してください:

時系列データベース (TSDB) の最初の紹介と選択

関連する推奨事項: apache サーバー

以上がApache Druid を 1 つの記事で詳しく説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.im
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート