ApachePresto-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

これで、サーバーに「チュートリアル」データベースが作成されました。データベースタイプを有効にするには、クエリウィンドウで「チュートリアルを使用」コマンドを使用します。

テーブルを作成する

「チュートリアル」データベースに簡単なテーブルを作成しましょう。

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サーバーに接続しましょう。

PrestoCLIに接続します

次のコマンドを入力して、PrestoCLIで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

この結果から、最初の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サーバーレコードを取得できます。

コマンドとして使用してテーブルを作成する

Mysqlコネクタはテーブルの作成クエリをサポートしていませんが、asコマンドを使用してテーブルを作成できます。

クエリ

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