Apache Presto - Trình kết nối MySQL

Trình kết nối MySQL được sử dụng để truy vấn cơ sở dữ liệu MySQL bên ngoài.

Điều kiện tiên quyết

Cài đặt máy chủ MySQL.

Thiết lập cấu hình

Hy vọng rằng bạn đã cài đặt máy chủ mysql trên máy của mình. Để bật thuộc tính mysql trên máy chủ Presto, bạn phải tạo một tệp“mysql.properties” trong “etc/catalog”danh mục. Đưa ra lệnh sau để tạo tệp mysql.properties.

$ cd etc 
$ cd catalog 
$ vi mysql.properties   

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

Lưu tệp và thoát khỏi thiết bị đầu cuối. Trong tệp trên, bạn phải nhập mật khẩu mysql của mình vào trường mật khẩu kết nối.

Tạo cơ sở dữ liệu trong MySQL Server

Mở máy chủ MySQL và tạo cơ sở dữ liệu bằng lệnh sau.

create database tutorials

Bây giờ bạn đã tạo cơ sở dữ liệu "hướng dẫn" trong máy chủ. Để bật kiểu cơ sở dữ liệu, hãy sử dụng lệnh "sử dụng hướng dẫn" trong cửa sổ truy vấn.

Tạo bảng

Hãy tạo một bảng đơn giản trên cơ sở dữ liệu "hướng dẫn".

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

Chèn bảng

Sau khi tạo bảng, hãy chèn ba bản ghi bằng truy vấn sau.

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

Chọn bản ghi

Để truy xuất tất cả các bản ghi, hãy nhập truy vấn sau.

Truy vấn

select * from author

Kết quả

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

Hiện tại, bạn có dữ liệu được truy vấn bằng máy chủ MySQL. Hãy kết nối plugin lưu trữ Mysql với máy chủ Presto.

Kết nối Presto CLI

Gõ lệnh sau để kết nối plugin MySql trên Presto CLI.

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

Bạn sẽ nhận được phản hồi sau.

presto:tutorials>

Đây “tutorials” đề cập đến lược đồ trong máy chủ mysql.

Liệt kê các lược đồ

Để liệt kê tất cả các lược đồ trong mysql, hãy nhập truy vấn sau vào máy chủ Presto.

Truy vấn

presto:tutorials> show schemas from mysql;

Kết quả

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

Từ kết quả này, chúng ta có thể kết luận ba lược đồ đầu tiên là được xác định trước và lược đồ cuối cùng do chính bạn tạo ra.

Liệt kê các bảng từ Lược đồ

Truy vấn sau liệt kê tất cả các bảng trong lược đồ hướng dẫn.

Truy vấn

presto:tutorials> show tables from mysql.tutorials;

Kết quả

Table 
-------- 
 author

Chúng tôi chỉ tạo một bảng trong lược đồ này. Nếu bạn đã tạo nhiều bảng, nó sẽ liệt kê tất cả các bảng.

Mô tả bảng

Để mô tả các trường bảng, hãy nhập truy vấn sau.

Truy vấn

presto:tutorials> describe mysql.tutorials.author;

Kết quả

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

Hiển thị các cột từ bảng

Truy vấn

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

Kết quả

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

Truy cập Bản ghi Bảng

Để tìm nạp tất cả các bản ghi từ bảng mysql, hãy đưa ra truy vấn sau.

Truy vấn

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

Kết quả

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

Từ kết quả này, bạn có thể truy xuất bản ghi máy chủ mysql trong Presto.

Tạo bảng bằng cách sử dụng lệnh

Trình kết nối Mysql không hỗ trợ tạo truy vấn bảng nhưng bạn có thể tạo bảng bằng lệnh.

Truy vấn

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

Kết quả

CREATE TABLE: 3 rows

Bạn không thể chèn hàng trực tiếp vì trình kết nối này có một số hạn chế. Nó không thể hỗ trợ các truy vấn sau:

  • create
  • insert
  • update
  • delete
  • drop

Để xem các bản ghi trong bảng mới được tạo, hãy nhập truy vấn sau.

Truy vấn

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

Kết quả

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