是否有任何关于如何处理仅限APPEND数据库(如BigQuery)的文档,用于实时分析(例如每天更新的1亿到10亿移动用户配置文件),并将停机时间减少到几秒钟。
(1)有关如何实现增量更新的帖子http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/,我想知道BigQuery中是否存在类似的解决方案。
如果我需要附加版本列(例如版本1,2,3)等,是否有快速计算版本的方法?
(2)如何将停机时间减少到几秒钟 我喜欢Eliminating duplicate records in a BigQuery Table中提到的解决方案,我认为它部分地解决了我的挑战。
如果mydataset.mytable有1亿到10亿的独特例如移动用户记录,停机时间不到几秒钟是不能容忍的,反正有没有消除停机时间?例如虚拟视图?在" bq查询期间--replace"和" bq查询cp",可以访问表mydataset.mytable,或者在替换和查询完成之前锁定表。谢谢。
bq query --allow_large_results --replace --destination_table=mydataset.mytable \
'SELECT * FROM mydataset.mytable
WHERE key NOT IN (SELECT key FROM mydataset.update)'
bq cp --append_table mydataset.update mydataset.mytable
答案 0 :(得分:1)
你问题的第一部分实际上是这样的:
Is there any other approach for updating a row in Big Query apart from overwriting the table?
这是新的"最佳实践"我们建议删除重复项(与上面链接的重复项相对),并且很容易调整以允许更新(基于时间,而不是版本)。您可以根据适合您的标准调整分区表达式。
在回答第二个问题时,在" bq查询--replace"期间,表格不会被锁定。其他查询在" replace"完成之前开始。查询将在表启动时处理表的快照。查询在"替换"的完成时间之后开始。查询作业将看到新数据。