Dataprep:创建要转换为Big Query时间戳类型的列

时间:2018-07-01 00:41:35

标签: google-cloud-platform google-cloud-dataprep

我一直在疯狂地尝试从现有的Datetime列类型创建一个列,该类型将“发布”到Big Query的“ timestamp”列。我尝试了Dataprep的函数“ unixtime”和“ unixtimeformat”函数的所有排列都无济于事:我总是让Dataprep发布为“字符串”或“日期时间”列类型。

更新:我的工作流程如下:GCS .csv文件==> Dataprep ==> BQ。

请帮助! 谢谢!!!

解决方案:Trifacta的员工(即Cloud Dataprep)提供了解决方案。创建一个带有“ Timestamp”类型的列(假设名为“ dt”)的BQ表,并使用Dataprep的“ Append”发布功能以及一个源列类型“ Datetime”(同名“ dt”)。

2 个答案:

答案 0 :(得分:1)

检查Cloud Dataprep Supported Data Types,不支持“时间戳”数据类型。

但是,如果Dataprep中的列属于Datetime(时间戳)类型,那么当您写入BigQuery时,它将保留Timestamp类型(请参见BigQuery Data Type Conversions

这是一个虚拟的示例:

  1. 从BigQuery导入具有模式的表的数据集。

enter image description here

  1. 添加配方并运行作业:

enter image description here

  1. 将结果导出到GCS并将其加载回BigQuery。
    • “ dataformatt_timestamp_col”为STRING类型,但
    • “ datetime_col”可以“发布”到Big Query TIMESTAMP列。

enter image description here

答案 1 :(得分:0)

不是理想的解决方案,但对我的情况有所帮助:

  1. 使用日期时间格式(例如,名为oldTable)创建BQ表(event_time
  2. 通过选择所有数据来创建表(newTable),并将event_time转换为时间戳:
CREATE TABLE
  newTable AS (
  SELECT
    col1,
    col2,
    ...,
    timestamp(event_time) as event_time,
    ...,
    colN
  FROM
    oldTable
  );