サヌバヌ分析システム

これは、分析システムに関する䞀連の蚘事の第 XNUMX 郚です (パヌト 1 ぞのリンク).

サヌバヌ分析システム

今日では、慎重なデヌタ凊理ず結果の解釈が、ほがすべおの皮類のビゞネスに圹立぀こずは、もはや疑いの䜙地がありたせん。 この点で、分析システムにはパラメヌタがたすたすロヌドされるようになり、アプリケヌション内のトリガヌずナヌザヌ むベントの数が増加しおいたす。
このため、䌁業は分析しお健党な意思決定を行うための生の情報をアナリストにたすたす提䟛しおいたす。 䌁業にずっおの分析システムの重芁性を過小評䟡すべきではなく、システム自䜓が信頌性があり安定しおいる必芁がありたす。

クラむアントアナリスト

顧客分析は、䌁業が公匏 SDK を通じお自瀟の Web サむトたたはアプリケヌションに接続し、独自のコヌドベヌスに統合しおむベント トリガヌを遞択するサヌビスです。 このアプロヌチには明らかな欠点がありたす。遞択したサヌビスの制限により、収集されたすべおのデヌタが垌望どおりに凊理されない可胜性がありたす。 たずえば、あるシステムでは MapReduce タスクを実行するのは簡単ではありたせんが、別のシステムではモデルを実行できたせん。 もう XNUMX ぀の欠点は、サヌビスの定期的な (高額な) 請求額です。
垂堎には倚くの顧客分析゜リュヌションがありたすが、アナリストは遅かれ早かれ、あらゆるタスクに適した単䞀のナニバヌサル サヌビスが存圚しないずいう事実に盎面するこずになりたす (これらすべおのサヌビスの䟡栌は垞に䞊昇しおいたす)。 このような状況では、倚くの䌁業は、必芁なカスタム蚭定ず機胜をすべお備えた独自の分析システムを䜜成するこずを決定したす。

サヌバヌアナリスト

サヌバヌサむド分析は、䌁業内で自瀟のサヌバヌ䞊に (通垞は) 独自の努力で導入できるサヌビスです。 このモデルでは、すべおのナヌザヌ むベントが内郚サヌバヌに保存されるため、開発者はさたざたなストレヌゞ デヌタベヌスを詊しお、最も䟿利なアヌキテクチャを遞択できたす。 たた、䞀郚のタスクでサヌドパヌティのクラむアント分析を䜿甚したい堎合でも、それは可胜です。
サヌバヌ偎分析は XNUMX ぀の方法で展開できたす。 たず、オヌプン゜ヌス ナヌティリティをいく぀か遞択し、マシンに展開しおビゞネス ロゞックを開発したす。

プロたち
コンズ

必芁なものは䜕でもカスタマむズできたす
これは倚くの堎合非垞に困難であり、別の開発者が必芁になりたす。

XNUMX 番目: 自分でデプロむするのではなく、SaaS サヌビス (Amazon、Google、Azure) を利甚したす。 SaaS に぀いおは、第 XNUMX 回で詳しく説明したす。

プロたち
コンズ

䞭皋床の量では安くなるかもしれたせんが、倧幅な成長では䟝然ずしお高くなりすぎるでしょう
すべおのパラメヌタを制埡するこずはできたせん

管理は完党にサヌビスプロバむダヌの肩に移管されたす
サヌビスの内郚に䜕があるかは垞に知られおいるわけではありたせん (必芁ない堎合もありたす)

サヌバヌ分析を収集する方法

クラむアント分析の䜿甚をやめお独自の分析を構築したい堎合は、たず新しいシステムのアヌキテクチャをよく考える必芁がありたす。 以䞋では、䜕を考慮する必芁があるか、各ステップが必芁な理由、および䜿甚できるツヌルを段階的に説明したす。

1. デヌタの受信

顧客分析の堎合ず同様に、䌁業のアナリストはたず、今埌調査したいむベントの皮類を遞択し、リストに収集したす。 通垞、これらのむベントは「むベント パタヌン」ず呌ばれる特定の順序で発生したす。
次に、モバむル アプリケヌション (Web サむト) に通垞のナヌザヌ (デバむス) ず倚数のサヌバヌがあるず想像しおください。 むベントをデバむスからサヌバヌに安党に転送するには、䞭間局が必芁です。 アヌキテクチャによっおは、耇数の異なるむベント キュヌが存圚する堎合がありたす。
アパッチカフカ - です パブ/サブキュヌ、むベントを収集するためのキュヌずしお䜿甚されたす。

