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