MicroStrategy ONE

使用 Google BigQuery 中的连接功能合并表中的数据

您可以通过创建两表的联接来合并两个表内的数据。

一个表格包含 City(城市)和 Revenue(收益)列。第二个表格包含 City(城市)和 Profit(利润)列。通过在 City(城市)列之间创建联接将两个表格中的数据关联。

要合并三个以上表中的数据,请在其中两个表间创建联接,然后再在这两个表的其中一个与第三个表间创建联接,以此类推,直至完成所有表的联接。

您所写入的 JOIN 子句的语法取决于您所联接的表的大小。创建联接前应先了解表中包含的压缩数据是否大于 8MB,哪个是通过默认的 JOIN 子句联接的表的 Google BigQuery 最大值。查找表通常不会包含 8MB 以上的压缩数据。事实表更有可能包含超过 8 MB 的压缩日期。

创建用于合并两表数据的联接

  1. 您可创建联接,在为导入数据构建查询时将数据组合到“从表导入”对话框上的两个表中。
  2. 如果其中一个表包含的压缩数据大于 8MB 而其余表均未超过 8MB,将列名称从较大的表格拖动至较小表格中的相应列名称。由此可创建内部联接。会在查询生成器窗格从第一列到第二列的方向显示一条表示联接的线条。转到步骤 6。
  3. 如果两个表都包含超过 8 MB 的压缩数据或两个表都包含少于 8 MB 的压缩数据,则将一个表中的列名拖到另一个表的列上。由此可创建内部联接。会在查询生成器窗格从第一列到第二列的方向显示一条表示联接的线条。如果您连接的表包含超过 8 MB 的压缩数据,请转到步骤 8。否则,转至步骤 6。
  4. 如果您不了解您所联接的表的大小,从其中一个表拖动列名称到第二个表的相应列的名称上。
  5. 单击执行 SQL 来测试联接是否有效。

    如果“示例预览”窗格中显示了您数据的预览,则表示联接有效且创建成功。您已联接的第二个表包含的压缩数据小于 8MB。转到步骤 6。

    如果出现错误,指出 JOIN 运算符的右侧表很小,那么您连接的第二个表太大而无法创建连接。单击联接并选择删除。通过从第二表格将列名称拖动到第一表格中相应的列名称来新建联接。单击执行 SQL

    如果“示例预览”窗格中显示了您数据的预览,则表示联接创建成功。转到步骤 6。

    如果错误消息再次出现,则表示两个表包含的压缩数据均超出了 8MB。转到步骤 8 来编辑用于导入数据的 SQL 查询。

  6. 一旦您创建了联接,就可更改其类型或删除它。单击表示联接的线。

    Google BigQuery 不支持其他联接类型,例如完全外部联接或右外部联接。此外,Google BigQuery 使用默认的等号(=)运算符来对比列并且不支持其他运算符。

  7. 要只包含两个表中已联接列符合联接条件的记录,选择内部联接

  8. 要包含第一个表中列内的所有记录以及第二个表中列内符合联接条件的记录,选择左外部联接(默认设置)。
  9. 选择删除来删除联接。
  10. 您正在为包含超过 8 MB 压缩数据的表创建连接。因此,您将需要修改查询。在如此操作之前,添加任何您要导入的额外的列。根据要导出的列创建任何筛选器、聚合或表达式。
  11. 单击编辑 SQL。用于导入您的数据的 SQL 出现在查询生成器窗格中。

  12. 这句话说完后, JOIN, 类型 EACH

  13. 继续导入您的数据或自定义您的查询

相关主题

通过构建 SQL 查询从数据库、Hadoop 或 Google BigQuery 导入数据

通过选择表从数据库、Hadoop 或 Google Big Query 导入数据

从数据库、Hadoop 或 Google BigQuery 导入数据时自定义查询