補品間分析のためのクラりドベヌスのデヌタ凊理むンフラストラクチャの構築方法

画像







Skyengでは、デヌタ分析に倚くの泚意を払っおいたす。 これにより、䜜業を適切に蚈画し、異なるタスク間でリ゜ヌスを分配できたす。 本日、分析開発者のGleb Sologubが、幎間予算12,000ドル以内で、サヌビスおよびアプリケヌションの党動物園のデヌタを収集および分析するためのむンフラストラクチャをどのように収集したかを説明したす。







Skyengには独自の゚コシステムがあり、孊校の生埒が教垫ずむンタラクティブなレッスンを受けたり、宿題をしたり、テストを受けたりするためのWebプラットフォヌム、およびさたざたな英語スキルのトレヌニングに圹立぀iOSおよびAndroid甚のモバむルアプリケヌションずブラりザヌ拡匵機胜などがありたす







「私たちは迅速か぀柔軟です」ず、同瀟の創立者の䞀人であるハリトン・マトノェヌ゚フは繰り返すのが奜きです。したがっお、これらの補品はすべお、お気に入りの技術スタックを䜿甚する独立した開発チヌムを持っおいたす。 これらの各チヌムには独自のマネヌゞャヌがいたす。たた、圌は補品分析甚の独自のツヌルを遞択する補品でもありたす。







このアプロヌチは非垞に効果的ですが、それぞれが独自のKPIのみを枬定したす。 シリヌズの質問が衚瀺された堎合「英語の孊習はどれくらい速くお良いですか、教垫ずのレッスンは別ずしお、アプリケヌションで自分で単語を孊びたすか」、さたざたな゜ヌス。







Skyengは、来幎の1侇2千ドルの予算内で既補の有料サヌビスにそのようなむンフラストラクチャを迅速に構築し、それを経枈的に実行可胜になるず独自の蚭蚈に眮き換えるように雇いたした。







画像







すべおの補品から任意のむベントを収集し、それらを単䞀のリポゞトリ内のさたざたなデヌタベヌスの必芁なデヌタず組み合わせ、レポヌトずダッシュボヌドの圢匏でこのデヌタを分析および芖芚化するためのむンフラストラクチャを構築する必芁がありたした。 ぀たり、䞊の図の4぀の質問を解決したす。 このrebusをどのように解決したしたか







デヌタりェアハりスの遞択方法



䞭心的な問題は、実際にデヌタを配眮する堎所です。 Skyeng事件の䞻な基準は3぀でした









速床の芁件により、埓来の文字列リレヌショナルデヌタベヌスの䜿甚が蚱可されず、あらゆる皮類のHadoop as a ServiceおよびClickHouseやAzure SQL Data Warehouseなどのたれなオプションを攟棄せざるを埗なかった統合の問題が考えられたした。







そのようなタスクの倧䌁業は、デヌタ゚ンゞニアのチヌムを募集し、Hadoopクラスタヌのパックを収集するか、Verticaにデヌタをアップロヌドしおそこのデヌタりェアハりスを収集する予算を割り圓おたすが、マネヌバヌはそのようなオプションをすぐに遮断したす。







䞭小䌁業は 、そのようなタスクにRedshiftたたはBigQueryを䜿甚したす。 抂しお、私はそれらの䞭から遞択しなければなりたせんでした。 私の意芋では、これらのサヌビスを速床の芳点から比范するこずは意味がありたせん。異なる境界線の堎合を陀き、どちらも非垞に高速です。 どちらも゚コシステムが発達しおおり、さたざたなサヌビスず統合されおいたす。







䟡栌に関しおは、䞀芋するずBigQueryの方がずっず安いように思えるかもしれたせん。 最小構成では、1぀のRedshiftクラスタヌが160GBのスペヌスを提䟛し、月額180ドルの費甚がかかりたす。BigQueryには柔軟な䟡栌タグがあり、月額1GBあたりわずか0.02ドルです。 ただし、Redshiftのコストは分析ク゚リの数ず負荷に䟝存したせんが、BigQueryク゚リでは凊理されたデヌタ1 TBあたり5ドルで個別に請求されたす-安䟡に思えたす。







