我想以JSON格式下载一些开放数据(地理数据)
可下载文件以bz2
格式存档,权重约为430 Mb。未压缩时,json
文件的权重约为3 Gb。
还有机会下载对应于单个区域的部分数据(总共100个)。在这种情况下,每个文件的重量约为4 Mb,一旦未压缩,就会得到一个24 Mb的json
文件。
我计划在rails应用程序中使用这些数据(目前使用postgres数据库)。
由于数据以JSON格式提供,我考虑将mongodb数据库与postgres数据库集成在一起。
但我不知道mongodb是否能够加载如此巨大的文件,例如。使用mongoimport
。
我听说过8或16 Mb文档大小的限制。但是这个限制是否与单行'文件或文件对应整个文件?
在后一种情况下即使使用部分文件,也不可能使用mongodb,对吧?
但是,由于我也听说过mongoid
是"慢",我想知道是否可以更好地加载' postgres本身的数据,在自己的表格上(甚至在自己的数据库上)
如果是这样,我如何加载这些数据?
我考虑用普通的Ruby逐行读取文件,并在seed.rb
文件中填充数据库。 (我知道它可能需要很长时间)
在我的情况下,谁能告诉我什么是最好的选择?
一些注意事项:
我没有任何限制
我使用的是docker容器。
这些数据只会被读取,以便为主应用程序中的某些字段提供自动完成功能
我计划每周从新下载的文件更新数据。
编辑:"字段" (我的意思是JSON文件的键)我感兴趣的是可以有多个单词的字符串(即空格分隔的字符串)。
最终我希望在单词的开头有最快的查找搜索(可能是在字符串的中间)
也许根据mongodb和postgres提供的索引可能性来限制选择
对于postgres,我可以将这些数据存储在字符串字段中,甚至可以存储在#34;"在JSONB字段中提供最快的索引。