小编Joh*_*ebb的帖子

在移动应用和网络服务器之间同步大量数据

安装程序

我有一个原生的iOS和Android应用程序,可以与我的网络服务器同步数据.应用程序的一个要求是它们脱机工作,因此数据存储在sqlite数据库中的应用程序中.

应用程序通过一系列REST调用与服务器进行通信,这些调用从服务器发送JSON,以便应用程序存储在其数据库中.

我的问题

这些数据的规模非常大,一些表可以有一百万条记录,而手机数据库的最终大小可以接近100mb.

REST端点必须限制其数据,并且必须使用不同的偏移多次调用才能实现整个同步.

所以我正在寻找提高这一过程效率的方法.

我的想法

我的想法是创建一个可以在服务器上运行的脚本,该脚本将从服务器数据库创建一个sqlite文件,压缩它并将其放在某个地方供应用程序下载.有效地创建服务器当前数据的快照.

应用程序将下载此快照,但仍需要调用其REST方法,以防自快照发生以来发生了某些变化.

问题

这会给我的webapp增加另一层复杂性,我想知道这是否是正确的方法.在同步大量数据时,人们会使用其他技术吗?

android data-sharing ios

7
推荐指数
1
解决办法
851
查看次数

查询在MYSQL中工作但不在SQLite中(语法区别?)

嗨,我有一个查询,从我的房屋表中选择所有按街道地址分组的房屋.它统计了该街道上有多少人,但也计算了另一个游说桌中引用该街道的数量.

我有查询在MYSQL中工作但是当我在我的iOS应用程序中使用SQlite尝试它时它不起作用.我不知道两者之间是否有一些语法差异?

 SELECT haddress AS hd, COUNT( * ) ,
    (
     SELECT COUNT( * ) 
     FROM canvass, house
     WHERE canvass.hid = house.hid
     AND house.haddress = hd
    )
 FROM house
 GROUP BY haddress
Run Code Online (Sandbox Code Playgroud)

mysql sqlite

4
推荐指数
1
解决办法
771
查看次数

AWS Api Gateway 使用消息属性连接到 SQS

我已经按照本教程连接了一个 Api 网关方法来推送到 SQS 队列。

https://dzone.com/articles/creating-aws-service-proxy-for-amazon-sqs

这一切都很好,但我想使用一些路径参数向我的消息添加一些消息属性,但我无法让它工作。

这是教程中的当前映射模板。

Action=SendMessage&MessageBody=$util.urlEncode($util.escapeJavaScript($input.json('$')))
Run Code Online (Sandbox Code Playgroud)

我试图保留“application/x-www-form-urlencoded”格式,并通过将其更改为(现在使用静态值)将 MessageAttributes 添加到此

    Action=SendMessage&MessageBody=$util.urlEncode($util.escapeJavaScript($input.json('$')))
&MessageAttribute[0][Name]=foo&MessageAttribute[0][Type]=String&MessageAttribute[0][Value]=bar
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误

{
  "Error": {
    "Code": "MalformedQueryString",
    "Message": "Keys may not contain [",
    "Type": "Sender"
  },
  "RequestId": "ea121e6e-ca37-5d14-b92b-4a2c6fedf403"
}
Run Code Online (Sandbox Code Playgroud)

我应该如何在不使用“[”的情况下对 MessageAttribues 数组进行编码

amazon-sqs amazon-web-services aws-api-gateway

3
推荐指数
2
解决办法
3667
查看次数