Apache Presto - Conector MySQL

O conector MySQL é usado para consultar um banco de dados MySQL externo.

Pré-requisitos

Instalação do servidor MySQL.

Definições de configuração

Esperançosamente, você instalou o servidor mysql em sua máquina. Para habilitar as propriedades do mysql no servidor Presto, você deve criar um arquivo“mysql.properties” dentro “etc/catalog”diretório. Emita o seguinte comando para criar um arquivo mysql.properties.

$ cd etc 
$ cd catalog 
$ vi mysql.properties   

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

Salve o arquivo e saia do terminal. No arquivo acima, você deve inserir sua senha mysql no campo de senha de conexão.

Criar banco de dados no servidor MySQL

Abra o servidor MySQL e crie um banco de dados usando o seguinte comando.

create database tutorials

Agora você criou o banco de dados de “tutoriais” no servidor. Para habilitar o tipo de banco de dados, use o comando “usar tutoriais” na janela de consulta.

Criar a tabela

Vamos criar uma tabela simples no banco de dados “tutoriais”.

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

Insira a tabela

Depois de criar uma tabela, insira três registros usando a seguinte consulta.

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

Selecionar registros

Para recuperar todos os registros, digite a seguinte consulta.

Inquerir

select * from author

Resultado

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

A partir de agora, você consultou dados usando o servidor MySQL. Vamos conectar o plugin de armazenamento Mysql ao servidor Presto.

Conectar Presto CLI

Digite o seguinte comando para conectar o plugin MySql no Presto CLI.

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

Você receberá a seguinte resposta.

presto:tutorials>

Aqui “tutorials” refere-se ao esquema no servidor mysql.

Esquemas de lista

Para listar todos os esquemas no mysql, digite a seguinte consulta no servidor Presto.

Inquerir

presto:tutorials> show schemas from mysql;

Resultado

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

A partir deste resultado, podemos concluir os três primeiros esquemas como predefinidos e o último como criado por você.

Listar tabelas do esquema

A consulta a seguir lista todas as tabelas no esquema de tutoriais.

Inquerir

presto:tutorials> show tables from mysql.tutorials;

Resultado

Table 
-------- 
 author

Criamos apenas uma tabela neste esquema. Se você criou várias tabelas, ele listará todas as tabelas.

Descrever Tabela

Para descrever os campos da tabela, digite a seguinte consulta.

Inquerir

presto:tutorials> describe mysql.tutorials.author;

Resultado

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

Mostrar colunas da tabela

Inquerir

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

Resultado

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

Acessar registros da tabela

Para buscar todos os registros da tabela mysql, execute a seguinte consulta.

Inquerir

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

Resultado

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

A partir deste resultado, você pode recuperar os registros do servidor mysql no Presto.

Criar tabela usando como comando

O conector Mysql não suporta a criação de consulta de tabela, mas você pode criar uma tabela usando como comando.

Inquerir

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

Resultado

CREATE TABLE: 3 rows

Você não pode inserir linhas diretamente porque este conector tem algumas limitações. Não pode suportar as seguintes perguntas -

  • create
  • insert
  • update
  • delete
  • drop

Para visualizar os registros na tabela recém-criada, digite a seguinte consulta.

Inquerir

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

Resultado

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