- Apache Presto 教程
- Apache Presto - 首页
- Apache Presto - 概述
- Apache Presto - 架构
- Apache Presto - 安装
- Apache Presto - 配置
- Apache Presto - 管理
- Apache Presto - SQL 操作
- Apache Presto - SQL 函数
- Apache Presto - MySQL 连接器
- Apache Presto - JMX 连接器
- Apache Presto - Hive 连接器
- Apache Presto - Kafka 连接器
- Apache Presto - JDBC 接口
- 自定义函数应用
- Apache Presto 有用资源
- Apache Presto - 快速指南
- Apache Presto - 有用资源
- Apache Presto - 讨论
Apache Presto - MySQL 连接器
MySQL 连接器用于查询外部 MySQL 数据库。
先决条件
MySQL 服务器安装。
配置设置
希望您已在您的机器上安装了 MySQL 服务器。要在 Presto 服务器上启用 MySQL 属性,您必须在 **“etc/catalog”** 目录中创建一个名为 **“mysql.properties”** 的文件。执行以下命令创建 mysql.properties 文件。
$ cd etc $ cd catalog $ vi mysql.properties connector.name = mysql connection-url = jdbc:mysql://127.0.0.1:3306 connection-user = root connection-password = pwd
保存文件并退出终端。在上述文件中,您必须在 connection-password 字段中输入您的 MySQL 密码。
在 MySQL 服务器中创建数据库
打开 MySQL 服务器并使用以下命令创建数据库。
create database tutorials
现在您已在服务器中创建了“tutorials”数据库。要启用数据库类型,请在查询窗口中使用命令“use tutorials”。
创建表
让我们在“tutorials”数据库上创建一个简单的表。
create table author(auth_id int not null, auth_name varchar(50),topic varchar(100))
插入数据到表
创建表后,使用以下查询插入三条记录。
insert into author values(1,'Doug Cutting','Hadoop') insert into author values(2,’James Gosling','java') insert into author values(3,'Dennis Ritchie’,'C')
选择记录
要检索所有记录,请键入以下查询。
查询
select * from author
结果
auth_id auth_name topic 1 Doug Cutting Hadoop 2 James Gosling java 3 Dennis Ritchie C
截至目前,您已使用 MySQL 服务器查询了数据。让我们将 Mysql 存储插件连接到 Presto 服务器。
连接 Presto CLI
键入以下命令以在 Presto CLI 上连接 MySql 插件。
./presto --server localhost:8080 --catalog mysql --schema tutorials
您将收到以下响应。
presto:tutorials>
这里 **“tutorials”** 指的是 MySQL 服务器中的模式。
列出模式
要在 Presto 服务器中列出所有 MySQL 模式,请键入以下查询。
查询
presto:tutorials> show schemas from mysql;
结果
Schema -------------------- information_schema performance_schema sys tutorials
从结果中,我们可以得出结论,前三个模式是预定义的,最后一个是您自己创建的。
列出模式中的表
以下查询列出 tutorials 模式中的所有表。
查询
presto:tutorials> show tables from mysql.tutorials;
结果
Table -------- author
我们只在这个模式中创建了一个表。如果您创建了多个表,它将列出所有表。
描述表
要描述表字段,请键入以下查询。
查询
presto:tutorials> describe mysql.tutorials.author;
结果
Column | Type | Comment -----------+--------------+--------- auth_id | integer | auth_name | varchar(50) | topic | varchar(100) |
显示表中的列
查询
presto:tutorials> show columns from mysql.tutorials.author;
结果
Column | Type | Comment -----------+--------------+--------- auth_id | integer | auth_name | varchar(50) | topic | varchar(100) |
访问表记录
要从 MySQL 表中获取所有记录,请执行以下查询。
查询
presto:tutorials> select * from mysql.tutorials.author;
结果
auth_id | auth_name | topic ---------+----------------+-------- 1 | Doug Cutting | Hadoop 2 | James Gosling | java 3 | Dennis Ritchie | C
从结果中,您可以在 Presto 中检索 MySQL 服务器记录。
使用 AS 命令创建表
Mysql 连接器不支持 create table 查询,但您可以使用 as 命令创建表。
查询
presto:tutorials> create table mysql.tutorials.sample as select * from mysql.tutorials.author;
结果
CREATE TABLE: 3 rows
您不能直接插入行,因为此连接器有一些限制。它不支持以下查询:
- 创建
- 插入
- 更新
- 删除
- 删除
要查看新创建表中的记录,请键入以下查询。
查询
presto:tutorials> select * from mysql.tutorials.sample;
结果
auth_id | auth_name | topic ---------+----------------+-------- 1 | Doug Cutting | Hadoop 2 | James Gosling | java 3 | Dennis Ritchie | C