コネクターから取り込んだデータのデータ型について

ユーザー02499
編集済: 5月 2023 仲間に相談

データベース系のコネクターよりSQLを発行して取得したデータの型についてなのですが

元が文字列型(STRING)の項目がどうやら数値型に置き換わってしまっているようです。

例)"000123" → 123

おそらく取り込んだデータの型は見ず、入ってきたデータのみを基準に

全て整数のデータは数値型へと変換してしまっているのではないかと思うのですが

id等のデータが変換されてしまって、本来のidとは別物になってしまいます。

 

他にもTIMESTAMP型(yyyy-MM-dd HH:mm:ss UTC)の項目も

UNIXタイムになってしまっているのか数値に置き換わってしまいます。

例)2018-04-04 16:45:04 → 1,522,621,800

 

DATETIME型(yyyy-MM-ddTHH:mm:ss)のものはd-M-yy H:m:s 午前/午後のような型になってはいますが、

時間が+9時間加算されてしまいます(+9時間と言えばUTCとJSTの時差?)。

例)2018-04-03T12:07:16 → 4/3/2018 9:07:16 午後

 

以上のような勝手に値が置き換わってしまう現象が発生します。

元の値から置き換わるのを防ぐ、またはDatasetのデータ型を指定する方法はないのでしょうか。

 

ベストアンサー

  • yakepon
    yakepon Member
    回答済み✓

    元のデータ型でアップロードするには、ワークベンチ経由で上げるしかないです。(ワークベンチだと型を固定化できます。)また、+9時間されるのは、インスタンスのタイムゾーンがJSTになっていることが理由だと思います。これは、DOMOがUTCをベースに作られているので、勝手に+9時間します。インスタンスのタイムゾーンをUTCに変更すると、勝手に+9時間されることはないですが、UTCに変えることの弊害も若干あります。

答え

  • yakepon
    yakepon Member
    回答済み✓

    元のデータ型でアップロードするには、ワークベンチ経由で上げるしかないです。(ワークベンチだと型を固定化できます。)また、+9時間されるのは、インスタンスのタイムゾーンがJSTになっていることが理由だと思います。これは、DOMOがUTCをベースに作られているので、勝手に+9時間します。インスタンスのタイムゾーンをUTCに変更すると、勝手に+9時間されることはないですが、UTCに変えることの弊害も若干あります。

  • 返信ありがとうございます。

     

    やはりWorkbenchからでないとデータ型の指定ができないのですね...

    今はクラウド上のビックデータよりコネクターを使用してデータを取ってきているので

    文字列が数値型に変換されてしまうことに関しては現状対応のしようがないということですね...

     

    日付に関してはこちらでも色々試してみた結果、

    yyyy-MM-dd HH:mm:ss [timezone] もしくは yyyy-MM-dd"T"HH:mm:ss [timezone]の形式の日付文字列はDomo側で日付と認識され、タイムゾーンがない・もしくはUTCの場合はそのままの値が、それ以外の場合はUTCの時刻に変換された値が入るようですね。(ただしカードではそのままのデータを使用するが、プレビューではインスタンスのタイムゾーン基準で表示される)

    そしてどこまでがDomo側で日付として認識されるかは不明ですが、yyyy-MM-dd HH:mm:ss.sssといったミリ秒やマイクロ秒まで含まれている、あるいはタイムゾーンが文字列での指定ではなく+09といった形式での指定だとタイムゾーンも付いた状態の値でデータが入りました。(おそらく文字列として認識された?)

     

    現状Timestamp型のデータがUNIXタイムで入ってしまうのは日付文字列変換でyyyy-MM-dd HH:mm:ss等の文字列に変換して入れてやるしか方法がなさそうですね...