首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在中使用时

在中使用时
EN

Stack Overflow用户
提问于 2018-12-05 07:07:48
回答 2查看 1.6K关注 0票数 1

在用python测试和开发了一些Google模板几天之后,我想问自己,使用BigQuery是否适合我们的项目。

为什么这么想?

  • BigQuery专注于联机分析处理(OLAP),因此将BigQuery视为联机事务处理()可能不是最好的选择。 即使知道了这一点,我还是决定使用BQ,因为它与Google具有更好的兼容性。
  • 在开发了的模板的第一个版本并尝试使用一些数据之后,这个方法工作得很好。使用流或批处理执行这个管道,我没有任何特殊的问题。 当我尝试像OLTP一样使用BQ时,问题就开始了。这里我发现了一些问题,因为我的用例:在某些情况下,我不能使用批量更新,我必须使用单行突变,所以我必须使用DML语句来执行这个任务。结果是,执行时间开始大幅度增加,有上百个单行突变。
  • 即使我假设这样的时间增加,我也发现你每天只能使用每张桌子1,000次更新。(更多语录)

Alternatives

下面是我不确定应该使用哪些其他服务而不是BigQuery的地方:

  • Cloud是Google的OLTP数据库。这可能适合于我的用例,但是:如果我试图分析数据,Cloud的工作速度是否与my一样快?我将有许多包含数百万行的表,例如,由于处理时间较长,使用Microsfot对我来说是不够的。
  • Cloud如何与apache和管道一起工作?
  • 每天使用Cloud并将数据迁移到BigQuery,以避免BQ中出现单行突变?
  • 在这种情况下,最好使用哪种服务?
EN

回答 2

Stack Overflow用户

发布于 2018-12-06 15:40:29

Cloud如何与apache和管道一起工作?

最终转换的o/p将是一个集合而不是一个字符串,将集合写入到cloudsql可能会导致重载、高延迟。您可以在#pardo函数中使用MySqlDb.connect编写,在其中处理单个elementTableRow。

每天使用Cloud并将数据迁移到BigQuery,以避免BQ中出现单行突变?

您可以编写一个python脚本,该脚本将数据从cloudsql表导出到GCS或LocalStoragewhere,您的脚本计划运行,然后上传回BQ。

但您必须确保空值。当您将数据作为文件导出时,表中的Null值将被替换为'N会导致上传到BQ时出现不适当的行值计数。这一切都可以用单个python脚本来完成。

在这种情况下,最好使用哪种服务?

票数 0
EN

Stack Overflow用户

发布于 2018-12-24 03:34:05

我将避免在事务性工作负载中使用BigQuery,因为对于更新操作,它往往效率很低。类似地,Cloud对于事务性工作负载也很好,但对于分析性工作负载则是缓慢的。

如果您需要一个既可以处理更新又可以处理分析工作负载的数据库,我建议查看BigTable。您可以了解如何为GCP 这里选择存储选项。

正如您所说的,另一种选择是在Cloud中执行所有事务工作,每天一次将其同步到BigQuery并在那里执行分析工作,例如,WePay使用一个工作流就像这样

为了解决您的另一个问题,是的,Dataflow可以使用Cloud而只使用正常连接,只需确保使用连接池以避免连接耗尽。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53635244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文