bigquery 数据集设计,用于存储相同类型数据的多个表与单个表
bigquery dataset design, multiple vs single tables for storing the same type of data
我计划构建一个新的广告系统,我们正在考虑使用 google bigquery。
我快速描述一下我的数据流:
每个用户将能够创建多个 ADS。 (1 个用户,N 个广告)
我想存储广告印象,我想到了 2 个选项。
1- 为印象创建一个 table,例如 table 名称是:印象字段:(用户 ID、广告标识符、日期时间、元数据字段...)
在此选项中,我所有的印象都将存储在一个 table.
中
主要优点:大数据查询很容易。
主要缺点:table 会很大,并且有多个查询,我最终会付出太多代价(:
选项 2 是为每个广告创建 table
例如,广告 ID 1 将创建
Impression_1 带有字段(日期时间、元数据字段)
优点:查询更便宜,数据table更小
缺点:待办事项大数据查询有时不得不创建一个联合,事情会很复杂
我想知道你对此有何看法?
在 BigQuery 中很容易做到这一点,因为您每天可以创建 table,并且您可以只查询那些 table。
并且您有 Table wildcard functions,这是一种从特定的 table 集合中查询数据的经济高效的方法。当您使用 table 通配符函数时,BigQuery 只会访问与通配符匹配的 table 并向您收费。 Table 在查询的 FROM 子句中指定了通配符函数。
假设您有一些 table 像:
mydata.people20140325
mydata.people20140326
mydata.people20140327
您可以这样查询:
SELECT
name
FROM
(TABLE_DATE_RANGE(mydata.people,
TIMESTAMP('2014-03-25'),
TIMESTAMP('2014-03-27')))
WHERE
age >= 35
Table 装饰器支持相对和绝对 <time>
值。相对值用负数表示,绝对值用正数表示。
要在一小时前获取 table 的快照:
SELECT COUNT(*) FROM [data-sensing-lab:gartner.seattle@-3600000]
还有TABLE_QUERY,你可以用它来进行更复杂的查询。
我计划构建一个新的广告系统,我们正在考虑使用 google bigquery。
我快速描述一下我的数据流:
每个用户将能够创建多个 ADS。 (1 个用户,N 个广告) 我想存储广告印象,我想到了 2 个选项。
1- 为印象创建一个 table,例如 table 名称是:印象字段:(用户 ID、广告标识符、日期时间、元数据字段...) 在此选项中,我所有的印象都将存储在一个 table.
中主要优点:大数据查询很容易。 主要缺点:table 会很大,并且有多个查询,我最终会付出太多代价(:
选项 2 是为每个广告创建 table
例如,广告 ID 1 将创建 Impression_1 带有字段(日期时间、元数据字段)
优点:查询更便宜,数据table更小 缺点:待办事项大数据查询有时不得不创建一个联合,事情会很复杂
我想知道你对此有何看法?
在 BigQuery 中很容易做到这一点,因为您每天可以创建 table,并且您可以只查询那些 table。
并且您有 Table wildcard functions,这是一种从特定的 table 集合中查询数据的经济高效的方法。当您使用 table 通配符函数时,BigQuery 只会访问与通配符匹配的 table 并向您收费。 Table 在查询的 FROM 子句中指定了通配符函数。
假设您有一些 table 像:
mydata.people20140325
mydata.people20140326
mydata.people20140327
您可以这样查询:
SELECT
name
FROM
(TABLE_DATE_RANGE(mydata.people,
TIMESTAMP('2014-03-25'),
TIMESTAMP('2014-03-27')))
WHERE
age >= 35
Table 装饰器支持相对和绝对 <time>
值。相对值用负数表示,绝对值用正数表示。
要在一小时前获取 table 的快照:
SELECT COUNT(*) FROM [data-sensing-lab:gartner.seattle@-3600000]
还有TABLE_QUERY,你可以用它来进行更复杂的查询。