有效识别差异

2023-12-19

每天,我们都会收到来自不同供应商的不同格式(CSV、XML、自定义)的巨大文件,我们需要将这些文件上传到数据库中以进行进一步处理。

问题是这些供应商将发送其数据的完整转储,而不仅仅是更新。我们有一些应用程序,我们只需要发送更新(即仅发送更改的记录)。我们当前所做的是将数据加载到临时表中,然后将其与以前的数据进行比较。由于数据集巨大并且我们偶尔会丢失 SLA,因此速度非常慢。

有没有更快的方法来解决这个问题?任何建议或帮助都非常感激。我们的程序员已经没有想法了..


有多种模式可用于检测增量,即完整转储数据集中的更改记录、新记录和删除记​​录。

我见过的更有效的方法之一是创建已有数据行的哈希值,在导入进入数据库后创建哈希值,然后将现有哈希值与传入哈希值进行比较。

主键匹配+哈希匹配=未更改的行

主键匹配 + 哈希不匹配 = 更新的行

传入数据中的主键但现有数据集中缺少主键 = 新行

主键不在传入数据中,而是在现有数据集中 = 已删除行

哈希的方式因数据库产品而异,但所有主要提供商都提供某种类型的哈希。

优点在于只需比较少量字段(主键列和哈希),而不是逐个字段进行分析。即使很长的哈希值也可以很快地被分析。

它需要对导入处理进行一些返工,但所花费的时间将在提高处理速度方面一次又一次地得到回报。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有效识别差异 的相关文章

  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • Z 算法背后的直觉

    Z算法是一种复杂度为O n 的字符串匹配算法 一种用例是从字符串 B 中查找字符串 A 的最长出现次数 例如 overdose from stackoverflow 将会 over 您可以通过使用组合字符串调用 Z 算法来发现这一点 ove
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 对 Java 中 *any* 类的所有实例进行全排序

    我不确定以下代码是否能确保 Comparator 的 Javadoc 中给出的所有条件 class TotalOrder
  • Sequelize.js 中的自定义或覆盖连接

    我需要使用创建自定义连接条件Sequelize js http sequelizejs com使用 MSSQL 具体来说 我需要加入TableB基于一个COALESCE中的列的值TableA and TableB并最终得到这样的连接条件 L
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 我应该用不可变或可变的数据结构来表示数据库数据吗?

    我目前正在使用 Scala 进行编程 但我想这适用于任何函数式编程语言 或者更确切地说 任何建议不变性并可以与数据库交互的编程语言 当我从数据库中获取数据时 我将其映射到模型数据结构 在函数式编程中 数据结构往往是不可变的 但是数据库中的数
  • 实时战略战争游戏人工智能算法

    我正在设计一款实时策略战争游戏 其中 AI 将负责控制大型六边形地图上的大量单位 可能超过 1000 个 一个单位有许多行动点 可以用于移动 攻击敌方单位或各种特殊行动 例如建造新单位 例如 一辆拥有 5 个行动点的坦克可以花费 3 个行动
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 高度并行化的Levenshtein距离算法

    实际上 我必须实现一个字符串比较 最后得到匹配百分比 不仅仅是布尔结果匹配 不匹配 为此 我找到了 Levenstein 距离算法 但现在的问题是性能 例如 我有 1k 个字符串需要相互比较 现在大约需要 10 分钟 对于每个算法 我已经并
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • 如何使用 SQL Server 2008 将行复制到同一个表中

    A 到目前为止我的方式 sqlCommand CommandText INSERT Table1 column1 column2 column3 SELECT column1 column2 column3 FROM Table1 WHER
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • Prolog 否定和逻辑否定

    假设我们有以下程序 a tom v pat 和查询 返回 false a X v X 当追踪时 我可以看到X被实例化为tom 谓词a tom 成功 因此 a tom fails 我在一些教程中读到 不 在Prolog中只是一个测试 不会导致

