#csv #uploader #db #thread #records #uploading #parallelized

app csv_uploader

自定义TSV/CSV -> 数据库上传器

4 个版本

0.1.3 2023年2月23日
0.1.2 2023年2月23日
0.1.1 2023年2月23日
0.1.0 2023年2月10日

#2233数据库接口

MIT 许可证

14KB
109 行代码

CSV Uploader

一个自定义的CSV -> 数据库上传程序。

速度

相信我,当你上传500万条记录时,你需要速度。

两步并行化过程(循环)

  1. 我们在读取和解析时将记录缓冲在数组中(例如1000条记录)。这是读取器(主线程)
  2. 一旦数组填满,我们将异步上传future/task推送到栈中执行。(例如4个上传线程)

警告!:线程间的并行化(步骤2)仍在开发中。我还在研究tokio库。:)

自定义 数据

作为次要目标。我们在解析的同时对数据进行标准化。

这非常多变,取决于两个方面

  1. 数据库及其使用的数据类型。
  2. 我们要上传的数据集以及我们迄今为止看到的数据类型。

因此,我们当前的过程是

  • 解析为JSON数据类型
  • 删除任何空字符串
  • 解析 "False" -> false, "True" -> true
  • 在字符串中替换 ' 并再次尝试解析(因为有些数据集是这样的)

支持的数据库(目前)

  • RethinkDB

数据已测试

依赖项

~18–32MB
~576K SLoC