技術情報

ファネルデータはどのように保存されますか?

 

Matomoのほとんどの分析同様、ファネルデータはアプリケーションに表示される前にアーカイブされなければなりません。ファネルデータのアーカイブは、通常予定されているアーカイブプロセス中に行われます。しかし、いくつかの重要な違いがあります。例えば、ファネル分析を計算し、アーカイブテーブルに直接挿入する代わりに、中間テーブルが初期計算値の保存に使用されます。その後、アーカイブ・テーブルにデータを挿入する際に、中間のlog_funnelテーブルがクエリされる。

なぜファネルデータを異なる方法でアーカイブするのか?

ファネルは特定のURLパターンのような定義されたステップなので、それらの特定のパターンに基づいて訪問アクションをフィルタリングする必要があります。つまり、Funnelsはデータをアーカイブするのが最も複雑でリソースを必要とするプラグインの1つなのです。

ファネルアーカイビングを効率的に処理するには?

ページ紹介で述べたように、ファネルの各ステップごとの最初の訪問カウントを記録するためにlog_funnelテーブルを使用します。その後、最終的なアーカイブデータを取得するためにテーブルを照会します。Funnelsプラグインのバージョン4.1.2から、現在の日のデータをアーカイブする頻度を制限しています。これはtime_before_today_archive_considered_outdatedコンフィグ設定に基づいており、デフォルトは900秒ですが、クラウドインスタンスでは21600秒です。経過時間はoptionテーブルのfunnel_archiving_today接頭辞を持つレコードを使用して計算されます。以前は、アプリケーションの他の部分と同様に、同じ日の制限が使用されるはずでしたが、見落とされていたようです。バージョン4.1.2でのもう一つの変更点は、log_funnelテーブルのデータを再利用しなくなったことです。このデータの再利用は効率化に役立ちましたが、いくつかの不正確さを招きました。All Visitsが最初にアーカイブされると予想されていたため、特定のセグメントが空の結果でアーカイブされることがありましたが、必ずしもそうではありません。これを改善するために、アーカイブするたびにlog_funnelデータを計算しますが、同じ日がすでに最近アーカイブされていて、その日に新しい訪問アクションが記録されていない場合は、アーカイブをスキップします。optionテーブルのmax_idlink_vaという接頭辞を持つレコードを使用してこれを追跡します。もう一つの変更点は、同じ日に複数のプロセスがアーカイブを試みている場合、最初のプロセスが完了してからでないと次のプロセスが進めないことです。もしあるプロセスが6時間以上待たされると、警告が記録され、あきらめることになります。

アーカイブの無効化はどのように処理されるか

ファンネルのアーカイブデータの無効化は期待通りに機能します。ただし、バージョン4.1.2から1つ異なる点があり、それは、今日と前日のアーカイブはまだ確定していない可能性があるため、無効化しても今日と前日のデータは無効にならないということです。