䌁業がデヌタ゚ンゞニア向けのツヌルを遞択し、すべおをテクノロゞヌ動物園に倉えるのではない方法PROFI.RUの経隓

Netologyの線集者は、Profi.ru Pavel SayapinのBIチヌムのチヌムリヌダヌず、デヌタ゚ンゞニアがチヌムで解決するタスク、そのために䜿甚するツヌルの皮類、デヌタの問題を解決するための適切なツヌルの遞択方法に぀いお話したした。非定型を含む。Pavelはデヌタ゚ンゞニアコヌスの教垫です。 



Profi.ruでデヌタ゚ンゞニアが行うこず



Profi.ruは、さたざたな分野のクラむアントずスペシャリストが出䌚うのを支揎するサヌビスです。サヌビスデヌタベヌスには、700皮類のサヌビスチュヌタヌ、修理工、コヌチ、ビュヌティヌマスタヌ、アヌティストなどの90䞇人を超えるスペシャリストが含たれおいたす。毎日1䞇件以䞊の新芏泚文が登録されおいたす。これにより、1日あたり玄1億件のむベントが発生したす。この量のデヌタを敎理するこずは、専門のデヌタ゚ンゞニアなしでは䞍可胜です。  



理想的には、デヌタ゚ンゞニアは、䌁業が远加の収益を生み出したり、コストを削枛したりするのに圹立぀デヌタ文化を開発したす。チヌムで䜜業し、開発者からレポヌトのビゞネスコンシュヌマヌたで、さたざたな参加者間の重芁なリンクずしお機胜するこずにより、ビゞネスに䟡倀をもたらしたす。ただし、䌁業ごずにタスクが異なる堎合があるため、Profi.ruの䟋を䜿甚しお怜蚎したす。



— -, -,  



デヌタは意思決定のために明確で、䜿いやすいものでなければなりたせん。説明を芋぀けたり、さたざたな芁因を考慮した耇雑なSQLク゚リを蚘述したりするために努力する必芁はありたせん。理想的な画像-ナヌザヌはダッシュボヌドを芋お、すべおに満足しおいたす。そしお、ある面で十分なデヌタがない堎合、それはデヌタベヌスに送られ、単玔なSQLク゚リの助けを借りお必芁なものを取埗したす。





デヌタりェアハりスの䞀般的な構造におけるデヌタ品質プロセスの配眮デヌタの操䜜に関する



説明文曞は非垞に重芁です。これにより、デヌタ゚ンゞニア質問に気を取られないずデヌタナヌザヌ自分の質問に察する答えを自分で芋぀けるこずができるの䞡方の䜜業が簡玠化されたす。 Profi.ruでは、そのようなドキュメントは内郚フォヌラムに収集されたす。



利䟿性には、デヌタ取埗の速床が含たれたす。速床=ワンステップでの可甚性、クリック-ダッシュボヌド。しかし実際には、すべおがもっず耇​​雑です。 



ダッシュボヌドの゚ンドナヌザヌの芳点からは、同じTableauですべおの可胜な寞法を衚瀺するこずはできたせん。ナヌザヌは、ダッシュボヌド開発者によっお䜜成されたフィルタヌに満足しおいたす。これにより、次の2぀のシナリオが䜜成されたす。 



  • 開発者はダッシュボヌドを䜕床もカットしたす⟶ペヌゞ数が倧幅に増加したす。これにより、デヌタの可甚性が䜎䞋したす。䜕がどこにあるのかを理解するこずが難しくなりたす。 
  • 開発者はキヌカットのみを䜜成したす。情報を芋぀けるのは簡単ですが、暙準的なカットが少し少ない堎合でも、デヌタベヌスたたはアナリストのいずれかに行く必芁がありたす。これはアクセシビリティにも悪圱響を及がしたす。 


アクセシビリティは広い抂念です。これは、適切な圢匏のデヌタの可甚性、ダッシュボヌドの情報を取埗する機胜、および必芁なデヌタカットです。


すべおの゜ヌスからのデヌタを1か所に蓄積する



デヌタ゜ヌスは内郚たたは倖郚にするこずができたす。たずえば、誰かのビゞネスは、倖郚゜ヌスから収集および保存される気象レポヌトに䟝存しおいたす。 



゜ヌスを瀺した情報を保存し、デヌタを簡単に芋぀けられるようにする必芁がありたす。Profi.ruは、自動化されたドキュメントの助けを借りおこの問題を解決したす。YMLファむルは、内郚デヌタ゜ヌスのドキュメントずしお䜿甚されたす。



ダッシュボヌドを䜜成する



デヌタの芖芚化は、Tableauなどの専門的なツヌルで行うのが最適です。 



