用类型信息保存数据最常用的格式是什么

数据挖掘 数据 数据库 数据格式
2021-10-03 15:19:03

我正在从 SQL 数据库导出数据并将其导入 R。这是一个两步过程,因为我首先(自动)将数据下载到硬盘驱动器,然后使用 R 导入文件。

目前,我正在使用 csv 文件来保存数据。每个人都支持 csv。但是 csv 不支持类型信息。这使得加载 csv 文件有时很麻烦,因为我必须检查所有列类型。这似乎没有必要,因为 SQL 数据库已经指定了列的类型。

我想知道是否有一种广泛接受的文件格式来保存还指定列类型的数据。

目前我正在使用 SQL 数据库、FME ETL'ing 和 R,但我认为这是每个数据传输的问题。

2个回答

Parquet 和 Avro 都支持数据类型(字符串、整数、浮点数等)。这些是用于“大数据”项目的主要文件类型,尽管您的数据不必很大。Apache Spark 能够轻松读取两者。话虽如此,我非常喜欢将数据保存在 SQL 数据库(例如 MySQL 或 Postgres)中,因为它们就是为此而构建的。如果您不能重用您从中提取的数据库,您可以在本地或单独的服务器上创建自己的数据库吗?我会尝试使用关系数据库,直到您的数据超过 50 GB(任意“有点大”的大小),然后我会使用 Avro 或 Parquet。

我认为这取决于您的要求。读/写,稀疏/非稀疏,...?有很多选择。

真正常见的是 SQLite,“最广泛部署和使用的数据库引擎”,一个小型关系数据库,如今被许多具有数据存储需求的开源和商业软件包(例如,Adobe Lightroom、Mozilla Firefox)在幕后使用.

从我的头顶:

如果您使用 R 和 python:

羽毛软件专为快速数据帧序列化而设计它目前可用于 R 和 python。两个 R 和 Python 权威合作设计了它。它建立在“Apache Arrow”和/或“ protocol buffers ”之上,读取速度很快,但处于 alpha 状态。

XML 社区提供了一些序列化格式。您可以以这些格式存储复杂的对象网络。

有 JSON 和 JSON 模式。

如果您的表是稀疏的,例如,“稀疏 ARFF”格式(虽然很少使用)。肯定还有其他人(我得自己查