Apache Presto-MySQL 커넥터
MySQL 커넥터는 외부 MySQL 데이터베이스를 쿼리하는 데 사용됩니다.
전제 조건
MySQL 서버 설치.
구성 설정
컴퓨터에 mysql 서버를 설치했으면합니다. Presto 서버에서 mysql 속성을 활성화하려면 파일을 생성해야합니다.“mysql.properties” 에 “etc/catalog”예배 규칙서. 다음 명령을 실행하여 mysql.properties 파일을 생성합니다.
$ cd etc
$ cd catalog
$ vi mysql.properties
connector.name = mysql
connection-url = jdbc:mysql://localhost:3306
connection-user = root
connection-password = pwd
파일을 저장하고 터미널을 종료합니다. 위 파일에서 connection-password 필드에 mysql 비밀번호를 입력해야합니다.
MySQL 서버에서 데이터베이스 생성
MySQL 서버를 열고 다음 명령을 사용하여 데이터베이스를 만듭니다.
create database 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 서버의 스키마를 나타냅니다.
스키마 나열
mysql의 모든 스키마를 나열하려면 Presto 서버에 다음 쿼리를 입력합니다.
질문
presto:tutorials> show schemas from mysql;
결과
Schema
--------------------
information_schema
performance_schema
sys
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 커넥터는 테이블 생성 쿼리를 지원하지 않지만 명령으로 테이블을 생성 할 수 있습니다.
질문
presto:tutorials> create table mysql.tutorials.sample as
select * from mysql.tutorials.author;
결과
CREATE TABLE: 3 rows
이 커넥터에는 몇 가지 제한 사항이 있으므로 행을 직접 삽입 할 수 없습니다. 다음 쿼리를 지원할 수 없습니다-
- create
- insert
- update
- delete
- drop
새로 생성 된 테이블의 레코드를 보려면 다음 쿼리를 입력합니다.
질문
presto:tutorials> select * from mysql.tutorials.sample;
결과
auth_id | auth_name | topic
---------+----------------+--------
1 | Doug Cutting | Hadoop
2 | James Gosling | java
3 | Dennis Ritchie | C