【问题标题】:BigQuery JOINs between tables in different projects不同项目中表之间的 BigQuery JOIN
【发布时间】:2015-08-29 13:16:51
【问题描述】:

我在两个不同的项目中有数据集。

我想将第一个项目的数据集中的一个表连接到第二个项目的数据集中的表。

你能提供这样一个查询的例子吗?

【问题讨论】:

    标签: sql database join google-bigquery


    【解决方案1】:

    是的,你当然可以。您需要使用项目名称限定表名,即 projectname:dataset.table 这是我将我的一个表与 publicdata 项目中的表结合起来的示例:

    select sum(a.is_male)
    from
    (select is_male, year from [publicdata:samples.natality]) a
    inner join
    (select year from [moshap.my_years]) b
    on a.year = b.year
    

    更新:上面的语法适用于 Legacy SQL,使用 Standard SQL 它变成 projectname.dataset.table,即

    select sum(a.is_male)
    from
    (select is_male, year from publicdata.samples.natality) a
    inner join
    (select year from moshap.my_years) b
    on a.year = b.year
    

    【讨论】:

    • 这是标准还是旧版?
    • 标准 SQL 的更新答案
    • 在跨项目查询的情况下,插槽分配和成本归属如何工作?这将在源(发起)项目或已引用的目标项目上收费吗?在这种情况下,插槽的可用性会成为问题吗?
    • 槽位和成本与查询的计费项目相关联,可能与数据所在的项目相同或不同。您可以使用 - - project_id 命令行选项在 bq cli 中显式指定计费项目
    • 我们可以在大项目中使用 SQL 连接吗?这是获取数据的标准方法吗?假设我们在表中有超过 200 万条记录数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2021-08-15
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多