Fluend+Bigqueryで失敗したメモ

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

コメントを残す