Matomo Analytics の RAW データをデータウェアハウスで利用できるようにするにはどうすればよいですか?
Matomo RAWデータにアクセスし、データウェアハウスやBIツールにインポートする必要がある場合、2つのオプションがあります:HTTP API データエクスポート、または直接データベースエクスポートです。
1) HTTP APIを使用してすべてのデータをエクスポートする
MATOMO CLOUD AND ON-PREMISE
当社のHTTP APIを使用すると、すべてのユーザーデータとすべてのユーザーアクション(訪問、ページ、クリック、イベント、ダウンロード、カスタムディメンション、ユーザーロケーション、ユーザー情報など)をエクスポートできます。すべてのRawデータをエクスポートするために使用されるAPIは、ライブ.getLastVisitsDetailsと呼ばれ、指定したウェブサイトと指定した日付のすべてのユーザーとクリックストリームのデータをエクスポートできます。オプションでカスタムセグメント特定のセグメントのユーザーをエクスポートする必要がある場合)。例えば、昨日の全データセットをエクスポートしたい場合、以下のAPIコールを使用します:
https://demo.matomo.cloud/?module=API&method=Live.getLastVisitsDetails&idSite=62&period=day&date=yesterday&format=xml&token_auth=anonymous&filter_limit=100
- ドメイン名demo.matomo.cloudをMatomo Analytics(旧Piwik Analytics)のURLに置き換えます。
- token_auth=anonymousで、anonymousをAPIユーザのtoken_authに置き換えてください。例えば ‘api-data-warehouse-export’ という新しいユーザーを Matomo で作成し、このユーザーにデータウェアハウスにエクスポートするウェブサイトの ‘view’ 権限を与えて、API 呼び出しでこのユーザーの token_auth を使用することをお勧めします。
- filter_limit=100パラメータは、この日のすべてのデータを返すようにします。すべての行を返すには &filter_limit=-1 を使用します。
- データはJSON、XML、CSVなどでエクスポートできる。formal=xmlをお好きなデータ形式に置き換えてください。
- データには、各訪問の最大500アクションが含まれます。もし1回の訪問で500以上のアクションを記録する訪問がある場合、Matomo API がより多くのアクションを返すように設定 (INI 設定を変更)することが出来ます。
- このAPIは1日1回呼び出すことができ、すべての出力データをデータウェアハウスにインポートすることができます。
トラフィックの多い Matomo サーバーに関する重要な注意事項
例えば、10,000以上の訪問とそれに関連するアクションやクリックストリームなど、多くのデータをエクスポートする場合、上記のHTTPリクエストには長い時間がかかるか、タイムアウトする可能性があります(サーバーとPHPの設定に依存します)。最大実行時間0秒を超えました。ある限度まではPHPのメモリ制限を増やすことができますが、4G以上に増やすことは推奨されませんし、何千、何万という訪問者とそのすべてのアクションを返すには4Gでは不十分なこともあります。
したがって、大量のデータをエクスポートする場合は、一度に10,000件だけをエクスポートし、ページング機能 &filter_offset= を使用することをお勧めします。最初の10,000レコードをエクスポートするには、filter_limit=-1の代わりにfilter_limit=10000&filter_offset=0と記述します。そして、次のデータセットをエクスポートするには、filter_limit=10000&filter_offset=20000と書く。データセットの結果がなくなるまで、これを繰り返します。
2) MySQL データベースへの直接読み取り専用アクセス(Matomo Cloud では利用不可)
MATOMO ON-PREMISE ONLY
もう一つの解決策は、すべてのデータが保存されているMatomo Analytics(旧Piwik Analytics)のMySQLデータベースに直接アクセスすることです。特にデータウェアハウスがMySQLからのデータインポートをサポートしている場合(BigQueryのようなツールも含め、ほとんどのデータウェアハウスがサポートしています)、このソリューションの方が大量のデータをインポートするのに高速なはずです。Matomo データベースにアクセスし、データを読み込むことだけができる(書き込みはできない)読み取り専用の MySQL ユーザを作成することをお勧めします。Matomo データベースの構造については、開発者ガイドを参照してください。.データベーススキーマは将来変更される可能性があります。
例えば、訪問ログと同じようにデータベースからデータを選択するには、次のようなクエリを使用します:
SELECT *
FROM matomo_log_visit
LEFT JOIN matomo_log_link_visit_action ON matomo_log_visit.idvisit = matomo_log_link_visit_action.idvisit
LEFT JOIN matomo_log_action ON matomo_log_action.idaction = matomo_log_link_visit_action.idaction_url
LEFT JOIN matomo_log_conversion ON matomo_log_visit.idvisit = matomo_log_conversion.idvisit
LEFT JOIN matomo_log_conversion_item ON matomo_log_visit.idvisit = matomo_log_conversion_item.idvisit;
(注意: 同じカラムが複数のテーブルに存在するため、クエリ結果セットには重複したカラムが含まれます)。
すべての訪問と行動をエクスポートするのに便利なSQLクエリのリストは、別のFAQに記載されています。
注意:MySQL データベースへの直接の読み取り専用アクセス(sql raw データアクセス)は、Matomo Cloud では利用できません(サーバー上で Matomo Self-hosted を使用する場合にのみ利用可能です)。
データウェアハウスとデータレイクのベストプラクティスについて、さらに詳しい情報が必要な場合は、以下をご覧ください。Matomoプロフェッショナルサポートチームへのお問い合わせ.