随机推荐

  • Laravel 5.1 - 路线不起作用

    我的路线有问题 我有我的路线 Route get dashboard password UserController password Route post dashboard updatepassword UserController u
  • 如何在Nuxt3配置中配置vite HMR端口?

    我在 Docker compose 设置中使用 Nuxt3 其中端口 8001 是通过 nginx 反向代理通道运行 Nuxt3 的节点容器的可访问端口 我的 nuxt config ts 看起来像这样 import defineNuxtC
  • ActivityUnitTestCase 和 ActivityInstrumentationTestCase2 之间的区别

    我是 Android Instrumentation 案例的新手 我一直在查看 API 示例 发现有时我们使用 ActivityUnitTestCase 和 ActivityInstrumentationTestCase2 两者有什么区别
  • 不同类型的数据库索引?

    我正在尝试编译非系统特定数据库索引的列表 我研究过 Oracle DB2 MySQL Postgres 和 Sybase 几乎每个资源都有不同的列表 到目前为止我已经看到 clustered multi dimensional cluste
  • 如何使用javascript中的函数应用复选框?

    如何使用javascript中的函数应用复选框 未选中复选框时如何隐藏具有特定标签的帖子 对象 我只需要知道如何设置在打开页面时自动检查复选框的功能以及如何隐藏带有特定标签的帖子 对象的复选框 申请是否正确 display none or
  • 当新文件添加到监视文件夹时,Java NIO 监视服务创建了“ENTRY_CREATE”和“ENTRY_MODIFY”

    我使用 java nio file WatchService 看到了一个奇怪的行为 不确定这是预期的行为 问题是我有一个向 WatchService 注册的文件夹 当我将一个新文件复制到此文件夹中时 会生成两个 WatchEvent 每个事
  • 下载当前 html 文件

    怎么可能让用户下载当前的html页面呢 网页使用ajax加载文本 所以我的代码不起作用 因为它下载了页面的原始状态 a href URL OF THIS PAGE Download a a href Download a 这是如何运作的 我
  • 如何确定 Java 中泛型字段的类型?

    我一直在尝试确定类中字段的类型 我已经看过所有的内省方法 但还没有完全弄清楚如何去做 这将用于从 java 类生成 xml json 我已经查看了这里的一些问题 但还没有找到我真正需要的 Example class Person publi
  • 在 Bootstrap 3 中将页面宽度设置为最大 970px

    我正在使用 Bootstrap 3 构建一个可以在移动设备和桌面上良好显示的网站 客户告诉我页面的最大宽度只能是970px 我如何使用 Bootstrap 3 执行此操作以确保 页面仍然位于浏览器屏幕中央吗 Bootstrap 3 中的所有
  • Android 在两个视图之间放置一个图像视图

    我需要创建一个如图所示的布局 带箭头的圆形按钮需要恰好位于蓝色和灰色背景之间 我在没有精确指定边距的情况下放置它时遇到困难 这是我不想做的事情 因为不能保证它在所有分辨率和设备上都会看起来很好 我希望有一个 xml 示例 Thanks 使用
  • 如何在不指定确切按键的情况下读取用户按下的按键?

    基本上我需要的是如何缩短我的代码的想法 所以我现在拥有的是一个 IF 系列来获取用户按下的键 if Input GetKeyDown KeyCode I AddToBuffer I else if Input GetKeyDown KeyC
  • Firebase:如何有效跟踪用户/记录更改历史记录

    关于这个问题有很多讨论 但几乎都是在 SQL 中处理 所以据我所知 其中很多内容对于我的问题来说是不适用的 我正在编写一个 CRUD 应用程序react redux a firebase后端 AWS lambda必要时发挥作用 我的用户将有
  • import 和 require 一起使用

    最近我进入了这个 import foo require foo 这听起来很奇怪 因为我通常这样使用 require var foo require foo 或者像这样导入 import foo from foo 那么 这有什么意义呢 查看导
  • eclipse已安装但无法启动java返回退出代码= 1

    我最近安装了 eclipse dsl juno SR1 win32 x86 64 并在提取文件后 当我开始运行 Eclipse 时 出现以下错误 Java 已启动但返回退出代码 1 所需的 java 版本 1 5 我检查了原因 也尝试重新安
  • EF Core 1.0 - Include() 生成多个查询

    我正在使用 EF 7 0 0 rc1 final 以下语句在服务器上生成多个查询 这是正常现象还是我遗漏了什么 Group myGroup dbContext Set
  • 使用 GhostScript 转换为 CMYK 时,CMY 通道上显示黑色

    我正在尝试使用名为的库生成 PDFwkhtml转pdf https wkhtmltopdf org 创建 RGB pdf 然后我使用 Ghostscript 将其转换为 CMYK 格式 但是 pdf 中的黑色文本不是纯黑色 cmyk 0 0
  • 如何动态分配 github 操作中的运行值

    name test if conditions name test if conditions on push branches master test env TEST BRANCH test EMPTY VALUE jobs test
  • 从字符串中过滤字符[重复]

    这个问题在这里已经有答案了 我需要创建一个函数 它接受两个字符串作为输入 并返回 str 1 的副本 其中删除了 str2 中的所有字符 第一件事是用 for 循环迭代 str1 然后与 str2 进行比较 为了完成减法 我应该创建一个第三
  • 保存之前和加载之后的数据框状态 - 有什么不同?

    我有一个包含一些 SQL 表达式 合并 case when 等 的 DF 我后来尝试映射 平面映射这个 DF 在那里我得到了Task not serializable由于字段包含 SQL 表达式而导致错误 为什么我需要 map flatMa
  • 有效识别差异

    每天 我们都会收到来自不同供应商的不同格式 CSV XML 自定义 的巨大文件 我们需要将这些文件上传到数据库中以进行进一步处理 问题是这些供应商将发送其数据的完整转储 而不仅仅是更新 我们有一些应用程序 我们只需要发送更新 即仅发送更改的