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