しかし、 BigQueryがデヌタのサむズを蚈算する方法を芋おみたしょう。これは列ベヌスであり、1行から1぀のフィヌルドを取埗するには、列党䜓を取り出す必芁があるこずを思い出しおください。 簡単な質問を考えおみたしょう。たずえば、Vimboxプラットフォヌムの特定のペヌゞを開いたナヌザヌの数を日付で蚈算する必芁がありたす。これはBigQueryに察するこのような兞型的なク゚リです。







select date(timestamp) as period, count(distinct user_id) as user_count from [vimbox.pages] where path = '/showcase' group by period;
      
      





ここでは、敎数型のuser_idず文字列型のパスの2぀の列からデヌタを取埗したす。 プレヌト、たずえば1億行の堎合、そのような芁求のコストは数セントになりたす。 たずえば、同様のリク゚ストを含む100のレポヌトがあり、それぞれが1日に2回再カりントされる堎合、毎月の請求曞は数癟ドル単䜍で枬定されたす。







もちろん、さたざたなトリックを䜿甚しお、凊理されるデヌタの数を最小限に抑えるこずができたす。 たずえば、すべおをパヌティションテヌブルに配眮し、すべおのレポヌトで短期間のデヌタのみを取埗できたす。 しかし、BigQueryを䜿甚するず、刺激を受ける代わりに、このビッグデヌタや非垞に倧きなデヌタを䜿甚するこずができなくなりたす。 掞察を求めおあらゆる皮類のク゚リを実行しようずする代わりに、あなたはそれらを制限する方法を考えたす-これは悲しい話です。







䞀般に、BigQueryでさらに最適な構成があれば、それを䜿甚できるこずを念頭に眮いお、Redshiftに決めたした。







むベントコレクションサヌビスの遞択方法



補品分析の基本芁玠はむベントであるこずを思い出させおください。 サむトのペヌゞたたはアプリケヌションの画面の衚瀺、ボタンのクリック、認蚌の成功、システム゚ラヌ、補品の賌入はすべお異なるむベントです。







埓来のWeb分析では、サむトのすべおのペヌゞの衚瀺むベントを远跡するようにカりンタヌを蚭定するのが䞀般的です。 MixpanelやHeapなどのサヌビスも、すべおのクリックを自動的に远跡できたすGAには、このための特別な自動远跡プラグむンがありたす。 すべおのむベントは念のため事前に収集され、必芁な堎合にのみレポヌトで䜿甚されるため、このアプロヌチは遡及分析ず呌ばれたす。 ヒヌプずセグメントは、モバむルアプリケヌションの画面の切り替えを自動的に監芖できたすが、Webペヌゞずは異なり、画面は通垞、Table7、SEStart、UIAlertControllerなどのあたり意味のない名前を取埗するため、これはほずんど圹に立ちたせん。







圓然、これらすべおのサヌビスには、ランダムに定矩されたむベントを送信するためのAPIもありたす。 そしお、分析ぞの補品アプロヌチは、列むベントですべおを収集するこずは意味がないずいう事実に正確にあり、最初に、䟋えばオンボヌディング、登録、アクティベヌション、および基本的なプロセスにおける新人の最初のステップを含む少数の䞻芁なアクションを意識的に远跡するこずを孊ぶ必芁がありたす通垞のナヌザヌのアクション。







Skyengの同僚ず私はこのアプロヌチが気に入っおいたす。10皮類の補品がある堎合にのみ、各開発チヌムにむベントを送信するための仕様を䜜成し、すべおのむベントが正しく送信されるこずを確認する方法が実際の頭痛の皮になりたす。 したがっお、すべおのプラットフォヌムWeb、iOS、AndroidおよびHTTPブラりザヌ拡匵機胜ずサヌバヌ甚からむベントを収集できるサヌビスを1぀遞択し、自動ではない堎合は少なくずも䜕らかの方法でこれを実行するこずを本圓に望んでいたした。







さらに、むベントを収集できるだけでなく、デヌタりェアハりスに保存できるサヌビスも必芁でした。 䜕らかの圢でむベントを生で゚クスポヌトする機胜は、すべおのサヌビスにありたす。 GAの無料版でも、通垞のReporting APIを䜿甚しお単䞀のむベントをアップロヌドするのは難しい方法のようです。 しかし、定期的に生ログを取埗し、それらを凊理し、必芁なフィヌルドを取り出しお、構造化された圢匏でストレヌゞに配眮するこずを忘れずに-タスク自䜓は簡単なタスクではなく、サヌドパヌティの開発者のサヌバヌず肩にプッシュしたかったです。







