0

好的,所以我想构建一个简单的网络应用程序,它会以某种方式使用 githubarchive 数据。起初我想使用 BigQuery 数据库和它的 API,但是,我的免费配额将在一天内结束。

所以,我所做的是从站点下载所有 2012/2013 记录,并将它们提取到一个文件夹中 - 现在我有 10k+ json 文件,而不是我想用来为我的应用程序获取数据的数据。

所以我想要的是:创建一个 GAE (python) 或 Django 应用程序来可视化这些数据。为此,我需要将 json 文件转换为数据库 - 我想使用 SQLite,但我不确定什么是最佳选择。我不确定是否需要创建数据库,但这就是我现在能想到的。

有人对我有什么建议吗?

4

2 回答 2

1

AppEngine 也不是免费的超过一定的配额。我很确定导入 10k+ Json 文件然后进行分析将远远超出免费配额。

此外,AppEngine 的查询语言非常有限(没有跨实体查询、没有连接、单个不等式过滤器),这将阻止您进行任何有意义的分析。使用 BigQuery 并承担成本,或者只是在您自己的机器上进行分析,然后将统计数据导出到 GAE 进行演示。

GAE 和 BQ 都是快速的大规模并行高可用性服务,您希望将其用于生产应用程序。如果您预算有限且不需要高可用性,请选择负担得起的 VPS

于 2013-07-06T07:10:41.230 回答
0

鉴于您的限制,您最好的选择似乎是在本地计算机上处​​理文件并将可查询的结果保存到 AppEngine Datastore并从那里将它们呈现给用户。根据您处理数据以准备好可查询结果的能力,您还可以考虑使用 Cloud-SQL (MySQL)。

一些建议的步骤:

  1. 准确确定要显示或允许查询的内容。然后根据该信息确定哪种数据格式最容易完成。
    • 从您的示例中,大约有 100GH 用户使用一种语言进行回购。然后创建一个表,其中包含用户、语言和可能的其他一些字段,例如存储库数。
  2. 处理您拥有的数据文件并写入您在 1 中定义的表和字段。
    • 您必须决定在您的情况下执行此操作的最佳方法是什么。可能是您编写了一个在本地运行的简单应用程序,它解析每个文件,跟踪内存中的一些值并在完成后将它们写入服务器。也可能是您导入到本地数据库服务器(MySQl,PostgreSQL,...),然后查询它,然后写入服务器或运行一些 map reduce 作业。
    • 一旦你有了数据,如果你的应用程序有一个 API,你可以把它放在 AppEngine 上,如果没有,Remote-API 可能是一个快速的解决方案。
  3. 设计您的前端网站,然后执行您在 1 中计划的查询。通常,如果您提前计划好,这些查询应该相对便宜且简单。

当然,此解决方案存在妥协,添加您不容易准备的 ah-hoc 查询并非易事(可能会重新处理和更新数据)。但是希望您能够很好地计划您的需求,并且您可以提供合理数量的请求,而不会变得缓慢或昂贵。

于 2013-07-07T13:48:58.350 回答