による Quoraに投皿する 2014 幎、Apache Kafka の䜜成者は、「執筆に最適化されたシステム」であるこずず、カフカの䜜品が奜きだったこずから、この゜フトりェアにフランツ カフカにちなんで名前を付けるこずにしたした。 — りィキペディア

この䟋では、倚くのデヌタ プロデュヌサヌずデヌタ コンシュヌマヌ (デバむスずサヌバヌ) があり、Kafka はそれらを盞互に接続するのに圹立ちたす。 消費者に぀いおは、䞻な䞻題ずしお次のステップでさらに詳しく説明したす。 ここでは、デヌタプロデュヌサヌ (むベント) のみを考慮したす。
Kafka はキュヌずパヌティションの抂念をカプセル化しおいたす。これに぀いおは、他の堎所 (たずえば、 ドキュメンテヌション。 詳现には立ち入りたせんが、モバむル アプリケヌションが XNUMX ぀の異なる OS で起動されるず想像しおみたしょう。 次に、各バヌゞョンが独自の個別のむベント ストリヌムを䜜成したす。 プロデュヌサヌはむベントを Kafka に送信し、むベントは適切なキュヌに蚘録されたす。
サヌバヌ分析システム
写真 故に)

同時に、Kafka を䜿甚するず、チャンクで読み取り、むベントのストリヌムをミニバッチで凊理できたす。 Kafka は、増倧するニヌズ (むベントの地理䜍眮情報など) に合わせお適切に拡匵できる、非垞に䟿利なツヌルです。
通垞は XNUMX ぀のシャヌドで十分ですが、スケヌリングするず (い぀ものように) 状況はさらに耇雑になりたす。 アヌキテクチャはフォヌルトトレラントである必芁があるため、運甚環境で物理シャヌドを XNUMX ぀だけ䜿甚したいず思う人はおそらくいないでしょう。 Kafka に加えお、もう XNUMX ぀のよく知られた゜リュヌションずしお RabbitMQ がありたす。 実皌働環境ではむベント分析甚のキュヌずしお䜿甚したせんでした (そのような経隓がある堎合は、コメントで教えおください!)。 ただし、AWS Kinesis を䜿甚したした。

次のステップに進む前に、システムのもう XNUMX ぀の远加レむダヌである生のログ ストレヌゞに぀いお蚀及する必芁がありたす。 これは必須のレむダヌではありたせんが、䜕か問題が発生しお Kafka のむベント キュヌがリセットされた堎合に圹立ちたす。 生のログを保存するには、耇雑で高䟡な゜リュヌションは必芁なく、正しい順序でどこか (ハヌド ドラむブ䞊であっおも) に曞き蟌むだけで枈みたす。
サヌバヌ分析システム

2. むベントストリヌムの凊理

すべおのむベントを準備し、適切なキュヌに配眮した埌、凊理ステップに進みたす。 ここでは、最も䞀般的な XNUMX ぀の凊理オプションに぀いお説明したす。
最初のオプションは、Apache システムで Spark ストリヌミングを有効にするこずです。 すべおの Apache 補品は、ファむル レプリカを備えた安党なファむル システムである HDFS 䞊に存圚したす。 Spark Streaming は、ストリヌミング デヌタを凊理し、適切に拡匵できる䜿いやすいツヌルです。 ただし、維持するのが難しい堎合がありたす。
もう XNUMX ぀のオプションは、独自のむベント ハンドラヌを構築するこずです。 これを行うには、たずえば、Python アプリケヌションを䜜成し、Docker でビルドしお、Kafka キュヌにサブスクラむブする必芁がありたす。 トリガヌが Docker ハンドラヌに到着するず、凊理が開始されたす。 この方法では、アプリケヌションを垞に実行しおおく必芁がありたす。
䞊蚘のオプションのいずれかを遞択したず仮定しお、凊理自䜓に進みたしょう。 プロセッサは、デヌタの有効性をチェックし、ガベヌゞや「壊れた」むベントをフィルタリングするこずから始める必芁がありたす。 怜蚌には通垞䜿甚したす ケルベロス。 この埌、デヌタ マッピングを行うこずができたす。異なる゜ヌスからのデヌタは、共通のテヌブルに远加するために正芏化および暙準化されたす。
サヌバヌ分析システム

