标签: data-synchronization

TPL DataFlow与BlockingCollection

我知道a BlockingCollection最适合消费者/生产者模式.然而,当我使用一个ActionBlockTPL数据流库?

我最初的理解是针对IO操作,保持BlockingCollection同时CPU密集型操作适合于ActionBlock.但我觉得这不是整个故事...任何额外的见解?

.net task-parallel-library data-synchronization tpl-dataflow

6
推荐指数
1
解决办法
3154
查看次数

使用不同的模式同步 2 个数据库

我们有一个使用通用表设计的规范化 SQL Server 2008 数据库。因此,我们有通用表(实体、实例、关系、属性等),而不是为每个实体(例如产品、订单、订单项等)设置单独的表。

我们决定使用一个单独的非规范化数据库来快速检索数据。假设它们具有不同的架构,您能否告诉我同步这两个数据库的各种技术?

干杯,莫什

database sql-server synchronization data-migration data-synchronization

5
推荐指数
1
解决办法
2640
查看次数

我们如何在 Amazon dynamo 数据库和关系数据库之间同步数据

我们计划使用 Amazon Dynamo db 开发应用程序。实际上,这个应用程序正在从我客户的数据库中收集信息(我的客户正在使用 MYSQL、Oracle、MSsql/任何其他关系数据库),在我的应用程序中执行一些过程并将结果发送回客户的数据库。此同步过程应始终有效(或每 1 分钟间隔)。

我想知道是否有任何工具(或技巧)可用于 Amazon dynamo 数据库和关系数据库之间的同步?

relational-database bidirectional-relation data-synchronization amazon-dynamodb

5
推荐指数
1
解决办法
1850
查看次数

同步两个对象列表

问题

我有两个对象列表。每个对象包含以下内容:

  • GUID (允许确定对象是否相同 - 从业务角度来看)
  • Timestamp (每次对象更改时更新到当前 UTC)
  • Version (正整数;每次对象改变时递增)
  • Deleted (布尔标志;切换到“真”而不是实际删除对象)
  • Data (一些有用的有效载荷)
  • 如果需要,任何其他字段

接下来,我需要根据这些规则同步两个列表:

  • 如果某些对象GUID仅出现在一个列表中,则应将其复制到另一个列表中
  • 如果GUID两个列表中都出现了一些对象,Version则应将具有较少的实例替换为具有较大的实例Version(如果版本相同,则无关紧要)

实际要求:

  • 每个列表有 50k+ 个对象,每个对象大约 1 Kb
  • 列表被放置在通过互联网连接的不同机器上(例如,移动应用程序和远程服务器),因此算法不应该浪费太多流量或 CPU
  • 大多数情况下(比如 96%)列表在同步过程之前已经同步,因此,算法应该以最小的努力来确定它
  • 如果有任何差异,大多数情况下它们很小(更改/添加了 3-5 个对象)
  • 如果一个列表为空,则应继续执行(而其他列表仍有 50k+ 项)

