多个 Big Query 表或类似数据的单数表

Posted

技术标签:

【中文标题】多个 Big Query 表或类似数据的单数表【英文标题】:Multiple Big Query tables or singular for similar data 【发布时间】:2017-05-24 10:09:00 【问题描述】:

我正在考虑将我的分析系统迁移到 BigQuery,我想知道是否有人可以给我一些关于构建数据的最佳方式的建议。

我正在记录网站上发生的分析事件。每个分析事件类型都必须存储在单独的表中,因为它们没有相似的字段。

我将使用分区按天分开,并在每天午夜运行查询当天的数据以生成总计数,然后可以将其存储在其他地方以便更快地查询分析平台。

我为每个公司创建一个数据集,命名为 company_123、company_124 等。

然后在每个数据集中是公司管理的所有网站的分析,表名如 user_click_event_website_id、user_page_load_website_id 等。

我需要能够同时查询“网站 X 上的所有用户点击”和“所有用户在其所有网站上的点击”。

我的问题是,按 website_id 拆分我的表并运行会更好(成本和查询时间)

select * from user_click_*select * from user_click_website_x

或将它们全部放在一个带有 website_id 列的表中并运行

select * from user_click where website_id = 'website_x'select * from user_click

谢谢

【问题讨论】:

【参考方案1】:

在不了解您的场景和数据的详细信息的情况下,很难说哪一个总是更好。作为一个起点,除非您发现重大问题,否则我觉得一张带有 website_id 列的表似乎值得一试。

【讨论】:

以上是关于多个 Big Query 表或类似数据的单数表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Big Query 的标准 SQL 中使用通配符为特定分区查询多个表

sqlserver数据将多个表或视图的数据合并到一个表或视图里的sql语句

数据库设计 - 多个查找/枚举表或一个大表?

Big Query (SQL) 将多列转换为行/数组

如何在 Google Big Query 中的多个列上执行模式功能

hbase,相同结构的多个表或包含大量数据的单个表的性能更有效?