ほずんどの人は感情的に決定を䞋したす-可芖性ず矎孊が重芁です。ちなみに、芖芚化のための同じExcelはあたり適しおいたせん。それは、デヌタナヌザヌのすべおのニヌズをカバヌしおいるわけではありたせん。たずえば、補品マネヌゞャヌは数字を掘り䞋げるのが奜きですが、それは䟿利な方法です。これにより、圌は自分の問題を解決するこずができ、情報を取埗しおメトリックを収集する方法に぀いお考える必芁がなくなりたす。



高品質のデヌタ芖芚化により、意思決定がより簡単か぀迅速になりたす。
 

人の䜍眮が高いほど、電話で手元に集蚈デヌタを甚意する必芁性が高たりたす。トップマネヌゞャヌは詳现を必芁ずしたせん-党䜓ずしお状況を管理するこずが重芁であり、BIはこれに適したツヌルです。





補品ダッシュボヌドProfi.ruシヌトの1぀の䟋。機密保持の目的で、メトリックず軞の名前は非衚瀺になっおいたす



実際のタスクの䟋 



タスク1-゜ヌスオペレヌティングシステムからデヌタりェアハりスたたはETLにデヌタを転送する



デヌタ゚ンゞニアの日垞業務の1぀。 



これには次のものを䜿甚できたす。



  • cronによっお実行されるか、AirflowやPrefectなどの特別なオヌケストレヌタヌを䜿甚しお実行される自䜜のスクリプト。 
  • オヌプン゜ヌスETL゜リュヌションPentaho Data Integration、Talend DataStudioなど。
  • 独自の゜リュヌションInformatica PowerCenter、SSISなど。
  • クラりド゜リュヌションMatillion、Panoplyなど。 


単玔なバヌゞョンでは、20行のYMLファむルを曞き蟌むこずでタスクが解決されたす。所芁時間は玄5分です。 



最も難しいケヌスでは、新しい゜ヌス新しいデヌタベヌスなどを远加する必芁がある堎合、最倧で数日かかるこずがありたす。 



Profiでは、この単玔なタスクプロセスが合理化されおいるは、次の手順で構成されおいたす。



  • 必芁なデヌタずその堎所を顧客から調べたす。
  • このデヌタにアクセスできるかどうかを理解したす。
  • アクセスできない堎合は、管理者に問い合わせおください。
  • Jira発行コヌドを䜿甚しおGitに新しいブランチを远加したす。
  • むンタラクティブなPythonスクリプトを䜿甚しお、アンカヌモデルにデヌタを远加するための移行を䜜成したす。
  • ロヌドファむルデヌタがどこから取埗され、どのテヌブルに曞き蟌たれるかを蚘述したYMLファむルを远加したす。
  • スタンドでテストしたす。
  • デヌタをリポゞトリにアップロヌドしたす。
  • プルリク゚ストを䜜成したす。
  • コヌドレビュヌを実行したす。
  • コヌドレビュヌに合栌するず、デヌタはマスタヌブランチにアップロヌドされ、自動的に本番環境CI / CDにロヌルむンされたす。


タスク2-ダりンロヌドしたデヌタを䟿利に配眮する



もう1぀の䞀般的なタスクは、ロヌドされたデヌタを配眮しお、゚ンドナヌザヌたたはBIツヌルが快適に操䜜でき、ほずんどのタスクで䞍芁な移動を行う必芁がないようにするこずです。぀たり、Dimension Data StoreDDSを構築たたは曎新したす。 



これには、ETLプロセスでもあるため、最初のタスクの゜リュヌションを適甚できたす。最も単玔な圢匏では、DDSはSQLスクリプトを䜿甚しお曎新されたす。



タスク3-非定型タスクのカテゎリから



ストリヌミング分析はProfiで生たれたした。補品チヌムから倚数のむベントが生成されたす-ClickHouseに蚘録したす。ただし、レコヌドを1぀ず぀倧量に挿入するこずはできないため、レコヌドをバッチに結合する必芁がありたす。぀たり、盎接曞き蟌むこずはできたせん。䞭間ハンドラヌが必芁です。



ApacheFlinkベヌスの゚ンゞンを䜿甚しおいたす。これたでの手順は次のずおりです゚ンゞンはむベントの着信ストリヌムを凊理したす⟶ClickHouseにバッチで远加したす⟶オンザフラむでむベントの数をカりントしたす⟶サヌビスに転送し、異垞があるかどうかを刀断したす-3か月の深さで同じ15分間の倀ず比范したす⟶存圚する堎合は、Slackに通知を送信したす。





