在Android上本地保存DynamoDB数据

时间:2016-03-07 10:31:30

标签: android amazon-web-services amazon-dynamodb

我是Android和AWS的新手。 我有一个java程序,它从一些网站上读取文章,并在AWS上的dynamoDB中存储信息(如标题,链接,描述,日期......)。

现在,我想开发一个能够读取数据的Android应用程序。我想每次应用程序启动时从服务器读取数据都会很浪费,所以我认为我应该在本地保存数据,只要有新条目就从数据库下载更新。 (我只是将项目添加到db,永远不会更新或其他东西)。

我的问题是这样做的最佳方式是什么?

  1. 如果有新条目,我怎样才能从dynamoDB同步数据?
  2. 是sqlite是在android中存储此类数据的最佳方式吗?
  3. 如果有另一种做同样的方式我愿意学习。

    谢谢。

2 个答案:

答案 0 :(得分:1)

  
      
  1. 如果有新条目,我怎样才能从dynamoDB同步数据?
  2.   

您可以在互联网上设置某种设置文件(可能在S3上),以便Android应用每次打开时进行检查。此文件可以包含插入DynamoDB的最后一条记录的ID或时间戳。然后,您的Android应用程序可以将其与本地版本进行比较,以确定是否需要从DynamoDB中提取更新。

这仍然是对互联网的呼唤。根据您在DynamoDB中存储的数据量,每次直接查询DynamoDB的速度可能同样快。这也会增加数据更新过程的复杂性,要​​求您确保S3上的文件始终更新。

  
      
  1. 是sqlite是在android中存储此类数据的最佳方式吗?
  2.   

是的,这似乎是最好的地方,虽然不了解您存储的数据的数量和类型,但很难做出明确的推荐。

答案 1 :(得分:0)

亚马逊提供Cognito用于将本地数据与同步存储同步。

  

synchronize方法将本地缓存数据与存储的数据进行比较   在Amazon Cognito Sync商店中。远程更改从中拉出   亚马逊Cognito Sync商店;如果有的话,调用冲突解决方案   冲突发生;并将设备上的更新值推送到   服务。

虽然同步存储是DynamoDB数据库但并不完全清楚。这个link说:

  

Amazon Cognito Sync商店是链接到的一个键/值对商店   亚马逊Cognito身份。