Fluend+Bigqueryで失敗したときのメモ
なにを失敗したのかっていうと結果データ欠損してました。
日毎にテーブルを作成してデータを保存する形式をとっていましたが、タイムゾーンがかみ合っておらず、1日約9時間ほどデータが
保存されていませんでした。。
大分簡素ですが、構成は大体こんな感じ。
なにが問題となったか?
・サーバーのタイムゾーンはUTCで動作
・PHPのタイムゾーンはAsia/Tokyoで動作
・BigqueryのタイムゾーンはUTCで動作
じゃあこれにより何が問題か。
PHPは日ごとにログファイルを作成する仕様となっていたので、毎日JSTの0時にログファイルが更新されている。
Fluentdのタイムゾーンはサーバーのタイムゾーンに依存するので、送信するデータはUTCで送信しようとする。
そのためBigqueryに登録しようとした、日付のテーブルと実際に送信したデータの日付が異なるため正常にデータが登録されていなかった。
問題解決としてなにをしたか。
・サーバーのタイムゾーンをUTCからAsia/Tokyoに変更
→これにより、FluentdのタイムゾーンもAsia/Tokyoとなる。
・Bigqueryのtimestamp型はUTCのみしか対応していないのでデータ型をstringに変更。
とりあえずこれで様子見中。
2 comments to this article
Lefty
on 2016年11月16日 at 9:34 PM -
Your thninikg matches mine – great minds think alike!