2017-02-02 4 views
0

Tableauの最新バージョンは、GoogleのBigQueryに接続するときに標準SQLを使用し始めました。標準SQL/Tableauのタイムスタンプにキャストする際に奇妙なエラーが発生する

最近大きなテーブルを更新しようとしましたが、datetimesを解析しようとするとエラーが発生しているようです。表は、BigQueryにロードされたCSVとして生成され、そこでさらに操作が行われます。元のCSVのdatetime列には、ISO標準日付時刻形式(基本的にyyyy-mm-dd hh:mm)の文字列が含まれています。これは後で多くの厄介な操作を節約します。

しかし、Tableauのdatetime文字列を日付または日付時刻に変換しようとすると、エラーが発生します。調査彼らはBigQueryのから来るように見えたし、このように見えた:

Error: Invalid timestamp: '2015-06-28 02:01' 

私は私が直接どこに文字列の変換タブローの中に、元のCSVのチャンクをロードして、これはタブロー問題になる可能性があります最初に思いましたデータは完全にうまくいった。

それから、変換の単純なバージョン(完全な日時ではなく1年)を試みましたが、それでも失敗しました。最も単純な変換のために生成されたSQLは、次のようになります

SELECT 
    EXTRACT(YEAR 
    FROM 
    CAST(`Arrival_Date` AS TIMESTAMP)) AS `yr_Arrival_Date_ok` 
FROM 
    `some_dataset`.`some_table` `some_table` 
GROUP BY 
    1 

エラーメッセージに無効なタイムスタンプは、常に完全に有効なタイムスタンプのように私には見えます。さらに詳しい分析では、すべてのソーステーブル内の行は発生しないことがわかります。

このエラーは、以前のバージョンのTableau/BigQueryでは、従来のSQLがTableauのデフォルトでは表示されませんでした。だから私はそれが標準のSQLの結果だと推測しています。

BigQueryのタイムスタンプへのキャストに断続的な問題がありますか?または、これはSQLのフォーマットが正しくないTableauの問題ですか?そして私はそれについて何ができますか?

+0

私はあなたがサポートをタブローするために、この情報を送信した場合、彼らは私がSQLを制御することはできません –

答えて

1

時間と分も存在する場合は、canonical timestamp representationの秒の部分が必要です。 PARSE_TIMESTAMPとの代わりにこれを試してみて、それが動作するかどうかを確認:

SELECT 
    EXTRACT(YEAR 
    FROM 
     PARSE_TIMESTAMP('%F %R', `Arrival_Date`)) AS `yr_Arrival_Date_ok` 
FROM 
    `some_dataset`.`some_table`.`some_table` 
GROUP BY 
    1 
+0

それを修正に取り組むことに熱心になると確信している:それは、生成されていますTableauによって。秒があるときでも私は同じエラーを見てきました。私はBigQueryで直接詳細に実験し、Tableauのサポートに報告します。 –

関連する問題