BigQuery GSheet 上传

Posted

技术标签:

【中文标题】BigQuery GSheet 上传【英文标题】:BigQuery GSheet Upload 【发布时间】:2018-05-07 12:38:15 【问题描述】:

将 GSheet 连接到 BigQuery 很简单,而且是一个非常酷的功能,但速度很慢。似乎通过 ETL 过程等存储的数据确实存储在 BigQuery 中,而 G-Sheets 只是“连接”的。是否有某种方法可以更有效地存储数据,或者其他人是否有同样的经历并知道解决方法?

【问题讨论】:

【参考方案1】:

Google 表格的问题不仅在于速度慢,而且还在于编辑过程中可能存在人工干预。所以有人来编辑(通过删除列:)) - 你所有的查询都将停止工作。 我们实施的想法:

    在电子表格上创建联合表 T1 定期将数据从 T1 转储(取决于新鲜度的需要)到真正的 bigquery 表 T2,并覆盖所有内容。 在任何地方都使用 T2

结果:您得到了快速查询(不涉及联合对象) - 如果有人破坏了电子表格 - 它不会从 T1 转到 T2 - 您会知道问题,但同时所有查询将继续正常工作具有最后已知的良好数据。

您可以从电子表格上的修改事件中启动加载 - 但我不会走这条路 - 会涉及太多移动部件并且 Gscripts 的可靠性仍然不是很高

【讨论】:

您好,感谢您的回复。使用真正的 bigquery 表,您的意思是使用电子表格架构创建空表,如下所示:link ??然后将数据转储到这个表中?您是否注意到更好的速度性能? 所以对我来说基本问题是,如何创建“真正的大查询表”?是否可以使用我在上面链接中发布的方法,还是需要其他方法,例如流数据或从云存储等加载? 定义联合表后 - 只需在 UI 中执行 select * from [federated_table] - 并在某些数据集中设置目标表名称(您需要单击显示选项才能访问它) - BigQuery 将复制架构和数据这里

以上是关于BigQuery GSheet 上传的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Dataproc 删除 BigQuery 表不起作用

AppEngine BigQuery PHP 库在运行时不隐含?

BigQuery AEAD 功能的密钥集管理最佳实践 [关闭]

使用 Apache Beam 向 BigQuery 传播插入时如何指定 insertId

是否可以使用架构自动检测加载 BigQuery 但修改自动检测的架构?

BigQuery 视图可以引用来自不同数据集/项目的其他表和视图吗?