Google app engine 使用go和app engine导入和解析大型CSV文件';s数据存储
在本地,我能够成功地(在任务中):Google app engine 使用go和app engine导入和解析大型CSV文件';s数据存储,google-app-engine,csv,go,google-cloud-datastore,Google App Engine,Csv,Go,Google Cloud Datastore,在本地,我能够成功地(在任务中): 打开csv 扫描每一行(使用Scanner.Scan) 将解析的CSV行映射到所需的结构 将结构保存到数据存储 我看到这将允许我——但这似乎有32MB的限制。我还看到有一个批量上传工具——bulk_uploader.py——但它不能完成我需要的所有数据处理,我想限制这种批量插入的写入(以及真正的成本) 如果没有从本地存储读取的好处,如何有效地读取和解析非常大(500mb+)的csv文件?您需要查看以下选项,看看它是否适合您: P>查看大文件大小时,应考虑
- 打开csv
- 扫描每一行(使用Scanner.Scan)
- 将解析的CSV行映射到所需的结构
- 将结构保存到数据存储
如果没有从本地存储读取的好处,如何有效地读取和解析非常大(500mb+)的csv文件?您需要查看以下选项,看看它是否适合您: <> P>查看大文件大小时,应考虑使用该文件。您可以使用GCS提供的命令行实用程序将文件上载到bucket。上传后,您可以直接使用JSON API处理文件并将其导入数据存储层。请看以下内容:
这并不是我所希望的解决方案,但我最终将大文件分成32MB的片段,将每个片段上传到blob存储,然后在一个任务中解析每个片段
它并不漂亮。但这比其他选择花费的时间要少 将其托管到其他地方并通过http解析,这是我唯一能想到的事情,因为我对GAE不太熟悉。@其中一件事情不起作用,因为我无法在GAE强制请求超时之前解析文件。1。它看起来不像go的GAE运行时目前支持GCS。或者至少没有记录在案。在GAE文档的“存储数据”部分中,只有blob store,它指出,
除了系统范围的安全配额外,Blobstore的使用还受到一个限制:应用程序可以通过一个API调用读取的Blobstore数据的最大大小为32 MB。
。所以我仍然被一个硬限制的io流所困扰。见第2条。这可能是可行的,但仍然是一个真正的痛苦。我仍然希望我还有另一个选择。谢谢你的回复,罗明。我在Go GCS样本中输入了错误的链接,并且已经更正了我上面的回复,所以请检查这是否适用于你。您可以直接使用JSON API。此外,我认为您的文件很大,但单个记录较小,您希望处理这些文件并将其放入存储中。如果blob本身很大,那么您需要将这些数据单独保存在GCS中,并从您的GAE应用程序中引用它们。