解决方案#1(目前已实施)

  1. 客户端存储上次同步成功的时间(比如T
  2. 两个列表都要求所有具有Timestamp> T(即最近修改过的对象;在生产中它是 ... > ( T- day ) 以获得更好的健壮性)
  3. 这些最近修改的对象列表是天真同步的:
    • 仅出现在第一个列表中的项目将保存到第二个列表中
    • 仅出现在第二个列表中的项目将保存到第一个列表中
    • 其他项目将它们的Version's 进行比较并保存到专用列表(如果需要)

过程:

  • 小改动效果很好
  • 几乎符合要求

缺点:

  • 取决于T,这使算法变得脆弱:同步上次更新很容易,但很难确保列表完全同步(使用T1970-01-01 …

algorithm list data-synchronization

5
推荐指数
1
解决办法
4491
查看次数

使用Kafka进行数据集成以及更新和删除

所以有一点背景 - 我们有大量的数据源,从RDBMS到S3文件.我们希望将这些数据与其他各种数据仓库,数据库等同步和集成.

起初,这似乎是卡夫卡的典型模式.我们希望通过Kafka将数据更改流式传输到数据输出源.在我们的测试案例中,我们使用Oracle Golden Gate捕获更改并成功将更改推送到Kafka队列.但是,将这些更改推送到数据输出源已经证明具有挑战性.

我意识到如果我们只是向Kafka主题和队列添加新数据,这将非常有效.我们可以缓存更改并将更改写入各种数据输出源.然而,这种情况并非如此.我们将更新,删除,修改分区等.处理此问题的逻辑似乎要复杂得多.

我们尝试使用登台表和连接来更新/删除数据,但我觉得这会很快变得非常笨拙.

这就是我的问题 - 我们可以采取哪些不同的方法来处理这些操作?或者我们应该完全朝着不同的方向前进?

任何建议/帮助非常感谢.谢谢!

data-integration data-synchronization apache-kafka

5
推荐指数
1
解决办法
1575
查看次数

如何在 Node.js 服务器上的多个客户端之间同步数据

下图是我正在创建的 Web 应用程序的基本表示。

Node.js Web 应用程序示意图

应用程序的基本操作如下:

  1. 客户端从 node.js 服务器发送数据请求
  2. 服务器收到请求。
  3. 服务器从数据库中获取数据。
  4. 服务器将数据作为 JSON 字符串发送回客户端。
  5. 客户端接收数据将其存储为 JSON 对象并将其绑定到表。

这一切正常。我遇到的问题最好由以下情况表示。

  1. 客户端 1 到 4 都完成了上述步骤(即都有一个绑定到 JSON 对象的数据表)。
  2. 客户端 1 现在向服务器发送更新请求。
  3. 服务器收到请求。
  4. 服务器更新数据库。
  5. 服务器向客户端 1 发送响应,指示操作成功并更新绑定到表的 JSON 对象。
  6. 客户端 2 到 4 上显示的问题JSON 数据现在不再与数据库同步。

所以我的问题是如何将所有 4 个(或更多)客户端上的 JSON 数据与 Node.js 服务器上的数据库保持实时同步?

javascript json node.js data-synchronization

5
推荐指数
1
解决办法
1万
查看次数

.net 中的数据同步设计

我有一个现有的基于云的解决方案,它带有一个 web api,可以将数据从后端 SQL 数据库传输到客户端应用程序。都非常标准。我的 web api 是使用 .NET Core 构建的。这运行良好,我将现有的 web api 与已构建的各种 web 客户端一起使用。架构如下所示:

当前解决方案 当前的解决方案需要扩展以支持使用 web api 的本地移动客户端应用程序(这里没有什么特别之处 - 通常他们会像任何其他客户端一样调用 web api)但是我必须满足这些新的要求客户端应用程序可用于离线场景。这意味着我不能期望设备上存在数据连接以便每次需要时调用我的 web api。我需要查看同步数据,以便它可以离线并在需要时发送回服务器。

想一想,数据将通过以下两种方式之一进行同步:

  • 单向同步 - 从服务器到客户端的数据,但不会对此数据进行更改,例如系统查找表。
  • 双向同步 - 现有数据将同步到客户端,修改并发送回服务器或在客户端上创建新数据并向上发送,例如新订单。

新架构如下:

在此处输入图片说明

所以 - 开始我的问题 - 有没有人知道在同步数据(单向和双向)或可能有内置同步代码的 NuGet 包方面遵循的良好设计模式?如果可能的话,我试图避免在同步方面重新发明轮子。

注意:仅供参考,本机移动应用程序将在 Visual Studio 2015 中使用 Xamarin 构建。

c# synchronisation data-synchronization xamarin asp.net-core

5
推荐指数
1
解决办法
1468
查看次数

如何使用pysftp仅同步远程目录中已更改的文件?

我正在使用 pysftp 库的get_r函数(https://pysftp.readthedocs.io/en/release_0.2.9/pysftp.html#pysftp.Connection.get_r)从 sftp 服务器获取目录结构的本地副本。

对于远程目录的内容已更改并且我只想获取自上次运行脚本以来更改的文件的情况,这是正确的方法吗?

该脚本应该能够递归地同步远程目录并镜像远程目录的状态 - fe 使用参数控制是否应该删除本地过时的文件(远程服务器上不再存在的文件),以及对应该获取现有文件和新文件。

我目前的方法在这里。

用法示例:

from sftp_sync import sync_dir

sync_dir('/remote/path/', '/local/path/')
Run Code Online (Sandbox Code Playgroud)

python sftp synchronization data-synchronization pysftp

5
推荐指数
1
解决办法
5605
查看次数

Java:在互联网可以中断时在线更新数据的最佳实践


我有2个申请:

  • 桌面(java)
  • 网络(symfony)

我在桌面应用程序中有一些数据必须与Web应用程序中的数据一致.
所以基本上我POST从桌面应用程序向Web应用程序发送请求以更新在线数据.

但问题是,当我发送请求时,互联网并不总是可用,同时我无法阻止用户更新桌面数据
到目前为止,这是我在考虑确保同步数据的时候互联网是可用的.

在此输入图像描述 我是否正确的方向?
如果没有,我希望你们让我走上正确的道路,以专业的方式实现我的目标.
任何关于此类主题的链接将不胜感激.

java data-synchronization

5
推荐指数
1
解决办法
110
查看次数

私有 Docker 注册表的多个用户?

我有一个私有 Docker 注册表正在运行。

任何用户都应该能够推送和拉取任何图像。因此,现在我根本没有使用任何用户标识。

但是,用户不应该能够欺骗注册表来覆盖其他用户的图像。

如果用户 A 上传 ourRegistry/myProgram:version_1,那么用户 B 应该无法上传标记为 ourRegistry/myProgram:version_2 的内容。

有没有办法将用户身份验证添加到私有注册表来做到这一点?

此外,注册表是已经拥有自己的注册用户数据库的服务器的一部分。有没有办法同步用户,让用户不必记住两个密码?

authentication user-permissions data-synchronization docker docker-registry

5
推荐指数
1
解决办法
4343
查看次数