是否可以在表之间创建关系?

Posted

技术标签:

【中文标题】是否可以在表之间创建关系?【英文标题】:Is it possible to create relationships between tables? 【发布时间】:2018-01-15 17:12:53 【问题描述】:

Bigquery 看起来很棒,我有一个数据库类型 ETL,我的方案在实体之间有多个关系,我想知道是否有办法在它们之间建立关系,或者是否可以在数据集?

请原谅我的英语,这不是我的语言,我不太懂。

【问题讨论】:

【参考方案1】:

您无法在 BigQuery 中明确创建关系。 Big Query 的理念是对数据进行非规范化以在查询时获得更好的性能。当他们需要关系时,BigQuery 使用重复字段 (https://cloud.google.com/bigquery/docs/legacy-nested-repeated)

但如果性能无关紧要并且您希望建立关系,则可以在查询数据时对数据进行规范化并在某些字段上手动进行 JOIN(或嵌套 SELECT)。

https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax

【讨论】:

我刚刚读到这样的东西,我很抱歉问了另一个问题,但是bigquery中没有类似于NoSql的结构,或者实际上,bigquerye是一个NoSql数据库? BigQuery 是一种 SQL(支持 SQL 语法),尽管在设计架构并将数据加载到 BigQuery 以对其进行非规范化(以获得更好的性能)时经常鼓励它(取决于用例),这是它的特征之一NoSQL 数据库。因此,本质上,BigQuery 是 SQL,但您也可以使用一些 NoSQL 实践。 > 来自quora.com/Is-BigQuery-a-SQL-or-NoSQL的回答

以上是关于是否可以在表之间创建关系?的主要内容,如果未能解决你的问题,请参考以下文章

两个表之间的许多关系 - 代码优先

SQL 在表的两个副本之间留下了带有 WHERE 子句依赖关系的自连接

微擎框架中 uidaciduniacid 之间的关系

Oracle DB表与视图的关系(物化视图)

如何创建查找表并定义关系

是否可以在核心数据模型中自动创建反向关系?