Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 如何将扳手时间戳转换为BigQuery时间戳?_Google Bigquery_Google Cloud Spanner - Fatal编程技术网

Google bigquery 如何将扳手时间戳转换为BigQuery时间戳?

Google bigquery 如何将扳手时间戳转换为BigQuery时间戳?,google-bigquery,google-cloud-spanner,Google Bigquery,Google Cloud Spanner,我正在尝试将一些表从扳手复制到BigQuery 我将扳手数据库转储到csv文件中,当我尝试将该csv上载到BigQuery时,它抛出了时间戳格式的错误 他们提到了BigQuery时间戳的限制 如何将扳手时间戳转换为BigQuery时间戳?有两种方法 将timestamp字段保留为Cloud扳手导出的字符串,并将其作为字符串加载到BigQuery中。它仍然应该是可排序的,并在谓词中使用 使用用户定义的函数,通过TextToBigQuery执行在BigQuery中本机加载时间戳所需的字符串转换 您还

我正在尝试将一些表从扳手复制到BigQuery

我将扳手数据库转储到csv文件中,当我尝试将该csv上载到BigQuery时,它抛出了时间戳格式的错误

他们提到了BigQuery时间戳的限制


如何将扳手时间戳转换为BigQuery时间戳?

有两种方法

  • 将timestamp字段保留为Cloud扳手导出的字符串,并将其作为字符串加载到BigQuery中。它仍然应该是可排序的,并在谓词中使用
  • 使用用户定义的函数,通过TextToBigQuery执行在BigQuery中本机加载时间戳所需的字符串转换

  • 您还可以编写一个脚本,将时间戳转换为BigQuery格式。

    除了@Biswa nag编写的内容之外-

    我们将扳手表导出到avro文件,然后导入到BigQuery。 不幸的是,时间戳在BigQuery中变成了字符串

    我们的临时查询解决方案是使用用户定义的函数转换查询中的时间戳(找到正确的格式需要一些时间…)

    例如:

    CREATE TEMP FUNCTION ConvertTimestamp(dt STRING) AS (PARSE_DATETIME("%Y-%m-%dT%H:%M:%E*SZ", dt));
    select count(*) from `[db].Games` where ConvertTimestamp(StartTime) >= DateTime(2019,8,1,0,0,0)
    

    我像这样把时间戳转换成了纪元时间

    从MyTable中选择myTime,格式化时间戳(“%s”,myTime,“美国/洛杉矶”)
    

    它成功了。

    当您从CloudSpaner源代码移植数据时,可能需要格式化时间戳。或者,您可以选择按原样进行,并在上载期间将时间戳字段保留为字符串字段,并在查询时在BigQuery中对其进行解析。