LoginSignup
0
0

More than 1 year has passed since last update.

AlteryxでRDSとCloud SQLに接続

Posted at

はじめに

Alteryxで、色々なデータソースとつないでみています。

今回はRDBサービスである、AWSのRDSと、GCPのCloud SQLとつなぎました。

概要

  • 両方ともMySQLで試行
  • ODBCを用いての接続なので、その点がちゃんとしていれば問題なく接続
  • 出力オプションについては、いろいろあるので注意
    • 「気づかない間にフォーカスが当たっていて、マウスホイールを回して変更してしまう」という事故をやらないように…

RDS

環境構築

以下をコンソールから作成します。

  • VPC
  • パブリックサブネット2つ
    • サブネットグループを作る際に2つ以上必要だったため
  • セキュリティグループ
  • サブネットグループ
  • RDS
    • MySQL

以下を自PCにインストールしておきます。

  • MySQLのODBCドライバ

VPC

現在のコンソールからだと、サブネットも一緒に作ってくれます。
image.png
AZ2つで、パブリックサブネットも2つにします。
image.png
他の設定はほぼデフォルトで、VPCを作成します。
image.png

セキュリティグループ作成

インバウンドに、MySQLの通信を接続元のIPで許可します。
image.png

サブネットグループ作成

RDSのコンソールから、先に作成された2つのサブネットを指定して作成します。
image.png

RDS作成

MySQLを選択します
image.png
試用なので、単一のDBインスタンスです。
image.png

インスタンスは最安価ので作成。
image.png
ストレージも最小で。
image.png
作成したVPCとサブネットグループを指定。
image.png
自PCからのアクセスなのでパブリック接続とし、セキュリティグループも作成したものを選択します。
image.png
接続はパスワード認証で。
image.png
試用なのでいろいろOFFに。
image.png
CREATE DATABASEも、この時点で出来てしまうので、一緒に作ってもらいます。
image.png

ODBCドライバ

以下のページを参考にインストールしました。

ダウンロードはアカウントを作らなくても、以下の箇所から可能です。
image.png

設定は以下のページを参考にしました。

ドライバは二つ入っていたので、Unicode Driverの方を使いました
image.png

接続先のサーバはRDSのコンソールで確認できるものをセットし、User/PasswordとDatabaseも作成時のものをセットしました。
image.png

CREATE TABLE

以下のSQLでテーブルを作ります。
私はいつも、DBeaverを使っています。

CREATE TABLE alteryx.hoshiiro2_cast
(
	 話数	varchar(100)
	,パート	varchar(100)
	,ポプ子	varchar(100)
	,ピピ美	varchar(100)
)

以下のデータをあらかじめ入れておきます。

話数,パート,ポプ子,ピピ美
第1話,前半,平野綾,茅原実里
第1話,後半,井上和彦,堀川りょう
第2話,前半,朴璐美,釘宮理恵
第2話,後半,檜山修之,森川智之

入力

Alteryxでデータ入力ツールをドロップし、データ接続-データソースに、MySQLを指定します。
image.png
先程作ったデータソースを選択し、ユーザ名とパスワードを入れます。
image.png
ビジュアルクエリエディタで、クエリを作成します。
image.png
閲覧ツールと繋げて実行し、取得できました。
image.png

出力

以下のCSVをAlteryxで取り込みます。

話数,パート,ポプ子,ピピ美
第3話,前半,大谷育江,犬山イヌコ
第3話,後半,榎木淳弥,内田雄馬

出力ツールをドロップし、データソースにMySQLを選択します。
image.png

入力と同じようにODBCの設定を行います。
image.png
テーブル名の指定が求められます。作成したテーブルを指定しました。
image.png
出力オプションを指定。「既存のものを付加する」で試してみます。
image.png
Alteryxで取り込んだデータが追加されていました。
image.png

出力オプションを別のものにして再実行してみます。「データを削除して付加する」で実行しました。
image.png
既に入っていたものは無くなって、取り込みデータが入りました。
image.png
既にテーブルがある状態で「新しいテーブルを作成する」のオプションで実行するとエラーになりました。
image.png
image.png
テーブルを上書きしてみると、定義が変わりました。もともとvarchar(100)で作成していましたが、サイズが254になりました。
image.png
image.png

Cloud SQL

環境構築

こちらはCloud SQLだけの作成で問題ありません。ドライバはRDSの際にインストールしたものを使います。

Cloud SQL

MySQLを選択します。
image.png
インスタンスの情報等入力します。
image.png
リージョンはシングルとしました。
image.png
インスタンスのカスタマイズは試用のため、なるべく安価にしました。
image.png
接続 の箇所で、自IPのみ接続可能に設定しました。
image.png
試用なので、データの保護などはしません。
image.png

