2

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

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

请帮忙 !!谢谢 !!!

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

4

2 回答 2

1

检查Cloud Dataprep 支持的数据类型“时间戳”数据类型不被支持。

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

这是一个虚拟示例:

  1. 从 BigQuery 导入具有架构的表的数据集。

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

于 2018-07-04T11:11:06.893 回答
0

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

  1. 创建 BQ 表 ( oldTable),其值为日期时间格式(event_time例如命名)
  2. newTable通过选择所有数据创建表 ( ),并转换event_time为时间戳:
CREATE TABLE
  newTable AS (
  SELECT
    col1,
    col2,
    ...,
    timestamp(event_time) as event_time,
    ...,
    colN
  FROM
    oldTable
  );
于 2020-02-10T11:59:17.140 回答