技術情報

16. ログからレポートを強制的に再処理するには ?

2015年12月17日 How To

※注 この記事は Piwik1.8~2.17のアーカイブ情報です

まれなケースですが、強制的にオリジナルログからレポートを再処理することが役立つ場合があります。デフォルトでは、レポートは一度のみ処理され (毎時間実行する自動クローンジョブ設定とともに処理されるのが望ましい)、次にデータベースにアーカイブされます。前日 (または前週、前月など ) に PiwikUI を訪れると、これらのアーカイブテーブルから直接読み込まれた前処理のデータしか見ることができません。

警告 : 特定のデータに対するレポートを再処理するには、Visitor Log Data の履歴にアクセスする必要があります。Piwik サーバーで ‘Delete old logs‘ 機能が使用されているかどうかをご確認ください。万が一古いログのいくつかを削除してしまった場合は、実行しないでください !いくつかのデータは永久に削除されてしまいます。

1) 既存アーカイブデータのクリーンアップ

強制的にレポートを再処理するには、以下のいづれか1つの解決策を選んでください。

・(推奨) 特定の日や特定の期間に対するレポートを再処理するには、再処理対象のデータを含む特定の月に対し、2 つの Mysql テーブル piwik_archive_* を削除します。テーブルを削除するには、一般的にウェブホストにより提供されている phpMyAdmin のようなツールを使用します。もし全てのデータに対する全てのレポートのアーカイブを再処理したい場合、Piwik Mysql Database で 全ての piwik_archive_* を削除する必要があります。
・月次レポートを含む全年のデータレポートを削除するには、24 テーブル (12 ヶ月 * 2 テーブル) まで削除する必要があるかもしれません。
・または古いデータがインポートされたことを Piwik に伝えるために API を呼び出すこともできます。
・または config/config.ini.php ファイルを以下のように編集し、設定 (※これらの変数を 0 に戻すことをお忘れなく) することもできます。

[Debug]
always_archive_data_day=1 ; force archiving of all daily reports
always_archive_data_period=1 ; force archiving for all period reports  (week, month, year ) 

あともう少し !

2) レポートの再処理

Piwik にログインすると、Piwik はアーカイブテーブルを再作成するレポートデータの処理を再度トリガーします。これには小さなウェブサイトで 1 秒かかりますが、大きなウェブサイトでは数分かかる可能性があります。
レポートのロード速度を確認したい場合、以下のコマンドを実行し、全ウェブサイトに対するレポートを再処理してください。

./console core:archive --force-all-websites --force-all-periods=315576000 --force-date-last-n=1000 --url=YOUR_PIWIK_URL_HERE

(このコマンドは、標準的な core:archive クローンコマンドの少しのカスタマイズです。)
結論 : データが再処理され、期待通りのダッシュボードが表示されるはずです。