首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在云数据仓库中创建大量实体

如何在云数据仓库中创建大量实体
EN

Stack Overflow用户
提问于 2015-12-26 13:44:17
回答 1查看 173关注 0票数 1

我的要求是在中创建大量实体。我有csv文件,合并后的实体数量可以在50k左右。我试过以下几点:

1.逐行读取csv文件并在数据存储中创建实体。问题:运行良好,但超时,不能一次性创建所有实体。

2.上传了files存储中的所有文件并将其红色到数据存储问题:I尝试了Mapper函数来读取上传到files存储中的csv文件,并在数据存储中创建实体。我遇到的问题是,如果文件大小大于2Mb,mapper就不能工作。此外,我只是尝试读取servlet中的文件,但同样存在超时问题。

我正在寻找一种在数据存储中创建上面(50k+)大量实体的方法,所有这些都是一次完成的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-28 15:11:16

实体的数量不是这里的问题(50K是相对微不足道的)。在最后期限内完成你的请求是问题所在。

从你的问题中还不清楚你在哪里处理你的CSV,所以我猜它是用户请求的一部分--这意味着你有60秒的任务完成期限。

任务队列

我建议您考虑使用任务队列,当您上传需要处理的CSV时,可以将它放到队列中进行后台处理。

当使用任务队列时,任务本身仍然有一个截止日期,但超过60秒(自动缩放时为10分钟)。您应该阅读更多关于文档中的截止日期的内容,以确保您了解如何处理这些错误,包括捕获DeadlineExceededError错误,以便您在CSV中运行时可以保存,以便在重试时从该位置恢复。

关于捕捉DeadlineExceededError的警告

警告: DeadlineExceededError可能会从程序中的任何地方引发,包括最终块,因此它可能会使您的程序处于无效状态。这可能会导致死锁或线程代码(包括内置线程库)中的意外错误,因为锁可能不会被释放。请注意(与Java不同),运行时可能不会终止进程,因此这可能会导致对同一个实例的未来请求出现问题。为了安全起见,您不应该依赖theDeadlineExceededError,而应该确保您的请求在时间限制之前就完成了。

如果您对上述情况感到关切,并且无法确保您的任务在10分钟的截止日期内完成,则您有两个选项:

  1. 切换到一个手动缩放的实例,这给你24小时的最后期限。
  2. 确保您的任务保存进度,并在10分钟的截止日期之前返回错误,以便在不需要捕获错误的情况下正确地恢复错误。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34471900

复制
相关文章

相似问题

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