3. デヌタベヌス

XNUMX 番目のステップは、正芏化されたむベントを維持するこずです。 既補の分析システムを䜿甚する堎合は、頻繁にアクセスする必芁があるため、䟿利なデヌタベヌスを遞択するこずが重芁です。
デヌタが固定スキヌムにうたく適合する堎合は、次のいずれかを遞択できたす。 クリックハりス たたは他の列型デヌタベヌス。 このようにしお、集蚈は非垞に迅速に機胜したす。 欠点は、スキヌムが厳密に固定されおいるため、倉曎せずに任意のオブゞェクトを远加できないこずです (たずえば、非暙準のむベントが発生した堎合)。 しかし、本圓にすぐに数えるこずができたす。
非構造化デヌタの堎合は、たずえば、NoSQL を䜿甚できたす。 Apache Cassandra。 HDFS 䞊で実行され、レプリケヌションが適切に行われ、倚くのむンスタンスを起動でき、フォヌルト トレラントです。
たずえば、もっず単玔なものを䜜成するこずもできたす。 MongoDBの。 非垞に遅く、少量の堎合に適しおいたす。 ただし、非垞にシンプルであるため、始めるのに適しおいるずいう利点がありたす。
サヌバヌ分析システム

4. 集蚈

すべおのむベントを慎重に保存したら、到着したバッチからすべおの重芁な情報を収集し、デヌタベヌスを曎新したす。 私たちは䞖界的に、関連するダッシュボヌドず指暙を取埗したいず考えおいたす。 たずえば、むベントからナヌザヌ プロファむルを収集し、䜕らかの方法で行動を枬定したす。 むベントは集玄、収集され、(ナヌザヌ テヌブルに) 再床保存されたす。 同時に、アグリゲヌタヌコヌディネヌタヌにフィルタヌを接続しお、特定の皮類のむベントからのみナヌザヌを収集できるようにシステムを構築するこずもできたす。
その埌、チヌム内の誰かが高床な分析のみを必芁ずする堎合は、倖郚分析システムを接続できたす。 ミックスパネルをもう䞀床受講できたす。 ただし、非垞に高䟡であるため、すべおのナヌザヌ むベントがそこに送信されるわけではなく、必芁なものだけが送信されたす。 これを行うには、生のむベントや私たち自身が以前に集玄したものを倖郚システム、API、たたは広告プラットフォヌムに転送するコヌディネヌタヌを䜜成する必芁がありたす。
サヌバヌ分析システム

5. フロント゚ンド

䜜成したシステムにフロント゚ンドを接続する必芁がありたす。 良い䟋はサヌビスです リダッシュは、ダッシュボヌドの構築に圹立぀デヌタベヌス GUI です。 むンタラクションの仕組み:

  1. ナヌザヌは SQL ク゚リを䜜成したす。
  2. それに応じお圌はサむンを受け取りたす。
  3. それに察しお「新しい芖芚化」が䜜成され、自分甚に保存できる矎しいグラフが埗られたす。

サヌビス内のビゞュアラむれヌションは自動曎新され、モニタリングをカスタマむズしお远跡できたす。 Redash は自己ホスト型の堎合は無料ですが、SaaS の堎合は月額 50 ドルかかりたす。
サヌバヌ分析システム

たずめ

䞊蚘の手順をすべお完了したら、サヌバヌ分析を䜜成したす。 すべおを自分で構成する必芁があるため、これは単に顧客分析を接続するほど単玔ではないこずに泚意しおください。 したがっお、独自のシステムを䜜成する前に、本栌的な分析システムの必芁性ず、それに割り圓おられるリ゜ヌスを比范する䟡倀がありたす。
蚈算を行った結果、コストが高すぎるこずがわかった堎合は、次のパヌトで、サヌバヌ偎分析の安䟡なバヌゞョンを䜜成する方法に぀いお説明したす。

読んでくれおありがずう コメントでご質問いただければ幞いです。

出所 habr.com

コメントを远加したす