Power BIのストリーミングデータセットの日時型についてのあれこれ
はじめに
GravioでセンサーデータをPower BIで可視化しようとしていまいち思ったように出なかったのでちょっと調べてみたので書いておく。
かなり雑に調べたので間違ってたら教えて下さい。
前提
調査結果
色々調査した結果、下記のような仕様になってるようだ。
- 内部ではUTCで扱っている
- APIで渡した値にタイムゾーン情報がついていた場合はちゃんと計算してUTCとして格納される
- タイムゾーン指定子は
Z
(UTC)、もしくは±hhmm
±hh:mm
±hh
など。基本的にはISO8601に沿っていれば良い -
JST
などの略称はエラーになる - タイムゾーンを指定しないときはUTCとして扱われる
- レポートやグラフの表示はUTC表示以外に変更できない → これを変えたくて色々調べたが。。もしやり方を知ってる人がいたら教えてほしいです。。
結論
とにかくUTCで扱われる。ただ、タイムゾーンを指定しなければなんとなくローカルタイムで扱ったようには見えるので、あまり深く考えずタイムゾーンを指定しないのが吉。。。。
試したパターン
UTC 2020/6/19 03:00:00 で格納される
JSTを ±hh[[:]mm] 形式で指定
"timestamp" :"2020-06-19T12:00:00+09:00"
"timestamp" :"2020-06-19T12:00:00+0900"
"timestamp" :"2020-06-19T12:00:00+09"
UTC 2020/6/19 12:00:00 で格納される
UTCを明示的に指定
"timestamp" :"2020-06-19T12:00:00Z"
"timestamp" :"2020-06-19T12:00:00+0000"
タイムゾーン指定なし
"timestamp" :"2020-06-19T12:00:00"
エラーになる
日本標準時を略語で指定
"timestamp" :"2020-06-19T12:00:00 JST"
Gravioの場合
SendHttpRequestを使う場合
- Bodyを
"[{\"data\": 10, \"timestamp\":\"" + av.Timestamp + "\"}]"
とするとUTC時刻がタイムゾーン指定なしで送られるのでUTC時刻で格納される
- Bodyを
"[{\"data\": 10, \"timestamp\":\"" + ToLocalTime(av.Timestamp) + "\"}]"
とするとローカルタイムがタイムゾーン指定なしで送られるのでローカルタイムで格納される!
SendRecordを使う場合
- av.Timestampをそのまま渡すとUTC時刻がUTC指定(Z)されて送られるのでUTC時刻で格納される
- ToLocalTime(av.Timestamp)を渡してもローカルタイムがタイムゾーン指定(+09:00)されて送られるのでUTC時刻で格納される
- ステップ出力の変数をDateTime型ではなくString型にするとタイムゾーン指定が外れ、ローカルタイム時刻で格納される!
"timestamp" :"2020-06-19T12:00:00+09:00"
"timestamp" :"2020-06-19T12:00:00+0900"
"timestamp" :"2020-06-19T12:00:00+09"
"timestamp" :"2020-06-19T12:00:00Z"
"timestamp" :"2020-06-19T12:00:00+0000"
"timestamp" :"2020-06-19T12:00:00"
"timestamp" :"2020-06-19T12:00:00 JST"
SendHttpRequestを使う場合
- Bodyを
"[{\"data\": 10, \"timestamp\":\"" + av.Timestamp + "\"}]"
とするとUTC時刻がタイムゾーン指定なしで送られるのでUTC時刻で格納される - Bodyを
"[{\"data\": 10, \"timestamp\":\"" + ToLocalTime(av.Timestamp) + "\"}]"
とするとローカルタイムがタイムゾーン指定なしで送られるのでローカルタイムで格納される!
SendRecordを使う場合
- av.Timestampをそのまま渡すとUTC時刻がUTC指定(Z)されて送られるのでUTC時刻で格納される
- ToLocalTime(av.Timestamp)を渡してもローカルタイムがタイムゾーン指定(+09:00)されて送られるのでUTC時刻で格納される
- ステップ出力の変数をDateTime型ではなくString型にするとタイムゾーン指定が外れ、ローカルタイム時刻で格納される!
ただし・・・
ローカルタイム時刻が格納されるが、UTC表現でのローカルタイム時刻なので、実際の時刻はローカル時刻ではないので注意 (ややこしい・・・)
(追記 2020/8/11)
当たり前ですが忘れてました。日本時間の場合、UTC時間で無理やり9時間足すことになるので、相対日付のフィルターを使って最近N日とかやっててもリアルタイムでデータが表示されません。未来の日付なので。。。
Author And Source
この問題について(Power BIのストリーミングデータセットの日時型についてのあれこれ), 我々は、より多くの情報をここで見つけました https://qiita.com/zrock/items/d95504d4198eec804fdc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .