情况:我有一个数据库和一个互动的网络应用程序,用于显示和更新科学数据表.我的任务是构建一个允许用户使用的移动应用程序
问题:对于管理此类应用程序而不依赖于一致的互联网访问,进行身份验证/下载/存储/上传必要数据的最佳方法是什么?如果两个人调整相同的读数,并且在同步之间发生一次更新,我如何跟踪哪些表和值已被更改,并防止更改丢失?
当前的思路:我目前关于碰撞控制的暂定策略是维护一个"同步"表,该表存储代表存储在sessionStorage中的每个在线数据库事务的JSON对象,并让应用程序在上传数据之前不断验证其同步,并检查此对象对特定主键更新的潜在冲突.我希望能够在编辑阶段锁定元组,但由于互联网访问不一致,这似乎是不可能的.
对不起,如果这是一个新问题,我是整个移动应用程序开发的新手......
tl; dr如何防止数据库的异步更改从进行和离线的移动应用程序覆盖/与另一个人对同一数据库的更改发生冲突?我如何验证没有网络连接的用户?
我已经构建了一个 Terraform 配置,用于部署 MongoDB atlas 云集群,并使用我的 AWS 账户设置 VPC 对等点。terraform 配置将凭证存储在 AWS Secrets Manager 中。不幸的是,我的 Lambda 无法访问 Secrets Manager API 端点或 Atlas 上托管的 MongoDB 集群。我读到我需要在我的 VPC 上设置 NAT 网关才能访问公共互联网。我不是网络专业人士,我尝试添加一堆不同的配置但无济于事。请帮忙:
理想情况下,我想尽可能地锁定与外部互联网的连接,但如果这不是一个选择,我可以接受任何可行的实现。
这是我的 Terraform 配置
variable "admin_profile" {
type = string
default = "superadmin"
}
variable "region" {
type …
Run Code Online (Sandbox Code Playgroud) amazon-vpc aws-lambda mongodb-atlas terraform-provider-aws aws-secrets-manager
当我尝试将 CSV 从 S3 复制到 Redshift 中的新表(通常适用于其他表)时,出现此错误
错误:加载到表“table_name”失败。有关详细信息,请检查“stl_load_errors”系统表。
但是,当我运行标准查询来调查 stl_load_errors 时
SELECT errors.tbl, info.table_id::integer, info.table_id, *
FROM stl_load_errors errors
INNER JOIN svv_table_info info
ON errors.tbl = info.table_id
Run Code Online (Sandbox Code Playgroud)
我没有看到任何与此副本相关的结果。我看到之前失败的 COPY 命令的错误,但没有一个与我感兴趣的最新命令相关。