Domanda

Sono esportare dati da un database SQL e l'importazione in R. Questo è un processo in due fasi da quando ho (automaticamente) scaricare i dati su un disco rigido e quindi importare il file con R.

Al momento, sto usando file CSV per salvare i dati. supporti vacanza CSV. Ma csv non supporta le informazioni sul tipo. Questo lo rende a volte ingombrante per caricare un file CSV perché devo controllare tutti i tipi di colonne. Questo sembra inutile perché il database SQL specifica già i tipi delle colonne.

Vorrei sapere se esiste un formato di file ampiamente accettato per salvare i dati che specifica anche il tipo delle colonne.

Al momento sto lavorando con i database SQL, FME ETL'ing e R, ma credo che questo è un problema per tutti i transfer di dati.

È stato utile?

Soluzione

Penso che dipende dalle vostre esigenze. Lettura / scrittura, Stile minimalista / non di tipo sparse, ...? Ci sono molte alternative.

In realtà comune è SQLite, il " più diffusa e motore di database utilizzato ", un piccolo database relazionale, in questi giorni usati dietro le quinte da molti open source e pacchetti software commerciali con esigenze di archiviazione dei dati (ad esempio, Adobe Lightroom, Mozilla Firefox).

Dalla cima della mia testa:

Se si lavora con R e Python:

Il piuma software è stato progettato per un veloce dei dati-frame serializzazione. E 'attualmente disponibile per R e pitone. autorità Due R e Python progettati in una collaborazione. E 'costruito in cima "Apache Arrow" e / o " buffer di protocollo ", è veloce per la lettura, ma è in alpha dello stato.

Ci sono alcuni formati di serializzazione disponibili dalla comunità XML. È possibile memorizzare reti complesse di oggetti in questi formati.

C'è JSON e JSON-schema.

Se le tabelle sono scarsi, non v'è, per esempio, il formato "sparse ARFF" (a poco, però). Ci devono essere altri ( devo guardare questo in su me stesso )

Altri suggerimenti

Parquet e Avro entrambi i tipi di dati di supporto (stringhe, interi, galleggianti, etc). Questi sono i tipi di file primari utilizzati per progetti "Big Data", anche se i dati non deve essere grande. Apache Spark è in grado di leggere sia con facilità. Detto questo, io sono un grande fan di mantenere i dati in un database SQL (ad esempio, MySQL o Postgres) perché questo è ciò che essi sono costruiti per. Se non è possibile riutilizzare il database che si sta tirando da, si potrebbe rendere il proprio database in locale o su un server separato? Vorrei provare a utilizzare un database relazionale fino a quando i dati supera i 50 GB (una arbitrariamente "un po 'di grandi dimensioni" size), e quindi vorrei usare Avro o in parquet.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top