有哪些算法和数据结构对于调整(金融)异步系统有用?

问题描述 投票:0回答:1

我正在审计两个交易系统之间的一些财务数据。这两个数据集由交易列表组成。每个都有,

  • 时间戳,
  • 特殊的事务ID(不在系统之间共享)
  • 交易价值(项目名称、项目价值、总计、调整)。

数据不完善; 10-20% 的数据不一致。

我已经使用 Pandas 拼凑出了一个解决方案:有什么更有效的方法可以根据条件逐行合并 DataFrame 中的行?。 简单的

pandas.merge()
过于贪婪,会产生许多错误的匹配。良好的匹配取决于数据集中的多个标准。

使用 Pandas 有哪些替代方案? 当我研究这个问题时,我发现一些 Pandas 答案建议了一些操作,这让我担心数据丢失或重复。

将其转化为更好的 Stackoverflow 问题的形式:有哪些流行的算法或数据结构可用于匹配两个独立系统之间的活动?

  • 不会改变原始数据集的东西,
  • 不会从原始数据集中删除项目,
  • 假设每个条目都有一个匹配项,该匹配项在其他数据集中存在或缺失
python pandas financial
1个回答
0
投票

调整金融异步系统涉及处理可能未实时同步的数据。多种算法和数据结构可用于此目的:

  1. 时间戳和事件源:

    • 使用时间戳对时间序列中的事件进行排序。
    • 实施事件源以将所有更改捕获为事件序列,从而促进同步。
  2. 分布式账本技术(DLT)/区块链:

    • 利用区块链实现去中心化和分布式账本,确保参与者之间的一致性,而无需中央机构。
  3. 共识算法:

    • 实施Paxos或Raft等共识算法,以确保分布式系统中的不同节点就事件的顺序达成一致。
  4. 消息队列:

    • 使用 Apache Kafka 或 RabbitMQ 等消息队列异步传输金融事件,同时保持其顺序。
  5. 哈希函数:

    • 应用哈希函数验证跨系统金融数据的完整性,确保数据在传输过程中不被篡改。
  6. 默克尔树:

    • 使用 Merkle 树,通过仅比较数据块的哈希值来高效验证大型数据集,减少大量数据传输的需要。
  7. 矢量时钟:

    • 实施矢量时钟来跟踪分布式系统中事件的因果关系和顺序,有助于解决冲突并保持一致性。
  8. 无冲突复制数据类型 (CRDT):

    • 使用CRDT来管理可以在不同节点上独立更新的分布式数据结构,以数学保证的方式解决冲突。
  9. 最终一致性模型:

    • 采用最终一致性模型,允许系统暂时不同步,但随着时间的推移会收敛到一致的状态。
  10. 基于增量的复制:

    • 仅传输财务数据的变化(增量),减少系统之间需要同步的数据量。
  11. 因果一致性模型:

    • 应用因果一致性模型以确保以因果顺序方式应用操作,维护事件之间的逻辑依赖关系。
  12. 时间序列数据库:

    • 利用时间序列数据库高效存储和检索财务数据,尤其是在处理大量带有时间戳的信息时。

这些算法和数据结构有助于管理跨异步系统协调财务数据的复杂性,确保金融交易和流程的一致性、可靠性和安全性。 查看更多

© www.soinside.com 2019 - 2024. All rights reserved.