bigquery数据集设计,多个与单个表,用于存储相同类型的数据

时间:2015-03-01 09:35:34

标签: google-bigquery

我计划建立一个新的广告系统,我们正在考虑使用google bigquery。

生病很快描述我的数据流:

每个用户都可以创建多个ADS。 (1位用户,N个广告) 我想存储ADS印象,我想到了2个选项。

1-为展示创建一个表格,例如表格名称为:展示次数字段:(用户ID,adsid,日期时间,元数据字段...)   在我的所有展示的这个选项中,将存储在一个表格中。

主要优点:很容易能够进行大数据查询。 主要缺点:表会休,并且有多个查询,生病最终付出太多(:

选项2是为每个广告创建表格

例如,广告ID 1将创建 带有字段的Impression_1(日期时间,元数据字段)

专业:查询更便宜,数据表更小 缺点:todo big dataquery有时候不得不创建一个联合而且事情会很复杂

我想知道你对此有何看法?

1 个答案:

答案 0 :(得分:2)

在BigQuery中,这样做很容易,因为您可以每天创建表格,并且您可以只查询这些表格。

你有Table wildcard functions,这是一种从一组特定表中查询数据的经济有效的方法。当您使用表通配符函数时,BigQuery仅访问并向您收取与通配符匹配的表的费用。表通配符函数在查询的FROM子句中指定。

假设你有一些表:

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 Decorators

表装饰器支持相对和绝对<time>值。相对值用负数表示,绝对值用正数表示。

要在一小时前获取该表的快照:

SELECT COUNT(*) FROM [data-sensing-lab:gartner.seattle@-3600000]

还有TABLE_QUERY,您可以将其用于更复杂的查询。