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 在 数据库接口
14KB
109 行代码
CSV Uploader
一个自定义的CSV -> 数据库上传程序。
速度
相信我,当你上传500万条记录时,你需要速度。
两步并行化过程(循环)
- 我们在读取和解析时将记录缓冲在数组中(例如1000条记录)。这是读取器(主线程)
- 一旦数组填满,我们将异步上传future/task推送到栈中执行。(例如4个上传线程)
警告!:线程间的并行化(步骤2)仍在开发中。我还在研究tokio
库。:)
自定义 数据
作为次要目标。我们在解析的同时对数据进行标准化。
这非常多变,取决于两个方面
- 数据库及其使用的数据类型。
- 我们要上传的数据集以及我们迄今为止看到的数据类型。
因此,我们当前的过程是
- 解析为JSON数据类型
- 删除任何空字符串
- 解析 "False" -> false, "True" -> true
- 在字符串中替换 ' 并再次尝试解析(因为有些数据集是这样的)
支持的数据库(目前)
- RethinkDB
数据已测试
依赖项
~18–32MB
~576K SLoC