Apache Presto - MySQL Connector
Der MySQL-Connector wird zum Abfragen einer externen MySQL-Datenbank verwendet.
Voraussetzungen
Installation des MySQL-Servers.
Konfigurationseinstellungen
Hoffentlich haben Sie MySQL-Server auf Ihrem Computer installiert. Um die MySQL-Eigenschaften auf dem Presto-Server zu aktivieren, müssen Sie eine Datei erstellen“mysql.properties” im “etc/catalog”Verzeichnis. Geben Sie den folgenden Befehl ein, um eine Datei mysql.properties zu erstellen.
$ cd etc
$ cd catalog
$ vi mysql.properties
connector.name = mysql
connection-url = jdbc:mysql://localhost:3306
connection-user = root
connection-password = pwd
Speichern Sie die Datei und beenden Sie das Terminal. In der obigen Datei müssen Sie Ihr MySQL-Passwort in das Feld Verbindungskennwort eingeben.
Erstellen Sie eine Datenbank in MySQL Server
Öffnen Sie den MySQL-Server und erstellen Sie eine Datenbank mit dem folgenden Befehl.
create database tutorials
Jetzt haben Sie auf dem Server eine Datenbank mit Tutorials erstellt. Verwenden Sie zum Aktivieren des Datenbanktyps den Befehl "Tutorials verwenden" im Abfragefenster.
Tabelle erstellen
Lassen Sie uns eine einfache Tabelle in der Datenbank "Tutorials" erstellen.
create table author(auth_id int not null, auth_name varchar(50),topic varchar(100))
Tabelle einfügen
Fügen Sie nach dem Erstellen einer Tabelle drei Datensätze mit der folgenden Abfrage ein.
insert into author values(1,'Doug Cutting','Hadoop')
insert into author values(2,’James Gosling','java')
insert into author values(3,'Dennis Ritchie’,'C')
Wählen Sie Datensätze
Geben Sie die folgende Abfrage ein, um alle Datensätze abzurufen.
Abfrage
select * from author
Ergebnis
auth_id auth_name topic
1 Doug Cutting Hadoop
2 James Gosling java
3 Dennis Ritchie C
Ab sofort haben Sie Daten mit dem MySQL-Server abgefragt. Verbinden wir das MySQL-Speicher-Plugin mit dem Presto-Server.
Verbinden Sie Presto CLI
Geben Sie den folgenden Befehl ein, um das MySQL-Plugin über Presto CLI zu verbinden.
./presto --server localhost:8080 --catalog mysql --schema tutorials
Sie erhalten folgende Antwort.
presto:tutorials>
Hier “tutorials” verweist auf das Schema im MySQL-Server.
Listenschemata
Geben Sie die folgende Abfrage in Presto Server ein, um alle Schemas in MySQL aufzulisten.
Abfrage
presto:tutorials> show schemas from mysql;
Ergebnis
Schema
--------------------
information_schema
performance_schema
sys
tutorials
Aus diesem Ergebnis können wir die ersten drei Schemata als vordefiniert und das letzte als von Ihnen selbst erstellt schließen.
Listen aus dem Schema auflisten
Die folgende Abfrage listet alle Tabellen im Tutorial-Schema auf.
Abfrage
presto:tutorials> show tables from mysql.tutorials;
Ergebnis
Table
--------
author
Wir haben nur eine Tabelle in diesem Schema erstellt. Wenn Sie mehrere Tabellen erstellt haben, werden alle Tabellen aufgelistet.
Tabelle beschreiben
Geben Sie die folgende Abfrage ein, um die Tabellenfelder zu beschreiben.
Abfrage
presto:tutorials> describe mysql.tutorials.author;
Ergebnis
Column | Type | Comment
-----------+--------------+---------
auth_id | integer |
auth_name | varchar(50) |
topic | varchar(100) |
Spalten aus Tabelle anzeigen
Abfrage
presto:tutorials> show columns from mysql.tutorials.author;
Ergebnis
Column | Type | Comment
-----------+--------------+---------
auth_id | integer |
auth_name | varchar(50) |
topic | varchar(100) |
Zugriff auf Tabellendatensätze
Führen Sie die folgende Abfrage aus, um alle Datensätze aus der MySQL-Tabelle abzurufen.
Abfrage
presto:tutorials> select * from mysql.tutorials.author;
Ergebnis
auth_id | auth_name | topic
---------+----------------+--------
1 | Doug Cutting | Hadoop
2 | James Gosling | java
3 | Dennis Ritchie | C
Aus diesem Ergebnis können Sie MySQL-Serverdatensätze in Presto abrufen.
Tabelle mit Befehl erstellen
Der MySQL-Connector unterstützt keine Abfrage zum Erstellen von Tabellen, Sie können jedoch eine Tabelle mit dem Befehl as erstellen.
Abfrage
presto:tutorials> create table mysql.tutorials.sample as
select * from mysql.tutorials.author;
Ergebnis
CREATE TABLE: 3 rows
Sie können keine Zeilen direkt einfügen, da dieser Connector einige Einschränkungen aufweist. Die folgenden Abfragen können nicht unterstützt werden:
- create
- insert
- update
- delete
- drop
Geben Sie die folgende Abfrage ein, um die Datensätze in der neu erstellten Tabelle anzuzeigen.
Abfrage
presto:tutorials> select * from mysql.tutorials.sample;
Ergebnis
auth_id | auth_name | topic
---------+----------------+--------
1 | Doug Cutting | Hadoop
2 | James Gosling | java
3 | Dennis Ritchie | C