2017-02-02 10 views
0

Die neueste Version von Tableau verwendet standardmäßig SQL, wenn eine Verbindung zu BigQuery von Google hergestellt wird.Ungerade Fehler beim Umwandeln in den Zeitstempel in Standard-SQL/Tableau

Ich habe vor kurzem versucht, eine große Tabelle zu aktualisieren, aber festgestellt, dass beim Versuch, Datumsangaben zu analysieren, Fehler aufgetreten sind. Die Tabelle stammt aus einer CSV, die in BigQuery geladen wird, wo weitere Manipulationen stattfinden. Die Datetime-Spalte in der ursprünglichen CSV enthält Zeichenfolgen im ISO-Standardformat für Datumsangaben (im Grunde JJJJ-MM-TT hh: mm). Dies erspart später eine Menge lästiger Manipulation.

Aber beim Versuch, die Datetime Strings in Tableau in Daten oder Datumsangaben zu konvertieren, habe ich eine Reihe von Fehlern. Bei der Untersuchung schien sie von BigQuery und sah wie folgt zu kommen:

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

Ich dachte zuerst, könnte dies ein Tableau Problem sein, so dass ich ein Stück des ursprünglichen CSV in Tableau geladen direkt dort, wo die Umwandlung der Zeichenfolge eines Daten funktionierten perfekt.

Ich versuchte dann einfachere Versionen der Konvertierung (zu einem Jahr statt einer vollen Datetime) und sie immer noch fehlgeschlagen. Die generierte SQL für die einfachste Umwandlung sieht wie folgt aus:

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

Der ungültige Zeitstempel in der Fehlermeldung wie eine absolut gültige Zeitstempel immer zu mir aussieht. Und weitere Analyse schlägt vor, dass es nicht für alle die Zeilen in der Quellentabelle passiert, nur gelegentliche.

Dieser Fehler trat in älteren Versionen von Tableau/BigQuery nicht auf, wenn Legacy-SQL der Standard für Tableau war. Also nehme ich an, dass es eine Konsequenz von Standard-SQL ist.

Gibt es also ein intermittierendes Problem beim Gießen von Zeitstempeln in BigQuery? Oder ist dies ein Tableau-Problem, das dazu führt, dass SQL falsch formatiert ist? Und was kann ich dagegen tun?

+0

Ich bin sicher, wenn Sie diese Informationen Unterstützung Tableau gesendet, würden sie sich darum bemühen, die Arbeit an Festsetzung es –

Antwort

1

Der Sekunden-Teil in der canonical timestamp representation erforderlich, wenn die Stunden und Minuten ebenfalls vorhanden sind. Versuchen Sie stattdessen mit PARSE_TIMESTAMP und sehen, ob es funktioniert:

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

ich nicht die SQL steuern kann: das ist erzeugt von Tableau. Und ich habe den gleichen Fehler gesehen, auch wenn Sekunden vorhanden sind. Ich werde direkt in BigQuery experimentieren, um weitere Details zu erhalten und Berichte an die Tableau-Unterstützung zu senden. –

Verwandte Themen