在 c 中将大数据从 Excel 导入到 Redis#

Import large data from Excel to Redis in c#

提问人:mahdignb 提问时间:10/19/2023 最后编辑:mahdignb 更新时间:10/19/2023 访问量:47

问:

我需要一些帮助来读取一个大型 excel 文件,该文件在 c# 中大约有 400k 条记录,数据位于一列或两列中,每列都有 400k 条记录,之后我想将其存储在 redis 中,然后从 redis 导入到 sql server,我该怎么做?该过程应是多线程的,并且尽可能快。

这只是一项任务,应该以这种方式完成,我无法改变任何事情

提前感谢您的回答

我研究并发现也许我可以使用 bufferstream 和 producer/consumer,excel 是我的生产者,redis 是我的消费者,之后 redis 是生产者,sql server 是消费者,但我不知道该怎么做。

C# SQL Server Excel Redis

评论

1赞 Panagiotis Kanavos 10/19/2023
400K 行的数据量不大,可以使用多种方式(包括 SSIS/导入数据向导或 ExcelDataReader 和 SqlBulkCopy.WriteToServer 的组合)轻松地直接导入到 SQL Server 中。Redis 除了延迟之外什么都不提供 - 而不是直接将数据加载到数据库中,您现在必须首先在本地加载它,然后将其复制到 Redis,然后......什么?返回到客户端,以便将其发送到数据库>
1赞 Thom A 10/19/2023
为什么“有人能帮我吗?”不是一个实际的问题?具体而言,我们需要知道您需要什么帮助。你没有明确说明你卡在哪里?你已经读过的资源呢,你不明白吗?你的尝试不起作用怎么办?那是什么尝试?
1赞 Panagiotis Kanavos 10/19/2023
should be multithreaded为什么要这样做?对于初学者来说,你不能在文件的中间阅读,这意味着你必须按顺序读取Excel数据。使用多个连接插入数据(两个连接之间的冲突除外)将一无所获。毕竟,他们正在写入相同的数据页面。如果由于其他连接使用您的目标表而面临延迟,请使用单独的临时表仅用于导入,然后更新目标。
0赞 mahdignb 10/19/2023
我不知道为什么,但 Redis 对于他们完成任务很重要,我应该如何在内存中加载 400k 数据并将其写入 sql 我应该使用流式处理吗?还有什么其他选择?我可以以多线程方式做到这一点吗?如果你给我一个例子或更多的关键词,这样我就可以搜索了,那就太好了,谢谢你的回答顺便说一句
0赞 mahdignb 10/19/2023
@ThomA 感谢您的关注,主要问题是同时从 excel 读取数据并存储到 redis 而不会造成任何时间损失,我不知道如何将这两者相互连接,这样我就不会耗尽内存并且仍然很快

答: 暂无答案