Apache-presto-mysql-connector

提供:Dev Guides
移動先:案内検索

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