28 个版本
0.8.13 | 2024年7月19日 |
---|---|
0.8.11 | 2024年6月18日 |
0.8.9 | 2024年2月10日 |
0.8.8 | 2023年10月2日 |
0.7.0 | 2022年11月25日 |
#791 在 解析器实现
每月1,106 次下载
在 3 个crate中(直接使用2个)
2.5MB
4.5K SLoC
到 Python 版本 的库。
lib.rs
:
快速将 CSV 文件转换为 XLSX/SQLITE/POSTGRESQL/PARQUET。
目标
- 对 CSV 列进行彻底的类型猜测,因此无需为每个字段配置类型。首先扫描整个文件以确保列中的所有类型都一致。可以检测超过 30 种日期/时间格式以及 JSON 数据。
- 快速转换/类型猜测(底层使用 rust)。针对每种输出格式使用特定的快速方法
copy
用于 postgres- 使用 c API 的 sqlite 预处理语句。
- parquet 的 Arrow 读取器
- libxlsxwriter 的仅写模式
- 尝试通过回退到 "text" 来限制将数据插入数据库时的错误,如果类型猜测无法确定更具体的类型。
- 当向现有数据库插入时,自动迁移目标数据库的模式以允许新数据(
evolve
选项)。 - 内存高效。所有 csvs 和输出都是流式传输的,因此所有转换应该占用非常少的内存。
- 将有关 CSV 文件的信息和统计信息收集到 datapacakge.json 文件中,该文件可以用于自定义转换。
缺点
- CSV 文件目前需要标题行。
- 整个文件需要位于磁盘上,因为整个 CSV 都进行分析,因此文件被读取两次。
依赖关系
~10–29MB
~421K SLoC