在 bigquery 中创建分区 table 时如何设置时间戳
How to set to timestamp when creating a partitioned table in bigquery
这是我试过的
#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 类型
您将无法将该表单的数据直接加载到 BigQuery table。不过,您有几个选择:
- 使用分期table。
- 创建一个单独的 table,其中
DateCreated
列的类型为 FLOAT64
。
- 将您的数据从 CSV、JSON 或任何格式的 table 加载到此暂存区。
- 运行
INSERT
语句插入分区 table dataSet.myTableName
。您可以使用 DATE(TIMESTAMP_MILLIS(CAST(DateCreated * 1000 AS INT64))) AS DateCreated
转换 DateCreated
;这需要 FLOAT64
列并将其转换为 DATE
。如果需要,您可以将时区传递给 DATE
函数。默认为 UTC。
- 在加载数据之前使用 BigQuery 之外的工具来处理数据。
- Cloud Dataprep是为了处理数据而设计的。
- Cloud Dataflow 允许您 运行 自定义代码来处理数据并根据需要缩放。
我个人的意见:我会使用 BigQuery 来满足您的所有处理需求,因为您只能 运行 查询。
您可以尝试这样的操作:
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)
这是我试过的
#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 类型
您将无法将该表单的数据直接加载到 BigQuery table。不过,您有几个选择:
- 使用分期table。
- 创建一个单独的 table,其中
DateCreated
列的类型为FLOAT64
。 - 将您的数据从 CSV、JSON 或任何格式的 table 加载到此暂存区。
- 运行
INSERT
语句插入分区 tabledataSet.myTableName
。您可以使用DATE(TIMESTAMP_MILLIS(CAST(DateCreated * 1000 AS INT64))) AS DateCreated
转换DateCreated
;这需要FLOAT64
列并将其转换为DATE
。如果需要,您可以将时区传递给DATE
函数。默认为 UTC。
- 创建一个单独的 table,其中
- 在加载数据之前使用 BigQuery 之外的工具来处理数据。
- Cloud Dataprep是为了处理数据而设计的。
- Cloud Dataflow 允许您 运行 自定义代码来处理数据并根据需要缩放。
我个人的意见:我会使用 BigQuery 来满足您的所有处理需求,因为您只能 运行 查询。
您可以尝试这样的操作:
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)