Githubを使用したデータ処理ツールの視覚化

仕事でMySQL、Postgres、Mongo、またはApache Sparkを使用していますか? これらのプロジェクトがどこで始まり、現在どこで動いているのか知りたいですか? この記事では、適切な視覚化を紹介します。









今日、あらゆる嗜好に対応する膨大な種類のデータ処理ツールがあります。従来のリレーショナルデータベースから、イベントストリームをリアルタイムで処理するための新しいツールです。 特に人気があり、開発者の愛情がオープンソースプロジェクトを引き起こしています。 このような技術で発生する問題は、Oracleなどのベンダーによって砂に埋もれることはありません(もちろん、問題を回避するための回避策を提供します)が、率直に議論され、最終的に修正されます。 そして、あなた自身が問題を報告するだけでなく、実際にそれを修正し、コードをコミュニティに提供することができます。



同時に、ほとんどすべてのオープンソースプロジェクトは、ソースコードをgithubに保存しています。 メインリポジトリ、または少なくともそのミラーが最新の状態に維持されています。 このバージョン管理システムには、そこに保存されている各プロジェクトのソースコードで行われたすべての変更に関する大量の情報が含まれています。 この情報を分析するとどうなりますか?



分析のために、私はこれまでで最も人気のあるデータ処理ツールのリストを取り、それらのリポジトリを分析しました。 次に、これらのツールに変更を加えたユーザーごとに、Githubでの最後のアクティビティの選択を行い、変更を行った最も人気のあるリポジトリを収集しました。 したがって、視覚化されたリポジトリのリストは、私が個人的に知っているプロジェクトに限定されず、コミュニティの実際の状況をより客観的に反映しています。 したがって、Node.js、Docker、Kubernetesなどのプロジェクトは、データ処理の分野と非常に間接的な関係があるにもかかわらず、視覚化されました。



本質的に、このような視覚化には1つの注目すべき特性があります。それは、マーケティングのない、オープンソースのデータ処理プロジェクトの完全に独立したビューです。 結局のところ、実際の変更が分析され、それが実際の人によって実際のコードに導入されます。 私の意見では、これは素晴らしいことです。なぜなら、製品を宣伝するベンダーは、さまざまな種類の分析出版物の信頼性を大きく損なったからです。



そのため、この作業の一環として、150のGitHubリポジトリが分析され、8333のユニークな開発者によって150万件以上のコミットがコミットされました。 Pythonは、データのアップロード、Github APIの解析と通信、データの保存と分析のためのPostgres、視覚化のためのMatplotlibに使用されました。 ほとんどの場合、視覚化は手で行われました。グラフの頂点移動アルゴリズムも手で記述されました(実際、頂点はそれに関連付けられた頂点に引き付けられ、近くの頂点からはじかれます)。 視覚化自体は次のとおりです。







すべてのプロジェクト名が正常に表示されるように、最高品質で視聴することをお勧めします。



グラフの各頂点は、1つのプロジェクトを表します。 それを表す円の面積は、視覚化によって表される瞬間の10週間前に特定のプロジェクトに変更を加えたユニークな人々の数に比例します(ビデオ上部のバーを参照)。 プロジェクト名のテキストは、ユニークな貢献者の数にも依存します-最大のプロジェクトの大きな黄色のテキスト、小さなプロジェクトのテキストは小さく、最小のプロジェクトはそれらをまったく表示しません。 プロジェクトAとBの間のエッジは、視覚化の瞬間の10週間前にこれらのプロジェクトの両方に変更を加えた人がいる場合に示されます。 合理的だと思いました 1つのテクノロジーのフォークと、Apache HadoopやApache HBaseのような関連プロジェクトだけを結び付けます。



私のオリジナルの出版物はこちらから入手できます



All Articles