Pregunta

Estoy exportando datos de una base de datos SQL y lo importo a R. Este es un proceso de dos pasos ya que primero (automáticamente) descarto los datos a un disco duro y luego importo el archivo con R.

Actualmente, estoy usando archivos CSV para guardar los datos. Todo el mundo apoya el CSV. Pero CSV no admite información de tipo. Esto hace que a veces sea engorroso cargar un archivo CSV porque debo verificar todos los tipos de columnas. Esto parece innecesario porque la base de datos SQL ya especifica los tipos de columnas.

Quiero saber si hay un formato de archivo ampliamente aceptado para guardar datos que también especifican el tipo de columnas.

Actualmente estoy trabajando con bases de datos SQL, fme etl'ing y r, pero creo que este es un problema para cada transmisión de datos.

¿Fue útil?

Solución

Creo que depende de sus requisitos. Leer/escribir, escaso/no parque, ...? Hay muchas alternativas.

Realmente común es sqlite, el "El motor de base de datos más implementado y utilizado", una pequeña base de datos relacional, en estos días utilizada detrás de escena de muchos paquetes de software de código abierto y de software comercial con necesidades de almacenamiento de datos (por ejemplo, Adobe Lightroom, Mozilla Firefox).

Desde la parte superior de mi cabeza:

Si trabajas con R y Python:

los pluma El software fue diseñado para una serialización rápida de marco de datos. Actualmente está disponible para R y Python. Dos autoridades de R y Python lo diseñaron en una colaboración. Está construido sobre "Apache Arrow" y/o "buffer de protocolo", su rápido para leer, pero está en el estado alfa.

Hay algunos formatos de serialización disponibles en la comunidad XML. Puede almacenar redes complejas de objetos en estos formatos.

Hay JSON y JSON-SCHEMA.

Si sus tablas son escasas, existe, por ejemplo, formato de "arff escaso" (sin embargo, en poca utilidad). Debe haber otros (Tengo que buscar esto yo mismo)

Otros consejos

Parquet y Avro Tipos de datos de soporte (cadenas, enteros, flotadores, etc.). Estos son los tipos de archivos principales utilizados para proyectos de "big data", aunque sus datos no tienen que ser grandes. Apache Spark puede leer ambos con facilidad. Dicho esto, soy un gran admirador de mantener los datos en una base de datos SQL (por ejemplo, MySQL o Postgres) porque para eso están construidos. Si no puede reutilizar la base de datos de la que está sacando, ¿podría hacer su propia base de datos localmente o en un servidor separado? Intentaría usar una base de datos relacional hasta que sus datos excedan los 50 GB (un tamaño arbitrariamente "algo grande"), y luego usaría Avro o Parquet.

Licenciado bajo: CC-BY-SA con atribución
scroll top