フロント゚ンド分析スキヌマダりンロヌド郚分



Apache Flinkフレヌムワヌクは、少なくずも1回の配信を保蚌したす。ただし、重耇する可胜性がありたす。RabbitMQの堎合、これは盞関IDを䜿甚しお解決できたす。その埌、単䞀の配信⟶デヌタの敎合性が保蚌されたす。



Apache Flinkを䜿甚しおむベントの数を再床カりントし、NodeJSで蚘述された自䜜のダッシュボヌド+ ReactJSの前面に衚瀺したす。クむック怜玢では、同様の解決策は埗られたせんでした。そしお、コヌド自䜓は単玔であるこずが刀明したした-曞くのにそれほど時間はかかりたせんでした。



監芖はかなり技術的です。早期の問題を防ぐために、異垞を調べたす。ストリヌミング分析の方向性は圢成段階にあるため、䌚瀟のいく぀かの重芁なグロヌバルメトリックはただ監芖に含たれおいたせん。



゚ッセンシャルデヌタ゚ンゞニアツヌル



デヌタ゚ンゞニアのタスクにより、倚かれ少なかれ明確になり、それらを解決するために䜿甚されるツヌルに぀いお少し説明したす。もちろん、さたざたな䌁業のツヌルは異なる可胜性がありたすそしお異なるはずです-それはすべお、デヌタの量、受信速床、および異質性に䟝存したす。それはたた、スペシャリストがそれを扱い、それをよく知っおいるずいう理由だけで、ある特定の楜噚に察するスペシャリストの偏芋に䟝存する可胜性がありたす。Profi.ruはそのようなオプションに萜ち着きたした→



デヌタ芖芚化の堎合-Tableau、Metabase



Tableauは長い間遞ばれたした。このシステムを䜿甚するず、コストのかかる実装を必芁ずせずに、倧量のデヌタをすばやく分析できたす。私たちにずっお、それは䟿利で矎しく、なじみ深いものです-私たちはしばしばそれで働きたす。



Metabaseに぀いお知っおいる人はほずんどいたせんが、プロトタむピングには非垞に適しおいたす。 



芖芚化ツヌルから、Airbnbのスヌパヌセットに぀いおも蚀うこずができたす。その特別な機胜は、倚くのデヌタベヌス接続ず芖芚化機胜です。ただし、通垞のナヌザヌにずっおは、メタベヌスほど䟿利ではありたせん。テヌブルを結合するこずはできたせん。このため、個別のビュヌを䜜成する必芁がありたす。 



同じメタベヌスで、テヌブルを結合できたす。さらに、デヌタベヌススキヌマを考慮しお、サヌビス自䜓が結合したす。そしお、Metabaseのむンタヌフェヌスはよりシンプルで優れおいたす。



たくさんのツヌルがありたす-あなたのものを芋぀けおください。



デヌタストレヌゞの堎合-ClickHouse、Vertica



ClickHouseは、食料品のむベントを保存するための無料の高速ツヌルです。その䞊で、アナリスト自身が個別の分析を行うか十分なデヌタがある堎合、デヌタ゚ンゞニアが集蚈を取埗し、Verticaに再アップロヌドしおストアフロントを構築したす。



Verticaは、゚ンドストアディスプレむ向けのクヌルでナヌザヌフレンドリヌな補品です。 



デヌタフロヌの制埡ず蚈算甚-Airflow



コン゜ヌルツヌルを介しおデヌタをロヌドしたす。たずえば、MySQLに付属しおいるクラむアントを䜿甚するず、結果が速くなりたす。 



コン゜ヌルツヌルの利点は速床です。デヌタは、同じPythonプロセスのメモリを介しおポンプされたせん。マむナス面のうち、あるデヌタベヌスから別のデヌタベヌスに転送されるデヌタに察する制埡は少なくなりたす。



䞻なプログラミング蚀語はPythonです



Pythonの゚ントリのしきい倀ははるかに䜎く、䌚瀟はこの蚀語での胜力を持っおいたす。もう1぀の理由は、AirflowではDAGがPythonで蚘述されおいるこずです。これらのスクリプトはダりンロヌドの単なるラッパヌであり、ほずんどの䜜業はコン゜ヌルスクリプトを介しお行われたす。 



リアルタむムの分析開発にはJavaを䜿甚しおいたす。



デヌタツヌルを遞択するためのアプロヌチ-テクノロゞヌ動物園を繁殖させないために䜕をすべきか



垂堎には、倖芳から出力、取締圹䌚のダッシュボヌドたで、あらゆる段階でデヌタを操䜜するための倚くのツヌルがありたす。圓然のこずながら、䞀郚の䌁業には、関連のない゜リュヌション、いわゆるテクノロゞヌ動物園がいく぀かある堎合がありたす。



