質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

889閲覧

APIから取得したデータを計算した上でデータベースに保存する最適な方法

higehige

総合スコア12

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/04/25 21:44

編集2020/04/26 21:12

相当な初学者です。

やりたいことの正しい方法が分からず、キーワードだけでも頂戴できれば自分で調べられますため、「具体的なコード」ではなく「方法論」や参考URLなどについて、ご教示を頂けると大変嬉しく思います。

【前提】
使用環境は、php(Laravel)、JavaScript、MySQLです。
現状は、phpからGoogleAnalyticsにAPIリクエストをして、MySQLに保存するところまでは問題なくできています。
データベースに想像通りの保存ができれば、そこから先の開発もイメージができていますため、「MySQL」に保存をするところまでが、今回の質問のスコープとなります。

【内容】
やりたいことは、GoogleAnalyticsから閲覧ページのデータを100万行単位で落としてきて、それを再集計した上でデータベースに保存をしたいと考えています。

「再集計」とは、例えは、GoogleAnalyticsに保存されたページのデータは、

example.com/?sid=dsfdsfasdfsa
example.com/?sid=tijkfdgkds
example.com/?sid=ijfisdjf93jf

のように同じページのURLが分散しています。
また、ページレポートに対して「そのページを経由しての目標達成数」というデータは閲覧できないため、

A.通常のページレポート
B.目標達成したというセグメントをかけたページレポート

の2つを落としてきて、統合した上でデータベースに保存をしたいと考えています。

つまりやりたいことは、

①URLから(任意の)GETパラメータ部分を残して、統合
②AとBの異なるリクエストから得たデータを①の統合後のURLをキーに統合
③その結果を任意のデータベースに保存

です。

しかし、この①②の集計を、どのような方法で行うことが最も最適なのかが、全くイメージできていない状況です。

素人発想としては、計算用のデータベースを用意しておいて

1、Aをリクエストして、いったん計算用データベースに保存
2、同じくBのリクエストも計算用データベースに保存
3、計算用データベースに対してSQLで統合処理
4、その結果を、正式なデータベースに保存
5、蓄積するデータが膨大になってしまうので、保存に成功したら計算用のデータベースを削除
(何度も繰り返す想定のため、都度残しておくと簡単に億行に到達してしまい、集計成功後は一切不要なデータのため)

といった流れかなと感じておりますが、集計用にデータベースを作るというのが一般的なのかが一切わからず、この方法に進むべきか悩んでおります。

この「方向性」の正誤についてなど、アドバイスをいただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/04/25 22:07

URLは自身が所持しているものでなければ例示ドメインを利用してください(example.comなど)
higehige

2020/04/26 21:12

sample.comではNGなのですね。。 example.comに修正しました。
guest

回答1

0

ベストアンサー

いわゆるバッチ処理に該当するかと思います。

大量データの処理は、これが正解!というものは無く、アーキテクチャや処理内容によって色々な方法を組み合わせる事が多いです。

案として上げていただいた、計算用データベース(テーブル)を用意する作戦もありますのでおかしくはないです。

投稿2020/04/26 01:20

moya_dev

総合スコア183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

higehige

2020/04/30 09:39

ありがとうございます! なかなかこれ!という正解はないのですね。 そのことだけでも、とても勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問