Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 开发确定数据可用性的算法_Java_Scheduled Tasks_Data Warehouse_Change Data Capture - Fatal编程技术网

Java 开发确定数据可用性的算法

Java 开发确定数据可用性的算法,java,scheduled-tasks,data-warehouse,change-data-capture,Java,Scheduled Tasks,Data Warehouse,Change Data Capture,我们正在使用变更数据捕获工具将源数据以近乎实时的方式迁移到目标数据库。 面临的挑战是尽可能准确地确定 源和目标。该工具的延迟报告功能并不令我们满意,因此我 我们的任务是开发一个流程,更好地监控这一特定指标 我们需要了解这一点的主要原因有两个: 1:为我们的用户提供准确的数据可用性矩阵,以支持报告调度。例如 在为客户安排每日对账报告之前,午夜后应经过多长时间 前一天我们想尽快得到这些信息 2:确定数据镜像进程运行速度比平时慢(甚至停止)的情况。 这将触发一封电子邮件给我们的支持团队进行调查 我正在

我们正在使用变更数据捕获工具将源数据以近乎实时的方式迁移到目标数据库。 面临的挑战是尽可能准确地确定 源和目标。该工具的延迟报告功能并不令我们满意,因此我 我们的任务是开发一个流程,更好地监控这一特定指标

我们需要了解这一点的主要原因有两个:

1:为我们的用户提供准确的数据可用性矩阵,以支持报告调度。例如 在为客户安排每日对账报告之前,午夜后应经过多长时间 前一天我们想尽快得到这些信息

2:确定数据镜像进程运行速度比平时慢(甚至停止)的情况。 这将触发一封电子邮件给我们的支持团队进行调查


我正在寻找一些关于如何最好地完成这项看似简单的任务的一般想法

我首选的方法是专门的心跳或健康检查表。 在源表中,标识列(SQLserver)列或序列(Oracle)中的值作为主标识符;固定的任务名称字符串;固定服务器字符串(如果任务名称和当前时间未标识)

在源上有脚本/作业,每分钟(或2分钟或10分钟)插入一条记录

在CDC引擎(如果有)中,添加一个列,其中包含处理更改事件的时间

在目标位置,将最后一列默认值添加到插入时的当前时间

单个目标表可以容纳多个源/任务

常规的BLIB将允许您一眼就能看到更改是否正在实现,应用程序是否正在生成更改

一个简单的报告可以显示当前的延迟,就像一段时间内的延迟一样。 能够将“本周一”与“上周一”进行比较,看看事情是否相似,是好是坏,这是件好事


干杯,海因。

这个问题似乎离题了,因为它不是关于特定的编程相关主题。它可能更适合程序员SE.Hmm,而不是[java]标记它对我来说似乎完全符合主题。您用于CDC和近实时的工具是什么?添加一个专用表可以进行高级别检查,但我们需要更精细的监控,因为不同表之间存在延迟差异。我一直使用的一种方法是获取源和目标的每个表上的最大更新时间每隔一小时左右,计算差异。这对活动表很有效,但对于不经常更改的表来说效果不太好,因为差异可能很大。源和目标之间的更新时间差异很大的原因是因为目标根本看不到最后一个正常的事务。问题是transac在此之前发生的延迟是很久以前的事了,因此差异很大“不同表之间的延迟差异”真的存在吗?CDC方法是否不尝试或多或少的事务性排序?那么,对于某些(活动的)细粒度,对于其他(低使用率)的粗粒度,您面临的挑战甚至更大表。helper表还具有在一个系统上获取所有数据的优势,不必连接到源和目标。祝您好运。我们已经向供应商开了几个问题单。有些问题是由于该工具在复制过程不工作时无法报告错误,还有一些是由于重复。这里的重点是由于前面提到的原因,我试图在工具之外引入一个监视过程。不过,我也会重新考虑专用表方法