sql >> Databasteknik >  >> RDS >> Mysql

Sätt upp en stor databas i MySQL för analys i R

Dokumentationen för RMySQL är ganska bra - men den förutsätter att du kan grunderna i SQL. Dessa är:

  • skapa en databas
  • skapa en tabell
  • få in data i tabellen
  • få ut data från tabellen

Steg 1 är enkelt:i MySQL-konsolen, helt enkelt "skapa databasen DBNAME". Eller från kommandoraden, använd mysqladmin , eller så finns det ofta MySQL admin GUI.

Steg 2 är lite svårare, eftersom du måste ange tabellfälten och deras typ. Detta beror på innehållet i din CSV-fil (eller annan avgränsad fil). Ett enkelt exempel skulle se ut ungefär så här:

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

Vilket säger skapa en tabell med 2 fält:id , som kommer att vara den primära nyckeln (måste alltså vara unik) och kommer att öka automatiskt när nya poster läggs till; och höjd , som här anges som ett flytande (en numerisk typ), med totalt 3 siffror och 2 efter decimaltecknet (t.ex. 100,27). Det är viktigt att du förstår datatyper .

Steg 3 - det finns olika sätt att importera data till en tabell. En av de enklaste är att använda mysqlimport verktyg. I exemplet ovan, förutsatt att dina data finns i en fil med samma namn som tabellen (mydata), den första kolumnen ett tabbtecken och den andra höjdvariabeln (utan rubrikrad), skulle detta fungera:

mysqlimport -u DBUSERNAME -pDBPASSWORD DBNAME mydata

Steg 4 - kräver att du vet hur man kör MySQL-frågor. Återigen, ett enkelt exempel:

select * from mydata where height > 50;

Betyder "hämta alla rader (id + höjd) från tabellen mydata där höjden är mer än 50".

När du har bemästrat dessa grunder kan du gå till mer komplexa exempel som att skapa två eller fler tabeller och köra frågor som sammanfogar data från var och en.

Sedan - du kan vända dig till RMySQL-manualen. I RMySQL ställer du in databasanslutningen och använder sedan SQL-frågesyntax för att returnera rader från tabellen som en dataram. Så det är verkligen viktigt att du får SQL-delen - RMySQL-delen är lätt.

Det finns massor av MySQL- och SQL-tutorials på webben, inklusive den "officiella" handledning på MySQL-webbplatsen. Sök bara på Google "mysql tutorial".

Personligen anser jag inte alls att 80 Mb är en stor datamängd; Jag är förvånad över att detta orsakar ett RAM-problem och jag är säker på att inbyggda R-funktioner kan hantera det ganska enkelt. Men det är bra att lära sig nya färdigheter som SQL, även om du inte behöver dem för det här problemet.



  1. merge update oracle kan inte få en stabil uppsättning rader

  2. Konvertera avgränsad sträng till flera värden i mysql

  3. Använda Microsoft DiskSpd för att testa ditt lagringsundersystem

  4. SQLDeveloper visar inga tabeller under anslutningar där det står tabeller