このようなデータ (名前、日付) の分析は、アドホック SQL クエリを発行して時系列情報を取得するものと見なすことができます。
データセットの大きさに応じて、日付/時間枠 (日/週/月/年、または時間/分でさらに詳しく説明) で情報を「サンプリング」します。
日付フィールドがサンプルレートに切り捨てられるようなクエリをよく使用します.mysql DATE_FORMAT関数はそのためにクールです(postgresとoracleはそれぞれdate_truncとtruncを使用します)
データで見たいものは、WHERE 条件にあります。
select DATE_FORMAT(date_field,'%Y-%m-%d') as day,
COUNT(*) as nb_event
FROM yourtable
WHERE name = 'specific_value_to_analyze'
GROUP BY DATE_FORMAT(date_field,'%Y-%m-%d');
このクエリを実行し、csv ファイルに出力します。そのために直接mysqlコマンドを使用することもできますが、そのようなクエリを実行するpythonスクリプトを作成することをお勧めします。出力フォーマットにはgetoptオプションを使用できます(列ヘッダーの有無にかかわらず、デフォルトとは異なるセパレーターを使用するなど)。また、いくつかのオプションに基づいてクエリを動的に構築することもできます。
このような情報をプロットするには、時系列ツールを見てください。欠落しているデータ (そのような SQL クエリの結果に表示されない日付) がある場合は、選択に注意する必要があります。Excelはそのための正しいものではないと思います(または十分に習得していません)が、出発点になる可能性があります.
個人的には、javascript ライブラリである dygraph が時系列のプロットに非常に優れており、ソースとして csv ファイルを使用できることがわかりました。このような構成では注意が必要です。クロスドメイン セキュリティの制約により、Dygraph オブジェクトを表示する csv ファイルと html ページは同じサーバー上にある必要があります (または、ブラウザーのセキュリティ制約が受け入れたいものは何でも)。
これは私のお気に入りの Web フレームワークであり、URL 呼び出しを次のようにラップしているため、django を使用してこのような webapp を構築していました。
GET /timeserie/view/<category>/<value_to_plot>
GET /timeserie/csv/<category>/<value_to_plot>
最初の URL は、Dygraph オブジェクトの csv ファイルを取得するために URL を参照する変数を含むテンプレート ファイルを単純に出力するビューを呼び出します。
<script type="text/javascript">
g3 = new Dygraph(
document.getElementById("graphdiv3"),
"{{ csv_url }}",
{
rollPeriod: 15,
showRoller: true
}
);
</script>
2 番目の URL は、SQL クエリを生成するビューを呼び出し、結果をテキスト/csv として出力し、Dygraph によってレンダリングされます。
それは「自家製」であり、シンプルにすることも拡張することもでき、任意のデスクトップコンピューターで簡単に実行でき、他の JavaScript ライブラリ/フレームワークで使用するために json 形式を出力するように拡張できます。
それ以外の場合、Pentaho、JasperReport、SOFA などのレポートに関連するツールがオープンソースにあります (ただし、時系列機能は私のニーズには十分ではありません)。そのようなツールでレポート内のデータソースとしてクエリを作成し、timeseries を出力するグラフを作成します。
今日、正しい javascript ライブラリ/フレームワークを使用した Web 手法は、そのような古典的な BI ツールによるレポートの古い方法に挑戦するのに本当に正しくなり始めており、物事をインタラクティブにすることがわかりました :-)