#GoogleAnalyticsのrawデータをBigQueryにcloud functionsを使って定時エクスポート
2日目の記事と内容がほぼ同じなのですが、しばらくして、2日目の記事がcloud functionsからだと使えないことがわかったので、詰まったところと、その対処方法までお伝えしていきたいと思います。
##やること
- GoogleAnalytics APIを使ってpythonにrawデータをはき出す
- pandasを使って、GoogleCloudStarageにアップロード
- GCSからBig Queryにエクスポート
##つまったところ
###1.ローカルにファイル作成ができない
2日目のものはローカルで実行する分には問題ありませんでした。
しかし、cloud functionではread onlyであり、csvファイルを作成することができません。
なので、直接BigQueryにエクスポートするか、GCSにcsvファイルを作成することなくアップロードするしかありません。
結果から言うと、後者を選びました。
/tmp/ディレクトリならファイル作成できるとか記事があったんですが、試してうまく行かなったので途中であきらめました。
###2.なんか勝手に実行する関数に2つの変数を与えられている
実行する関数には2つの変数を用意しておかないといけないようです。
##理由
前者だと、letter,number,under_scoreしかpagePathに使えないらしく、また、ほかにもルールがいろいろとあるようで使えませんでした。
##GCSに直接アップロードする方法
記事を探していたら、この方の記事がわかりやすかったです。
PythonでGoogle Cloud Storage(GCS)、BigQueryへpandas DataFrameをcsv保存するclass
##コード
day5.py
##5日目も終了!
ちょっとこういうのを塚回すのもどうかなって思ったんですが、めっちゃ時間かかっちゃったので、ほかにも同じ人がいたら助けになれたら幸いです。
みなさんもコロナには気を付けてください!