0

这是我尝试过的

#standardSQL
 CREATE TABLE dataSet.myTableName (userName string, DateCreated DATE, email string)
 PARTITION BY DateCreated
 OPTIONS(
   description="a table partitioned by DateCreated"
 )

但在这种情况下,DateCreated 字段是 Date 类型,我想将其设为 TIMESTAMP 格式,我该怎么做?因为我的数据采用这种格式 "DateCreated":"1519302159.042" 而不是 DATE 类型

4

2 回答 2

2

您将无法将该表单的数据直接加载到 BigQuery 表中。不过,您有几个选择:

  • 使用临时表。
    1. 创建一个单独的表,其中DateCreated列的类型为FLOAT64
    2. 将数据从 CSV、JSON 或任何格式的数据加载到此临时表中。
    3. 运行一条INSERT语句以插入到分区表中dataSet.myTableName。您可以DateCreated使用转换DATE(TIMESTAMP_MILLIS(CAST(DateCreated * 1000 AS INT64))) AS DateCreated;这将获取FLOAT64列并将其转换为DATE. 如果需要,您可以将时区传递给DATE函数。默认值为 UTC。
  • 在加载数据之前,使用 BigQuery 之外的工具处理数据。

我的个人意见:我会使用 BigQuery 来满足您的所有处理需求,因为您可以只运行查询。

于 2018-03-02T16:48:03.473 回答
0

你可以尝试这样的事情:

CREATE TABLE
  blockchains.timestamp_based_partitioned_transactions ( 
    status STRING NOT NULL,
    transactionHash STRING NOT NULL,
    blockNumber INT64 NOT NULL,
    sender STRING NOT NULL,
    receiver STRING NOT NULL,
    timestamp TIMESTAMP NOT NULL
    )
PARTITION BY
   DATE(timestamp)
于 2019-05-01T11:28:45.067 回答