首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将CSV上传到桶中时丢失数据

将CSV上传到桶中时丢失数据
EN

Stack Overflow用户
提问于 2022-09-08 19:11:38
回答 1查看 109关注 0票数 2

把它放在上下文中,我有一个存储CSV文件的桶,还有一个函数,当您将新的CSV加载到存储桶中时,它可以将数据放入数据库。我试图同时上传100个CSV,总共有581.100条记录(70 MB),所有这些文件都出现在我的桶中,并创建了一个新表。但是,当我做一个“选择计数”时,我只找到了267306条记录(占总数的46%)--我试图再做一次,不同的桶、函数和表,我尝试上传另外100个文件,这一次是4.779.100条记录(312 MB) --当我在大查询中检查表时,我意识到只有2.293.920条记录存在(47%)。所以我的问题是,有什么方法可以在不丢失数据的情况下上传所有我想要的CSV?还是GCP对这项任务有一些限制?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-09-20 21:35:53

正如你在上一次评论中指出的:

google.api_core.exceptions.Forbidden: 403超出速率限制:此表的表更新操作太多

根据文档,此错误显示标准表的每个表的表元数据更新操作的最大速率已达到极限。您可以检查可能应用这里的限制。请注意,此配额不能增加。

诊断一节中,它说:

元数据表更新可以来自修改表元数据的API调用,也可以来自修改表内容的作业。

作为解析,您可以执行以下操作:

  • 降低表元数据的更新速度。
  • 在作业或表操作之间添加延迟,以确保更新速率在限制范围内。
  • 对于数据插入或修改,请考虑使用DML操作。DML操作不受表元数据更新操作的最大速率(表速率限制)的影响。DML操作还有其他限制和配额。有关更多信息,请参见数据操作语言(DML)
  • 如果您经常从存储在云存储中的多个小文件(每个文件使用一个作业)加载数据,那么将多个加载作业组合到一个作业中。您可以使用逗号分隔的列表(例如,gs://my_path/file_1,gs://my_path/file_2)或使用通配符(例如,gs://my_path/*)从多个云存储URI加载。有关更多信息,请参见批量装载数据
  • 如果使用单行查询(即INSERT语句)向表写入数据,请考虑将多个查询分批为一个,以减少作业数量。当作为关系数据库使用时,BigQuery的性能并不好,因此以高速执行的单行INSERT语句不是推荐的最佳实践。
  • 如果您打算以高速率插入数据,请考虑使用BigQuery存储写入API。这是一种高性能数据摄入的推荐解决方案。BigQuery存储写入API具有健壮的特性,包括精确的一次传递语义。要了解限制和配额,请参阅存储写入API和查看使用此API的成本,请参阅BigQuery数据吞吐定价
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73654026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档