Apache Presto - Connettore MySQL

Il connettore MySQL viene utilizzato per interrogare un database MySQL esterno.

Prerequisiti

Installazione del server MySQL.

Impostazioni di configurazione

Si spera che tu abbia installato il server mysql sulla tua macchina. Per abilitare le proprietà mysql sul server Presto, è necessario creare un file“mysql.properties” nel “etc/catalog”directory. Immettere il seguente comando per creare un file mysql.properties.

$ cd etc 
$ cd catalog 
$ vi mysql.properties   

connector.name = mysql 
connection-url = jdbc:mysql://localhost:3306 
connection-user = root 
connection-password = pwd

Salva il file e chiudi il terminale. Nel file sopra, devi inserire la tua password mysql nel campo password di connessione.

Crea database in MySQL Server

Apri il server MySQL e crea un database utilizzando il seguente comando.

create database tutorials

Ora hai creato il database dei "tutorial" nel server. Per abilitare il tipo di database, utilizzare il comando "usa tutorial" nella finestra della query.

Crea tabella

Creiamo una semplice tabella sul database dei "tutorial".

create table author(auth_id int not null, auth_name varchar(50),topic varchar(100))

Inserisci tabella

Dopo aver creato una tabella, inserisci tre record utilizzando la seguente query.

insert into author values(1,'Doug Cutting','Hadoop') 
insert into author values(2,’James Gosling','java') 
insert into author values(3,'Dennis Ritchie’,'C')

Seleziona Record

Per recuperare tutti i record, digita la seguente query.

Query

select * from author

Risultato

auth_id    auth_name      topic  
1        Doug Cutting     Hadoop 
2        James Gosling    java 
3        Dennis Ritchie     C

A partire da ora, hai interrogato i dati utilizzando il server MySQL. Colleghiamo il plug-in di archiviazione Mysql al server Presto.

Connetti Presto CLI

Digita il seguente comando per connettere il plugin MySql su Presto CLI.

./presto --server localhost:8080 --catalog mysql --schema tutorials

Riceverai la seguente risposta.

presto:tutorials>

Qui “tutorials” si riferisce allo schema nel server mysql.

Schemi di elenco

Per elencare tutti gli schemi in mysql, digitare la seguente query nel server Presto.

Query

presto:tutorials> show schemas from mysql;

Risultato

Schema 
-------------------- 
 information_schema 
 performance_schema 
 sys 
 tutorials

Da questo risultato, possiamo concludere i primi tre schemi come predefiniti e l'ultimo come creato da te.

Elenca tabelle dallo schema

La seguente query elenca tutte le tabelle nello schema dei tutorial.

Query

presto:tutorials> show tables from mysql.tutorials;

Risultato

Table 
-------- 
 author

Abbiamo creato solo una tabella in questo schema. Se hai creato più tabelle, verranno elencate tutte le tabelle.

Descrivi la tabella

Per descrivere i campi della tabella, digita la seguente query.

Query

presto:tutorials> describe mysql.tutorials.author;

Risultato

Column   |     Type     | Comment 
-----------+--------------+--------- 
 auth_id   | integer      | 
 auth_name | varchar(50)  | 
 topic     | varchar(100) |

Mostra colonne dalla tabella

Query

presto:tutorials> show columns from mysql.tutorials.author;

Risultato

Column    |     Type     | Comment 
-----------+--------------+--------- 
 auth_id   | integer      | 
 auth_name | varchar(50)  | 
 topic     | varchar(100) |

Accedi ai record della tabella

Per recuperare tutti i record dalla tabella mysql, emettere la seguente query.

Query

presto:tutorials> select * from mysql.tutorials.author;

Risultato

auth_id  |   auth_name    | topic 
---------+----------------+-------- 
       1 | Doug Cutting   | Hadoop 
       2 | James Gosling  | java 
       3 | Dennis Ritchie | C

Da questo risultato, puoi recuperare i record del server mysql in Presto.

Crea tabella usando come comando

Il connettore Mysql non supporta la creazione di query di tabella ma puoi creare una tabella utilizzando come comando.

Query

presto:tutorials> create table mysql.tutorials.sample as 
select * from mysql.tutorials.author;

Risultato

CREATE TABLE: 3 rows

Non puoi inserire righe direttamente perché questo connettore ha alcune limitazioni. Non può supportare le seguenti query:

  • create
  • insert
  • update
  • delete
  • drop

Per visualizzare i record nella tabella appena creata, digita la seguente query.

Query

presto:tutorials> select * from mysql.tutorials.sample;

Risultato

auth_id  |   auth_name    | topic 
---------+----------------+-------- 
       1 | Doug Cutting   | Hadoop 
       2 | James Gosling  | java 
       3 | Dennis Ritchie | C