sql >> Database >  >> RDS >> Mysql

Grote database opzetten in MySQL voor analyse in R

De documentatie voor RMySQL is redelijk goed, maar er wordt wel vanuit gegaan dat je de basis van SQL kent. Dit zijn:

  • een database maken
  • een tafel maken
  • gegevens in de tabel krijgen
  • gegevens uit de tabel halen

Stap 1 is eenvoudig:in de MySQL-console, eenvoudig "database DBNAME maken". Of gebruik vanaf de opdrachtregel mysqladmin , of er zijn vaak MySQL-beheerders-GUI's.

Stap 2 is iets moeilijker, omdat je de tabelvelden en hun type moet specificeren. Dit is afhankelijk van de inhoud van uw CSV-bestand (of een ander gescheiden bestand). Een eenvoudig voorbeeld zou er ongeveer zo uitzien:

use DBNAME;
create table mydata(
  id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  height FLOAT(3,2)
); 

Die zegt maak een tabel met 2 velden:id , die de primaire sleutel zal zijn (dus uniek moet zijn) en automatisch wordt verhoogd als nieuwe records worden toegevoegd; en hoogte , die hier wordt gespecificeerd als een float (een numeriek type), met in totaal 3 cijfers en 2 achter de komma (bijv. 100,27). Het is belangrijk dat u gegevenstypen begrijpt .

Stap 3 - er zijn verschillende manieren om gegevens naar een tabel te importeren. Een van de gemakkelijkste is om de mysqlimport . te gebruiken nut. In het bovenstaande voorbeeld, ervan uitgaande dat uw gegevens zich in een bestand bevinden met dezelfde naam als de tabel (mijngegevens), de eerste kolom een ​​tab-teken en de tweede de hoogtevariabele (zonder koprij), zou dit werken:

mysqlimport -u DBUSERNAME -pDBPASSWORD DBNAME mydata

Stap 4 - vereist dat u weet hoe u MySQL-query's moet uitvoeren. Nogmaals, een eenvoudig voorbeeld:

select * from mydata where height > 50;

Betekent "haal alle rijen (id + hoogte) op uit de tabel mydata waar de hoogte meer dan 50 is".

Als je die basis eenmaal onder de knie hebt, kun je overstappen op complexere voorbeelden, zoals het maken van 2 of meer tabellen en het uitvoeren van query's die gegevens van elk samenvoegen.

Dan - kunt u zich wenden tot de RMySQL-handleiding. In RMySQL stelt u de databaseverbinding in en gebruikt u vervolgens de SQL-querysyntaxis om rijen uit de tabel als een gegevensframe te retourneren. Het is dus echt belangrijk dat u het SQL-gedeelte krijgt - het RMySQL-gedeelte is eenvoudig.

Er zijn enorm veel MySQL- en SQL-tutorials op internet, waaronder de "officiële" zelfstudie op de MySQL-website. Zoek gewoon op Google naar "mysql-zelfstudie".

Persoonlijk beschouw ik 80 Mb helemaal niet als een grote dataset; Het verbaast me dat dit een RAM-probleem veroorzaakt en ik weet zeker dat native R-functies dit vrij gemakkelijk aankunnen. Maar het is goed om nieuwe vaardigheden zoals SQL te leren, zelfs als je ze niet nodig hebt voor dit probleem.



  1. Java krijgt ResultSet van SQL Array is mislukt

  2. #1055 - Expressie van de SELECT-lijst staat niet in de GROUP BY-clausule en bevat een niet-geaggregeerde kolom. Dit is niet compatibel met sql_mode=only_full_group_by

  3. Probleem met Mysql-query

  4. Selecteer verklaring uit meerdere tabellen, met variabele invoer