gpt4 book ai didi

java - 使用存储过程快速从sql server读取百万条记录并使用java和spring boot将其写入csv

转载 作者:行者123 更新时间:2023-12-01 22:56:28 26 4
gpt4 key购买 nike

我们有一个存储过程,用于选择一百万条记录。存储过程如下所示

CREATE PROCEDURE ABC(@CustID varchar(20))
AS
BEGIN

WITH temporaryTable as (SELECT ab,bc,... FROM Table); // a very huge select query

SELECT a,b, ..., l FROM temporaryTable OUTER JOIN(some_table1)... union all SELECT m,n,..., z FROM temporaryTable OUTER JOIN(some_table2); // two very huge select query with union

END

我的任务是使用该存储过程获取结果,并使用 java 和 spring boot 将其写入 CSV 文件。

我尝试了spring-data-jpa的@NamedStoredProcedureQuery方式来获取结果并使用opencsv将其写入CSV,但这太慢了。我确实使用了 setFirstResult() 和 setMaxResult() 方法,但看不到任何差异(也许这需要以不同方式配置存储过程,但不确定。) p>

现在我正在尝试使用Spring Batch的StoredProcedureItemReader(仍在配置...)来读取数据并使用FlatFileItemWriter写入CSV,但我是新手虽然我认为这个链接(https://docs.spring.io/spring-batch/4.1.x/reference/html/scalability.html#scalability)可能有帮助,但不确定这是否有帮助。

我需要的是一个可以得到想要的结果的方向。

谢谢,一如既往,我们将非常感谢社区的任何有帮助的举动!!!

最佳答案

我会直接使用 Reader->Writer 步骤,其中 JdbcCursorItemReader 用于您的 Reader,FlatFileItemWriter 用于您的 Writer。

读者的 sql 只是您问题中的 SELECT 。 Writer 将使用 DelimitedLineAggregator 来创建 CSV 输出。

关于java - 使用存储过程快速从sql server读取百万条记录并使用java和spring boot将其写入csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com