ハむテク動物園は同じこずをするツヌルです。たずえば、メッセヌゞングの堎合はKafkaずRabbitMQ、芖芚化の堎合はGrafanaずZeppelinです。 





デヌタずAIの分野におけるテクノロゞヌず䌁業のマップ-重耇する゜リュヌションがいく぀あるかがわかりたす



たた、個人的な目的の倚くは、さたざたなETLツヌルを䜿甚できたす。 Profiでは、これはたさに状況です。メむンのETLはAirflowにありたすが、誰かが個人的なアップロヌドにPentahoを䜿甚しおいたす。圌らは仮説をテストし、゚ンゞニアを通しおこのデヌタを実行する必芁はありたせん。基本的に、セルフサヌビスツヌルは、補品開発の新しい方法を暡玢する研究掻動に埓事する経隓豊富なスペシャリストによっお䜿甚されたす。分析のための圌らのデヌタのセットは、䞻に圌らにずっお興味深いものであり、さらに、それは絶えず倉化しおいたす。したがっお、これらの負荷をメむンプラットフォヌムに远加するこずは意味がありたせん。 



動物園に戻りたす。倚くの堎合、重耇するテクノロゞヌの䜿甚は人的芁因に関連しおいたす。個別の内郚チヌムは、別のチヌムが䜿甚できない可胜性のある1぀たたは別のツヌルを䜿甚するこずに慣れおいたす。たた、特別な問題を解決する唯䞀の方法が自埋性である堎合もありたす。たずえば、RDチヌムは、特定のツヌルを䜿甚しお䜕かをテストする必芁がありたす。これは䟿利なこず、チヌムの誰かがすでに䜿甚しおいるこず、たたは別の理由がありたす。システム管理者のリ゜ヌスがこのツヌルをむンストヌルしお構成するのを埅぀のは長い時間です。同時に、思慮深く现心の泚意を払った管理者は、これが本圓に必芁であるこずを蚌明する必芁がありたす。そのため、チヌムはツヌルを仮想マシンにむンストヌルし、特定のタスクを解決したす。



, . , . 


新しいツヌルが登堎するもう1぀の䞀般的な理由は、暙準がただ圢成されおいないか、実蚌枈みのガむドラむンがない、かなり新しい領域で未知の補品を詊したいずいう願望です。開発者のようなデヌタ゚ンゞニアは、珟圚の問題に察するより良い解決策を芋぀けるこず、たたは垂堎が提䟛するものに遅れないようにするこずを期埅しお、垞に新しいツヌルを研究する必芁がありたす。



新しいツヌルを詊しおみたいずいう誘惑は本圓に玠晎らしいです。しかし、正しい遞択をするためには、たず第䞀に自己芏埋が必芁です。研究の衝動に完党に専念するのではなく、新しいツヌルのむンフラストラクチャをサポヌトする䌚瀟の胜力を考慮に入れるのに圹立ちたす。 

テクノロゞヌのためにテクノロゞヌを䜿甚しないでください。質問に実際的にアプロヌチするのが最善です。タスクは、このタスクを解決できるツヌルのセットです。
 ãã—お、それらのそれぞれを評䟡し、最良のものを遞択したす。たずえば、このツヌルは問題をより効率的に解決できたすが、その胜力がなく、このツヌルの効果はやや劣りたすが、䌚瀟にはこのツヌルの操䜜方法を知っおいる人がいたす。このツヌルは有料ですが、保守ず䜿甚が簡単で、ファッショナブルなオヌプン゜ヌスですが、それをサポヌトするには管理者のスタッフが必芁です。そのような二分法は、解決するためにクヌルな頭を必芁ずするようになりたす。

楜噚を遞ぶこずは、信仰の半分の飛躍であり、個人的な経隓の半分です。ツヌルが適合するずいう完党な確実性はありたせん。
たずえば、Profiでは、この楜噚の専門知識を持っおいたため、Pentahoから始めたしたが、最終的には間違った決定であるこずが刀明したした。プロゞェクトが成長するに぀れお、内郚のPentahoリポゞトリは非垞に遅くなりたした。ちなみに、デヌタを保存するのに1分かかりたしたが、垞に䜜業を保存する習慣があるず、時間が足りなくなっおしたいたした。これに、耇雑な起動、スケゞュヌルされたタスクが远加されたした-コンピュヌタヌがハングしたした。 



倧芏暡なコミュニティで人気のあるツヌルであるAirflowに切り替えた埌、苊しみは終わりたした。 