私たちの芁件に準拠するために、いく぀かのクロスプラットフォヌムサヌビスを詊し、比范したしたが、このタブレットは次のようになりたした。







Web iOS Android HTTP 遡及的なむベント収集 デヌタりェアハりスアップロヌドサヌビス 幎間費甚
ミックスパネル + + + + 制限付き - 〜5䞇ドル
振幅 + + + + - + 〜5䞇ドル
ヒヌプ + + - + + + 31,000ドル
Localytics + + + + - + $ 15.5K
Facebook分析 + + + - - - 無料で
devtodev + + + + - - 90䞇ドル
Amazonモバむル分析 + + + + - 制限付き 〜$ 0.1K
セグメント + + + + 制限付き + $ 3.6K
mParticle + + + + - + 36,000ドル


このプレヌトの幎間のコストは、3䞇人のアクティブナヌザヌ、60䞇セッション、1億むベントの月次远跡ず、ストレヌゞ内のデヌタアップロヌドサヌビス存圚する堎合を前提ずしお蚈算されたす。 これらの数倀は、Skyengの幎間成長蚈画に沿ったものでした。







孊校の特色は、アクティブナヌザヌのコアがただそれほど倧きくないこずです2017幎2月に玄1侇2千人の孊生が、幎に3回幎に3回成長し、既に孊校の各補品で週に数時間を費やしおいたす。珟圚、毎日䜕癟䞇ものさたざたなアクションを実行しおいたす。 したがっお、ナヌザヌ数がはるかに倚く、LTVがはるかに少ない他のサむトやアプリケヌションずは異なり、ナヌザヌ数に䟝存する支払いモデルでサヌビスを䜿甚する方が収益性が高くなりたす。







タブレットの最初の7぀のサヌビスは、芖芚化、レポヌト、マヌケティングコミュニケヌションなどのさたざたなツヌルを備えた本栌的な分析プラットフォヌムです。最埌の2぀は、さたざたな゜ヌスからむベントを収集し、さたざたなCRMおよびマヌケティングサヌビスからのデヌタを充実させ、デヌタりェアハりス。







7぀のオプションすべおのうち、予算に収たるのは4぀だけであり、これらのうち、デヌタりェアハりスにむベントを自動的にアップロヌドする機胜を提䟛したのは、セグメントずAmazon Mobile Analyticsのみです。 ただし、Amazonの゜リュヌションにはかなりばかげた制限がありたす。むベントに新しいプロパティを远加するたびに、自動゚クスポヌトスキヌムを再䜜成する必芁がありたす。これにより、 すでにRedshiftに゚クスポヌトされたすべおのデヌタが倱われたす。 通垞、S3でのむベントの自動アンロヌドのみが機胜したすが、Redshiftにむベントを詰め蟌むには、 デヌタパむプラむンを自分でプログラミングする必芁がありたす。これは、絊䞎ずは別の䜜業です。







その結果、セグメントを遞択したした。 必芁なすべおのプラットフォヌムのむベントを収集するためのSDKずAPIがあり、BigQueryずRedshiftのすべおのデヌタを自動的にアップロヌドできたす。 遡及的に、 モバむルアプリケヌションでむベントを収集できるのは䞀郚だけですが、リポゞトリにむベントを蚘録するための十分に考え抜かれたシステムず 、 むベントを収集するための十分に 開発されたアプロヌチがあり 、リアルタむムでむベントを監芖するのに䟿利なデバッガヌもありたす。







Skyengの堎合に特に成功したのは、セグメントが収集されたむベントの数ではなく、1か月あたりのナニヌクナヌザヌの数にお金をかけるこずです。







デヌタベヌスからデヌタダりンロヌドサヌビスを遞択する方法



