【发布时间】:2018-11-07 01:33:58
【问题描述】:
我正在尝试将一个大型 CSV 文件导入 MySQL 数据库。表不会更新。那么是否有一种工具(或方法)可以扫描 CSV 文件并自动建议最佳架构?例如,如果一列的最长字符串的长度为 15,则建议的架构将是 CHAR(16)。如果一列仅包含非负整数,则建议的架构将是 UNSIGNED。
【问题讨论】:
-
你能告诉我们你到目前为止的尝试吗?
我正在尝试将一个大型 CSV 文件导入 MySQL 数据库。表不会更新。那么是否有一种工具(或方法)可以扫描 CSV 文件并自动建议最佳架构?例如,如果一列的最长字符串的长度为 15,则建议的架构将是 CHAR(16)。如果一列仅包含非负整数,则建议的架构将是 UNSIGNED。
【问题讨论】:
我创建的几个 Python 工具可能会有所帮助。
execsql.py 是一个 SQL 脚本客户端,它会在导入 CSV 文件时自动为它创建适当的表模式(使用 IMPORT 元命令),并且可以显示将要创建的表模式,但不能显示使用WRITE CREATE_TABLE 元命令实际导入数据。
chkcsv.py 扫描 CSV 文件并报告与文件中每一列的不同数据类型匹配的行数。这对于识别仅包含一些与预期数据类型不匹配的古怪数据值的数据列很有用。
其他类似的工具可能在其他语言存储库中可用。
【讨论】: