2017-07-24 55 views
0

鉴于BigQuery中存在分区表,是否有可能使其不被分区?是否有可能在BigQuery中使分区表非分区?

+0

重要的是 - 您可以使用投票下面的投票答案左侧的勾号来标记接受的答案。看到http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235为什么它很重要!对答案投票也很重要。表决有用的答案。 ...当某人回答你的问题时,你可以检查该怎么做 - http://stackoverflow.com/help/someone-answers。遵循这些简单的规则,您可以提高自己的声誉得分,同时让我们有动力回答您的问题:o)请考虑! –

回答

2

AFAIK没有任何功能来分区分区表。但是,没有什么能阻止你做select * from partitioned_table并将结果写入新的(非分区表)。使用这种方法,你当然会受到成本的打击。

另一种方法是将您的表格导出到GCS,然后将导出的文件重新加载回去。加载并不花费任何东西,所以您只需支付文件的短暂时间存储在GCS中。

+0

良好的反馈意见,谢谢。 – corgrath

+0

@GrahamPolley - 你有机会检查我的答案吗?你怎么看?我测试过 - 它对我很有用 –

+0

@MikhailBerlyant - 是的,非常聪明的做法。 Upvoted。 bq cli工具也适用于复制 - “bq cp -a ....'。虽然,我用(3TB)测试的表格花了1个小时复制! –

1

是否有可能使分区表在BigQuery中不分区?

这是可能的!快速和免费($ 0.00)

步骤1 - xxx.yyy.your_new_NON_PARTITIONED_table

- 具有完全相同的架构作为源表,并没有行

#standardSQL 
SELECT * 
FROM `xxx.yyy.your_partitioned_table` 
WHERE FALSE 

上方运行与目的地创建新的非分区表

步骤2 - 以WRITE_APPEND作为写入调用复制作业

您的副本配置如下所示

{ 
    "configuration": { 
     "copy": { 
      "sourceTable": { 
       "projectId": "xxx", 
       "datasetId": "yyy", 
       "tableId": "your_partitioned_table" 
      }, 
      "destinationTable": { 
       "projectId": "xxx", 
       "datasetId": "yyy", 
       "tableId": "your_new_NON_PARTITIONED_table" 
      }, 
      "createDisposition": "CREATE_IF_NEEDED", 
      "writeDisposition": "WRITE_APPEND" 
     } 
    } 
} 

任务完成!
注意:这两个步骤都是免费的!

相关问题