mysql innodb table 中的 count(*) 在通过 spring xd 抽取数据时导致结果不一致
count(*) in mysql innodb table leading to inconsistent results while data is pumped via spring xd
echo -e "job create --name $completeJobName --definition \"filejdbc --resources=file:/var/lib/wwhs/eligibility/processing/complete/*
--names=file_id,client_id,member_record_number,membe r_first_name,member_middle_initial,member_last_name
,group_id,member_id,date_of_birth,created_by,created_date,modified_by
,modified_date
--tableName=eligibility.eligibility_file_staging_complete\" --deploy" > $completeJobCmdFile
/var/lib/spring_xd/shell/bin/xd-shell script $completeJobCmdFile # Call XD to create the complete job
/var/lib/spring_xd/shell/bin/xd-shell job launch $completeJobName # Run XD processing for simple input files
rm $completeJobCmdFile
在上面的代码中,我们通过 spring XD 将数据从 .csv 文件推送到 MySQL table。然后我们从 table 中读取计数 (*)。一旦计数与文件 header 中的计数相匹配,我们将启动下一个 SQL 来处理来自此暂存 table.
的行
我面临的问题是计数(*) 在变化。因此,当我在 if-else 条件下将它与 header 值匹配时,它匹配。
后来,计数就低多了。 table-type 是 InnoDB,这可能是问题所在吗?
请指导我。
虽然我不确定什么会导致 count(*)
查询的结果发生变化,但由于您正在使用作业导入数据,为什么不在作业完成后启动下一个进程完全的?在Spring XD中,可以监听与作业相关的事件,以便您可以执行依赖进程。
您可以在此处阅读有关职位相关通知的更多信息:http://docs.spring.io/spring-xd/docs/1.0.3.RELEASE/reference/html/#_retrieve_job_notifications
echo -e "job create --name $completeJobName --definition \"filejdbc --resources=file:/var/lib/wwhs/eligibility/processing/complete/*
--names=file_id,client_id,member_record_number,membe r_first_name,member_middle_initial,member_last_name
,group_id,member_id,date_of_birth,created_by,created_date,modified_by
,modified_date
--tableName=eligibility.eligibility_file_staging_complete\" --deploy" > $completeJobCmdFile
/var/lib/spring_xd/shell/bin/xd-shell script $completeJobCmdFile # Call XD to create the complete job
/var/lib/spring_xd/shell/bin/xd-shell job launch $completeJobName # Run XD processing for simple input files
rm $completeJobCmdFile
在上面的代码中,我们通过 spring XD 将数据从 .csv 文件推送到 MySQL table。然后我们从 table 中读取计数 (*)。一旦计数与文件 header 中的计数相匹配,我们将启动下一个 SQL 来处理来自此暂存 table.
的行我面临的问题是计数(*) 在变化。因此,当我在 if-else 条件下将它与 header 值匹配时,它匹配。
后来,计数就低多了。 table-type 是 InnoDB,这可能是问题所在吗?
请指导我。
虽然我不确定什么会导致 count(*)
查询的结果发生变化,但由于您正在使用作业导入数据,为什么不在作业完成后启动下一个进程完全的?在Spring XD中,可以监听与作业相关的事件,以便您可以执行依赖进程。
您可以在此处阅读有关职位相关通知的更多信息:http://docs.spring.io/spring-xd/docs/1.0.3.RELEASE/reference/html/#_retrieve_job_notifications