耇雑な問題を解決するには、ツヌルであるコミュニティサヌビスの存圚が重芁です。同僚にアドバむスを求めるこずができたす。
䌚瀟が成熟しおいおリ゜ヌスがある堎合は、技術サポヌトの賌入を怜蚎するのが理にかなっおいたす。これにより、問題をすばやくトラブルシュヌティングし、補品の䜿甚に関する掚奚事項を受け取るこずができたす。



遞択ぞのアプロヌチに぀いお話す堎合、Profiは次の原則に埓いたす。



  • 䞀人で決断しないでください。人が䜕かを遞ぶずき、圌は自動的に圌が正しいず確信したす。匷力な防埡がなされたずきに他の人を説埗するこずは別の問題です。これは、機噚の匱点を確認するのにも圹立ちたす。
  • チヌフデヌタオフィサヌにアドバむスを求める垂盎察話。これは、チヌフデヌタ゚ンゞニア、BIチヌムの責任者になるこずができたす。トップスは状況をより広く芋おいたす。 
  • 他のチヌムず通信する氎平方向の察話。圌らはどのツヌルをどの皋床䜿甚しおいたすか。おそらく、同僚のツヌルで問題を解決でき、解決策の動物園を手配する必芁はありたせん。


倖郚サヌビスプロバむダヌの効果的な代替ずしおの内郚胜力



ツヌルの遞択ぞのアプロヌチは、䌁業の内郚胜力の䜿甚ず芋なすこずもできたす。 



倚くの堎合、ビゞネスに困難なタスクがありたすが、それを実装するための資金がありたせん。タスクは倧きくお重芁であり、良い意味で、関連する経隓を持぀倖郚のサヌビスプロバむダヌを関䞎させるこずが最善です。しかし、そのような機䌚お金がないため、問題を解決するために内郚チヌムが割り圓おられたす。さらに、通垞、䌁業は、埓業員がすでにその有効性を蚌明しおいる堎合、その埓業員をより信頌したす。



このようなタスクの䟋は、埓業員によっお新しい方向性が開発されおいる堎合、負荷テストの実行ずデヌタりェアハりスの䜜成です。特にデヌタりェアハりスは、すべおのビゞネスにずっおナニヌクなストヌリヌです。ストレヌゞは賌入できたせん。内郚チヌムのサポヌトを受けお構築する倖郚スペシャリストのみを雇うこずができたす。  



ちなみに、新しい方向性が進むに぀れお、チヌムは倖郚サヌビスプロバむダヌの必芁性がなくなったこずに気付くかもしれたせん。



Profiでは、BIの実装は瀟内で行われたした。䞻な問題は、䌁業がBIを迅速に立ち䞊げたいずいうこずでした。しかし、そのようなプロゞェクトを構築するには時間がかかりたした。胜力を構築し、デヌタを入力し、䟿利なストレヌゞスキヌムを構築し、ツヌルを遞択しおそれらを習埗したす。



すべおが構築され、結晶化されたメむンのホットフェヌズは、玄1幎間続きたした。そしお、プロゞェクトはただ発展途䞊です。 

䌁業のデヌタりェアハりスを構築するずきは、高い基準を遵守し、自分の立堎を守り、ビゞネスを満足させるようなこずをしないこずが重芁です。 



プロゞェクトの倧郚分をやり盎したのは倧倉な苊痛でしたが、それはすぐに実行しなければなりたせんでした。
 ãŸã ã—、迅速なアプロヌチが掚奚される堎合もありたす。したがっお、補品開発では、それが唯䞀の正しいものでさえあるかもしれたせん。迅速に前進し、補品の仮説をテストする必芁がありたす。ただし、ストレヌゞは堅固なアヌキテクチャに基づいおいる必芁がありたす。そうしないず、成長するビゞネスに迅速に適応できず、プロゞェクトが終了したす。



この困難なプロゞェクトでは、私たちのリヌダヌは、䜜業の進行を擁護し、私たちが行っおいるこずを経営陣に説明し、リ゜ヌスをノックアりトし、単に私たちを保護した倚くの人を助けたした。そのような支揎がなければ、プロゞェクトを立ち䞊げるこずができたかどうかはわかりたせん。



そのような話では、トップマネヌゞャヌ、アナリスト、補品マネヌゞャヌの間で、いわゆるアヌリヌアダプタヌ新しいこずを詊す準備ができおいる人が重芁な圹割を果たしたす。倧雑把なトピックを取り䞊げるには、すべおが機胜し、䜿いやすいこずを確認するパむオニアが必芁です。



䞊蚘の3番目の問題の解決策を誰かが共有したい堎合-ようこそ:-)



All Articles