Apache Pinot の基本入門

Pinot は、非常に高いスループットでも超低遅延の分析を提供するために構築されたリアルタイム分散 OLAP データ ストアです。Apache Kafka や Amazon Kinesis などのストリーミング データ ソースから直接取り込み、オンザフライ クエリでイベントを利用できるようにします。Hadoop HDFS、Amazon S3、Azure ADLS、Google Cloud Storage などのバッチ データ ソースから取り込むこともできます。

システムの中心となるのはカラムナ型ストレージであり、複数のインテリジェントなインデックス作成と事前集約技術により低遅延を実現します。このため、Pinot はユーザー向けのリアルタイム分析に最適です。Pinot は、内部ダッシュボード、異常検出、アドホック データ探索などの他の分析ユースケースにも最適です。

image2e9d8d08d769846.png

Pinot は LinkedIn と Uber のエンジニアによって構築され、無制限に拡張できるように設計されています。クラスターのサイズと予想される 1 秒あたりのクエリ数 (QPS) のしきい値に応じて、パフォーマンスは一定に保たれます。

ユーザー向けのリアルタイム分析

ユーザー向け分析またはサイト向け分析は、製品のエンドユーザーに直接公開する分析ツールおよびアプリケーションです。ユーザー指向の分析アプリケーションでは、ユーザー ベースをアプリケーションのすべてのエンド ユーザーと考えてください。このアプリは、ソーシャル ネットワーキング アプリまたは食品配達アプリにすることができます。Apache Pinot は、オフライン分析を行う少数のアナリストだけを対象としたものではありません。また、アドホック クエリを実行する企業内の少数のデータ サイエンティストを対象としたものでもありません。代わりに、すべてのエンド ユーザーは個人用デバイスでパーソナライズされた分析を受け取ります (1 秒あたり 1000 件のクエリのうち 100 件を考えてください)。これらのクエリは人間が作成したものではなく、アプリケーションによってトリガーされるため、その規模はアプリケーション上のアクティブ ユーザーの数と同じになります (1 秒あたり 100 万イベント)

そして、これは可能な限り最新のデータ、つまりリアルタイム分析を対象としています。一部の企業にとっては、「昨日」は遠い昔のことであり、ETL やバッチ ジョブが待ちきれないかもしれません。彼らが望んでいるのは、データを分析できる状態にすることです (待ち時間が 1 秒未満であることを考慮してください)。

ユーザー向けのリアルタイム分析がこれほど難しいのはなぜですか?

リアルタイム イベントを使用する、このようなユーザー向け分析アプリケーションが欲しいと思うのは素晴らしいことだと思います。しかし、そのような分析ワークロードをサポートすることは、基盤となるインフラストラクチャにとって何を意味するのでしょうか?

image4fead8cf0deb73b5.png

  1. このようなアプリケーションでは、できるだけ新しいデータが必要であるため、システムはデータをリアルタイムで取り込み、リアルタイムのクエリに使用できるようにする必要があります。
  2. このようなアプリケーションのデータは、複数のソースからの幅広い操作で使用されるイベント データであることが多いため、データは非常に高速で受信され、多くの場合高次元になります。
  3. クエリは、エンド ユーザーがアプリケーションを操作することによってトリガーされます。任意のクエリ パターンで 1 秒あたり数十万のクエリが発生し、優れたユーザー エクスペリエンスを実現するために遅延はミリ秒単位で発生すると予想されます。
  4. さらに、スケーラビリティ、信頼性、高可用性、低コストのサービスで上記のすべてを実行することで、さらに一歩前進します。

ピノを使用している企業はどこですか

Pinot は LinkedIn で誕生し、現在最大規模の展開を行っており、View My Profile、Talent Analytics、Company Analytics、Advertising Analytics などの 50 以上のユーザー向けアプリケーションを強化しています。LinkedIn では、Pinot は 10,000 を超えるビジネス指標を視覚化および監視するためのバックエンドとしても機能します。

Pinot の人気が高まるにつれ、現在、いくつかの企業が実稼働環境で Pinot を使用して、さまざまな分析ユースケースをサポートしています。Pinot を使用している企業の詳細なリストは、ここでご覧いただけます。

Apache Pinotの基本機能

  • ランレングス、固定ビット長などのさまざまな圧縮スキームを備えた列指向のデータベース
  • プラガブルインデックステクノロジー - ソートインデックス、ビットマップインデックス、転置インデックス、スターツリーインデックス、ブルームフィルター、範囲インデックス、テキスト検索インデックス (Lucence/FST)、Json インデックス、地理空間インデックス
  • クエリとセグメントのメタデータに基づいてクエリ/実行プランを最適化する機能
  • Kafka、Kinesis などのストリームからのほぼリアルタイムの取り込み、Hadoop、S3、Azure、GCS などのソースからのバッチ取り込み
  • データの選択、集計、フィルタリング、グループ化、並べ替え、およびさまざまなクエリをサポートする SQL に似た言語
  • 複数値フィールドのサポート
  • 水平方向にスケーラブルでフォールトトレラント

いつ使用できますか?

Pinot は、OLAP クエリを低遅延で実行するように設計されています。これは、不変データの高速分析 (集計など) が必要で、リアルタイムのデータ取り込みが必要な場合がある環境に適しています。

ユーザー指向の分析製品

Pinot は、ユーザー向けの分析製品に最適な選択肢です。Pinot は元々、誰が閲覧したプロフィール、会社分析、タレント インサイトなどのリッチでインタラクティブなリアルタイム分析アプリケーションを強化するために LinkedIn で構築されました。UberEats Restaurant Manager は、顧客向け分析アプリケーションのもう 1 つの例です。LinkedIn では、Pinot は 50 を超えるユーザー向け製品を強化し、1 秒あたり数百万のイベントを取り込み、1 秒あたり 100,000 を超えるクエリをミリ秒の遅延で処理しています。

ビジネス指標のリアルタイム ダッシュボード

Pinot は、大規模な多次元データのスライスとダイシング、ドリルダウン、ロールアップ、回転などの一般的な分析操作を実行するためにも使用できます。たとえば、LinkedIn では、Pinot が何千ものビジネス指標のダッシュボードを提供しています。Superset、Tableau、PowerBI などのさまざまな BI ツールを接続して、Pinot でデータを視覚化できます。

異常検出

Pinot でデータを視覚化するだけでなく、機械学習アルゴリズムを実行して、Pinot に保存されているデータの異常を検出することもできます。異常検出と根本原因分析に Pinot を使用する方法の詳細については、「 ThirdEye 」を参照してください。

おすすめ

転載: blog.csdn.net/weixin_39636364/article/details/124755945