作成後ですが、Cloud SQLはCloud Shellから接続できるよう準備されています。これを使って初期状態を作成します。
image.png

CloudShellから以下コマンドで、データベース・テーブル・初期データを作ります。

CREATE DATABASE alteryx;

USE alteryx;

CREATE TABLE alteryx.hoshiiro2_cast
(
	 `話数`	varchar(100)
	,`パート`	varchar(100)
	,`ポプ子`	varchar(100)
	,`ピピ美`	varchar(100)
);

INSERT INTO alteryx.hoshiiro2_cast VALUES
('第1話','前半','平野綾','茅原実里'),
('第1話','後半','井上和彦','堀川りょう'),
('第2話','前半','朴璐美','釘宮理恵'),
('第2話','後半','檜山修之','森川智之')
;

SELECT * FROM alteryx.hoshiiro2_cast;

ODBC設定

RDSと同じように、接続名でアクセスできます。
image.png

入力

データ入力ツールから、データ接続-データソースでMySQLを選択。
image.png
ユーザ名とパスワードを入れます。
image.png
クエリエディタで作成します。
image.png
閲覧ツールと繋げて実行します。
image.png

出力

RDSと同じデータをAlteryx上に取り込みます。
データ出力ツールと繋げて、入力と同様、データソースにMySQLを選択します。
image.png
image.png
同じように、ユーザ名とパスワードを入れます。
image.png
出力テーブル名を求められますので、作成済みのテーブル名を指定しました。
image.png
RDSと同様に出力オプションがありますので、いくつか試してみます。
image.png
まずは「既存のものを付加する」から試します。

mysql> SELECT * FROM alteryx.hoshiiro2_cast;
+---------+-----------+--------------+-----------------+
| 話数    | パート    | ポプ子       | ピピ美          |
+---------+-----------+--------------+-----------------+
| 第1話   | 前半      | 平野綾       | 茅原実里        |
| 第1話   | 後半      | 井上和彦     | 堀川りょう      |
| 第2話   | 前半      | 朴璐美       | 釘宮理恵        |
| 第2話   | 後半      | 檜山修之     | 森川智之        |
| 第3話   | 前半      | 大谷育江     | 犬山イヌコ      |
| 第3話   | 後半      | 榎木淳弥     | 内田雄馬        |
+---------+-----------+--------------+-----------------+

追加されていました。
次は「データを削除して付加する」です。
image.png
Alteryx上に取り込んだデータだけになりました。

mysql> SELECT * FROM alteryx.hoshiiro2_cast;
+---------+-----------+--------------+-----------------+
| 話数    | パート    | ポプ子       | ピピ美          |
+---------+-----------+--------------+-----------------+
| 第3話   | 前半      | 大谷育江     | 犬山イヌコ      |
| 第3話   | 後半      | 榎木淳弥     | 内田雄馬        |
+---------+-----------+--------------+-----------------+

次は「テーブルを上書きする(ドロップ)」です。
image.png
データは新データのみ、テーブル定義は変わりました。

mysql> SELECT * FROM alteryx.hoshiiro2_cast;
+---------+-----------+--------------+-----------------+
| 話数    | パート    | ポプ子       | ピピ美          |
+---------+-----------+--------------+-----------------+
| 第3話   | 前半      | 大谷育江     | 犬山イヌコ      |
| 第3話   | 後半      | 榎木淳弥     | 内田雄馬        |
+---------+-----------+--------------+-----------------+
2 rows in set (0.04 sec)

mysql> show create table hoshiiro2_cast;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                   |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hoshiiro2_cast | CREATE TABLE `hoshiiro2_cast` (
  `話数` varchar(254) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `パート` varchar(254) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ポプ子` varchar(254) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `ピピ美` varchar(254) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci            |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)

「新しいテーブルを作成する」も行いました。結果は(既にテーブルが存在するため)RDSと同様にエラーになりました。
image.png

おわりに

今回はAlteryxで、RDBのPaaSであるAWSのRDSとCGPのCloud SQLにつないでみました。
ODBCドライバ経由なので特に問題なく接続できました。

使っていて注意した方がよいと思った点は冒頭のほうにも書きましたが、出力オプションがかなり危険なものにもかかわらず、容易に変更できる点です。
DBに対してではないですが、「気づかずマウスホイールで変更」->「元の状態覚えていない」->「End」ということを何度もしてしまった経験があるので、運用する際は細心の注意が必要と感じます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0