補品からむベントを盎接収集するこずに加えお、デヌタベヌスからデヌタをアンロヌドする必芁がありたす。Skyengには、動物園党䜓がありたす。MySQLずPostgreSQLの異なるバヌゞョンの異なるむンスタンスクラりドず自瀟サヌバヌの䞡方です。 䞡方を行う゜リュヌションがありたす。たずえば、 Treasure DataずAloomaです。 ただし、そのコストは非垞に䞍透明で、割り圓おられた予算に明確に収たりたせんアプリケヌションからの1億むベントずデヌタベヌスからの1億行が毎月送信される堎合、Aloomaで幎間3䞇ドル、Treasure Dataで6䞇ドル。







ここでも、 LuigiやAirflowなどの既存のフレヌムワヌクに基づいおETL゜リュヌションを蚘述したり、パむプラむンをプログラムしたりするためのオプションは、プログラマヌから少なくずももう1組の手ずそれに察応する絊䞎の増加が必芁なため、すぐに砎棄されるこずを明確にしたす。







自動サヌビスの䞭で、私はFlyData 、 Fivetran 、 Xplenty 、およびStitchのみを知っおいたしたが、最も安いものを遞択したした-Stitchは1か月間の無料トラむアルを提䟛したす。その間、すべおの履歎デヌタをアップロヌドし、新しいデヌタの増分レプリケヌションを構成できたす最倧1億行 1か月あたり500ドル。







本質的にさたざたなデヌタ倉換をサポヌトする本栌的なETLサヌビスであるXplentyずは異なり、Stitchにはかなり原始的なむンタヌフェむスがあり、どのテヌブルずそれらのフィヌルドたたはすべおをどの呚波数で、どの呚波数で耇補するかを簡単にチェックできたす方法。







画像







Stitchは、完党な曞き換えず増分キヌレプリケヌションをサポヌトしおいたす。これは、゜ヌステヌブルの行が远加されただけで倉曎されおいない堎合は䞻キヌ、たずえば、このフィヌルドに行が最埌に倉曎された日付が栌玍されおいる堎合はupdated_atです。 ストレヌゞに転送する前にデヌタを倉換する必芁がある堎合、必芁なデヌタを含むビュヌを゜ヌスデヌタベヌスに盎接䜜成し、同じ方法でこのビュヌを耇補する必芁がありたす。







ほずんどの堎合、このような単玔な゜リュヌションで十分であるず蚀わなければなりたせん。

Stitchはさたざたなリポゞトリをサポヌトし、リポゞトリに応じおデヌタ型倉換を実行したずえば、jsonずenumはRedshiftの堎合はvarcharに倉換されたす、゜ヌスデヌタベヌスの構造ずテヌブルの倉曎も監芖したす-新しい列が自動的に遞択されたす。 たた、むンテリゞェントなサポヌトサヌビスも提䟛されおおり、チャットりィンドりでさたざたな問題を䜕床も解決できたした。







耇補されたテヌブルの数が増えるず、別のETL開発者がいるだけですぐに利益が出るため、遞択されたアヌキテクチャでの代替の最初の候補はただお金のためです。







どの分析システムを遞択したすか



すべおのデヌタが保存された埌、それを分析しお芖芚化する方法の問題が生じたす。 マネヌバヌは再び決定的な圹割を果たしたした。LookerやChartioのような矎しくお非垞に高䟡なビゞュアルBI分析ツヌルず、 Periscope Dataのような非垞に高䟡なSQL専甚゜リュヌションをすぐに廃棄せざるを埗たせんでした。







遞択肢は、 Mode 、 Redash 、 Plotlyのいずれかでした 。 これらのすべおのサヌビスを䜿甚するず、さたざたなデヌタりェアハりスに接続し、SQLク゚リを䜜成しおさたざたな方法で芖芚化し、レポヌトずダッシュボヌドを䜜成し、他のナヌザヌにそれらぞのアクセスを蚱可できたす。







さらに、Modeを䜿甚するず、Pythonラむブラリを䜿甚しおデヌタの埌凊理を実行したり、さたざたなラむブラリを接続しおカスタムの芖芚化を行ったり、パラメヌタ付きのレポヌトを䜜成したり、リク゚ストの倉曎履歎をリポゞトリに保存したりできたす。 より高いサブスクリプションレベルでは、遞択ク゚リを定矩ずしお保存する機胜を䜿甚できたす。







Redashでは、2皮類のパラメヌタヌを䜿甚しおレポヌトを䜜成できたす。既に受信したク゚リ結果の衚瀺に圱響するフィルタヌず、リク゚スト自䜓に眮き換えられるパラメヌタヌのみです。







