Apache-presto-mysql-connector
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
ファイルを保存して、ターミナルを終了します。 上記のファイルでは、接続パスワードフィールドにmysqlパスワードを入力する必要があります。
MySQLサーバーでデータベースを作成する
MySQLサーバーを開き、次のコマンドを使用してデータベースを作成します。
create database tutorials
これで、サーバーに「チュートリアル」データベースが作成されました。 データベースタイプを有効にするには、クエリウィンドウでコマンド「use tutorials」を使用します。
テーブルを作成
「チュートリアル」データベースに簡単なテーブルを作成しましょう。
create table author(auth_id int not null, auth_name varchar(50),topic varchar(100))
テーブルを挿入
テーブルを作成したら、次のクエリを使用して3つのレコードを挿入します。
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>
ここで*「チュートリアル」*はmysqlサーバーのスキーマを指します。
スキーマのリスト
mysqlのすべてのスキーマをリストするには、Prestoサーバーで次のクエリを入力します。
問い合わせ
presto:tutorials> show schemas from mysql;
結果
Schema
--------------------
information_schema
performance_schema
sys
tutorials
この結果から、最初の3つのスキーマを定義済みとして、最後のスキーマを自分で作成したと結論付けることができます。
スキーマからテーブルを一覧表示する
次のクエリは、チュートリアルスキーマのすべてのテーブルをリストします。
問い合わせ
presto:tutorials> show tables from mysql.tutorials;
結果
Table
--------
author
このスキーマにはテーブルを1つだけ作成しました。 複数のテーブルを作成した場合、すべてのテーブルがリストされます。
テーブルの説明
テーブルフィールドを説明するには、次のクエリを入力します。
問い合わせ
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コネクタはテーブルクエリの作成をサポートしていませんが、asコマンドを使用してテーブルを作成できます。
問い合わせ
presto:tutorials> create table mysql.tutorials.sample as
select* from mysql.tutorials.author;
結果
CREATE TABLE: 3 rows
このコネクタにはいくつかの制限があるため、行を直接挿入することはできません。 次のクエリをサポートできません-
- つくる
- インサート
- 更新
- 削除する *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