在Google BigQuery中将两个表合并为一个表

时间:2017-06-06 18:28:47

标签: google-bigquery

在bigQuery中,我有两个表 - 一个有30K记录,另一个有20M记录。

我需要一种有效的方法来使用连接搜索它们,所以我想用这个SQL创建一个组合表:

SELECT 
s.site site,
s.rank rank,
s.visitors visitors,
s.store_id store_id,
s.currency currency,
p.title title,
p.product_type product_type,
p.handle handle,
p.price price,
p.created_at created_at,
p.image_url image_url,
p.description description
FROM eComData.stores s INNER JOIN eComData.products p ON s.store_id = p.store_id
WHERE
s.active = 1

但是,运行此bq命令:

bq query --destination_table=eComData.stores_n_products --allow_large_results "SELECT s.site site,s.rank rank,s.visitors visitors,s.store_id store_id,s.currency currency,p.title title,p.product_type product_type,p.handle handle,p.price price,p.created_at created_at,p.image_url image_url,p.description description FROM eComData.stores s INNER JOIN eComData.products p ON s.store_id = p.store_id WHERE s.active = 1"

永远消失 - 到目前为止5000秒插头。是否有一种有效的方法来创建组合表以便于搜索?

1 个答案:

答案 0 :(得分:0)

尝试以下

  
SELECT 
  s.site site,
  s.rank rank,
  s.visitors visitors,
  s.store_id store_id,
  s.currency currency,
  p.title title,
  p.product_type product_type,
  p.handle handle,
  p.price price,
  p.created_at created_at,
  p.image_url image_url,
  p.description description
FROM (
  SELECT   
    site,
    rank,
    visitors,
    store_id,
    currency
  FROM eComData.stores
  WHERE active = 1
) s 
INNER JOIN eComData.products p 
ON s.store_id = p.store_id