高效的数据导入 PostgreSQL DB
Efficient data import PostgreSQL DB
我刚刚设计了一个 Pg 数据库,需要选择一种用数据填充我的数据库的方式,数据由 txt 和 csv 文件组成,但通常可以是任何类型的包含带分隔符的字符的文件,我正在编程java 为了使数据具有相同的结构(有很多不同类型的文件,我需要找到文件的每一列代表什么,以便我可以将它与我的数据库的一列相关联)我想到了两种方式:
将文件转换为同一种类型的文件(JSON),然后让数据库定期检查JSON文件并导入其内容。
通过 JDBC 直接连接到数据库,将字符串发送到数据库(我仍然需要创建一个备份文件,其中包含插入到数据库中的内容,因此在这两种情况下都有一个文件已创建并写入)。
在时间效率方面,您会选择哪个?我有点想使用第一个,因为在数据库中处理 json 文件会更容易。
如果您有任何其他建议,也欢迎!
JSON 或 CSV
如果您可以自由地将数据转换为 CSV 或 JSON 格式,可以选择 CSV。这是因为您随后将能够使用 COPY FROM 将大量数据一次批量加载到 postgresql 中。
COPY
支持 CSV,但 JSON 不支持。
直接插入值。
如果您只需要插入几条(甚至几千条)记录但不适合大量记录,因为它会很慢,可以采用这种方法。
如果您选择这种方法,您可以使用 COPY TO 创建备份。但是,如果您觉得需要使用 java 代码创建备份文件。选择 CSV 格式意味着您将能够像上面讨论的那样批量加载。
我刚刚设计了一个 Pg 数据库,需要选择一种用数据填充我的数据库的方式,数据由 txt 和 csv 文件组成,但通常可以是任何类型的包含带分隔符的字符的文件,我正在编程java 为了使数据具有相同的结构(有很多不同类型的文件,我需要找到文件的每一列代表什么,以便我可以将它与我的数据库的一列相关联)我想到了两种方式:
将文件转换为同一种类型的文件(JSON),然后让数据库定期检查JSON文件并导入其内容。
通过 JDBC 直接连接到数据库,将字符串发送到数据库(我仍然需要创建一个备份文件,其中包含插入到数据库中的内容,因此在这两种情况下都有一个文件已创建并写入)。
在时间效率方面,您会选择哪个?我有点想使用第一个,因为在数据库中处理 json 文件会更容易。 如果您有任何其他建议,也欢迎!
JSON 或 CSV
如果您可以自由地将数据转换为 CSV 或 JSON 格式,可以选择 CSV。这是因为您随后将能够使用 COPY FROM 将大量数据一次批量加载到 postgresql 中。
COPY
支持 CSV,但 JSON 不支持。
直接插入值。
如果您只需要插入几条(甚至几千条)记录但不适合大量记录,因为它会很慢,可以采用这种方法。
如果您选择这种方法,您可以使用 COPY TO 创建备份。但是,如果您觉得需要使用 java 代码创建备份文件。选择 CSV 格式意味着您将能够像上面讨论的那样批量加载。