【发布时间】:2015-06-25 10:45:40
【问题描述】:
我在 Mysql 中有以下架构(针对这个问题进行了简化。实际上它包含的表比这里给出的要多)
用户:id, email, first_name, last_name, gender, birthday 和另外 30 个这样的列
帐户:id, user_id, total_visits, total_credits, total_redemptions, total_debits, points, initial_credit, initial_debit 和另外 20 个此类列
签入:id, user_id, location_id, approved, amount, number, checkin_date, status, qr_code, barcode, points_earned 和 30 多个此类列。
这里
- id - 主键。整数
- table_id - 外键。例如accounts中的user_id,table指向User表中用户的id col。
要导入这个, advice in the docs,是:
在 BigQuery 中,您通常希望对数据结构进行非规范化以实现超快速查询。虽然 BigQuery 可以在小型数据集上进行 JOIN,但它们的性能不如非规范化结构。使用嵌套/重复功能可以实现某种类型的规范化。
如果我理解这一点,那是否意味着:
- 只有表:具有 100+列的用户(所有这些表中的数据(帐户、签到等)
- 将有一个用户表和一个事件表。用户 datable 将具有与 mysql 中当前具有的完全相同的架构。 events 表将存储实际数据签到、帐户。
- 其他类型的架构?
此外,我们能否找到更多深入了解 Bigquery 的非规范化 mysql 表的资源?
【问题讨论】:
标签: mysql database-schema google-bigquery