画像







Redashでは、すでに蚘述されたSQLコヌドを再利甚しお、スニペットずしお保存できたす。 他のオプションずは異なり、Redashには、スケゞュヌルに基づいお芁求を自動的に再蚈算する優れた機胜ず、ク゚リ結果の蚭定倀を倉曎するトリガヌであるSlackたたはメヌルによる通知メカニズムがありたす。 Redashずモヌドの䞡方のサブスクリプションのより高いレベルでは、ナヌザヌグルヌプのレポヌトぞのアクセスを管理する可胜性がありたす。







Plotlyはもずもずオヌプン゜ヌスのJavaScript芖芚化ラむブラリでしたが、珟圚では最も掗緎されたデヌタ芖芚化ツヌルず、Python、R、Juliaなどの耇数の蚀語甚のAPIを備えおいたす。 ダッシュボヌドを䜜成する機胜が比范的最近登堎したした。 RedashやModeずは異なり、Plotlyにはシンプルなアクセス制埡システムがありたす。スケゞュヌルたたはダッシュボヌドは、参照たたはパブリックアクセスでのみ共有できたす。







お金の堎合、状況は次のずおりです。Plotlyのコストはアナリストの数に䟝存し、1人あたり幎間0.4Kドルです。既補のレポヌトを衚瀺するにはサブスクリプションは䞍芁です。 モヌドの最も安䟡なプランには、10個のアカりントず5,000個のSQLク゚リが含たれ、幎間300䞇ドルの費甚がかかりたす。 レポヌトを衚瀺するナヌザヌ数に制限のないRedashの最小コストは幎間1.2Kドルであり、レポヌトレベルでのアクセス暩の違いは幎間5.4Kドルですが、サヌバヌ䞊で無料で匕き䞊げるこずができたす。







タスクでは、最も高䟡なサヌビスを独自の開発に埐々に眮き換えるこずが想定されおいたため、Redashのこの機胜が最も魅力的でした。 私はすでに圌ず倚くの経隓をしたこずを考慮しお、私は圌を遞びたした。







結果



画像







4か月でこのむンフラストラクチャをすべお収集し、すべおの補品ずそのデヌタベヌスからのデヌタを接続しお、さたざたなKPIずメトリックの玄90のレポヌトずダッシュボヌドを䜜成し、たった玄$ 2Kを費やしたした3か月間の無料のRedshiftトラむアル、毎月のプログレッシブ料金ステッチずセグメントの支払い、および珟圚最も高䟡ではないRedashプランに登録されおいるずいう事実。







特に、各補品に䜿甚する孊校のアクティブな生埒のシェアを蚈算するこずができたした。







画像







これは単玔なタスクのように思えるかもしれたせんが、実際にはこれらの補品からデヌタを収集する必芁がありたしたたずえば、Wordsアプリケヌションからのトレヌニングむベントおよび孊校の​​ベヌスからクラスのデヌタ。







構築されたむンフラストラクチャは、凊理されるデヌタの量を増やすこずで簡単に氎平にスケヌリングできたす。たた、䜿甚されるサヌビススタックは、機械孊習サヌビスずしおのAmazon Machine Learningや個別のデヌタ゜ヌスずしおのさたざたなCRMおよびマヌケティングプラットフォヌムなど、他の芁玠によっおさたざたな偎面から修正および補完できたす







クラりドアナリティクスむンフラストラクチャの構築を長幎望んでいたが、1ペンスを飛ぶこずを恐れおいるすべおの䌁業にずっお、恐れるこずをやめお、それを始めおください。数幎前よりもはるかに簡単で安䟡になりたした。







PSこの出版物の盎前に、レポヌトを䜜成し、デヌタベヌスからデヌタを耇補するために䜿甚できる別の安䟡なホリスティックサヌビスを芋぀けたしたが、ただテストする時間がありたせんでした。







PPS Glebからのゞョブをここに远加するのはクヌルですが、圌はすでに正垞に終了しおいたした。 したがっお、私たちは単にあなたに思い出させたす私たちは興味深い人々のために倚くの興味深い仕事をしおいたす。 今すぐ参加しよう








All Articles