はじめに
Alteryxを使える機会があるので、各種クラウドストレージと接続してみました。
Alteryxとは
簡単に言うと、コードを書かなくても、処理をつなげるだけでデータ加工ができるサービス、です。
詳細は以下のページ等を確認ください。
公式に各種コネクタがあります。
概要
試せたのは以下になります。
- AWS
- S3:デフォルトで接続ツールが組み込まれている
- Google
- GoogleDrive:接続ツールが配布されている
- Googleスプレッドシート:接続ツールが配布されている
試せなかった、うまくいかなかったのは以下になります。
- GCP
- GCS:接続ツールなしのため、未検証
- Microsoft365
- SharePoint:接続ツールは配布されているが、内部エラーで接続できず
- OneDrive:同上
S3と接続
準備
環境として以下を作成しました。
- バケット作成
- ユーザー作成
- アクセスキー作成
- データアップ
CFnでバケットとユーザを作成します。
AWSTemplateFormatVersion: 2010-09-09
Resources:
TargetBucket:
Type: AWS::S3::Bucket
AlteryxUser:
Type: AWS::IAM::User
Properties:
Policies:
- PolicyName: S3Access
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- s3:ListAllMyBuckets
Resource:
- !Sub arn:aws:s3:::*
- Effect: Allow
Action:
- s3:ListBucket
Resource:
- !Sub arn:aws:s3:::${TargetBucket}
- Effect: Allow
Action:
- s3:*Object
Resource:
- !Sub arn:aws:s3:::${TargetBucket}/*
Outputs:
BucketArn:
Value: !GetAtt TargetBucket.Arn
データは以下CSVファイルを作成し、S3にアップしました。
話数,パート,ポプ子,ピピ美
第1話,前半,江原正士,大塚芳忠
第1話,後半,三ツ矢雄二,日髙のり子
第2話,前半,悠木碧,竹達彩奈
第2話,後半,古川登志夫,千葉繁
第3話,前半,小松未可子,上坂すみれ
第3話,後半,中尾隆聖,若本規夫
第4話,前半,日笠陽子,佐藤聡美
第4話,後半,玄田哲章,神谷明
第5話,前半,金田朋子,小林ゆう
第5話,後半,中村悠一,杉田智和
第6話,前半,三瓶由布子,名塚佳織
第6話,後半,下野紘,梶裕貴
第7話,前半,こおろぎさとみ,矢島晶子
第7話,後半,森久保祥太郎,鳥海浩輔
第8話,前半,諸星すみれ,田所あずさ
第8話,後半,小野坂昌也,浪川大輔
第9話,前半,中村繪里子,今井麻美
第9話,後半,斉藤壮馬,石川界人
第10話,前半,徳井青空,三森すずこ
第10話,後半,小山力也,高木渉
第11話,前半,水樹奈々,能登麻美子
第11話,後半,郷田ほづみ,銀河万丈
第12話,前半,小山茉美,三石琴乃
第12話,後半,速水奨,中田譲治
保存場所はs3://バケット名/download/
以下としました。
ダウンロード
公式のツールを使います。Alteryxに組み込み済みでした。
コネクタタブのツールをドラッグアンドドロップします
ツールのプロパティですが、AWS シークレットキーの項目が隠れてしまっています。
入力欄は存在するので、AWSアクセスキーにフォーカスして、Tabキーを押して遷移しました。
それぞれ入力欄に以下の様に指定しました。
- AWSアクセスキー:作成したIAMユーザーのアクセスキー
- AWS シークレットキー(画面上はAWS秘密キー?):作成したIAMユーザーのシークレットアクセスキー
- 隠れてしまっているので、AWSアクセスキーをフォーカスし、Tabキーで遷移
- 現在の AWS 認証情報をデフォルトとして保存するがリンク状態になりますので、クリックして有効にしておきます。
- エンドポイント:作成したリージョンのエンドポイントを選択
- [チェック]認証に署名 V4 を使用する:OFF
- バケット名:対象のバケットを選択
- 接続設定が正しければ、右の参照ボタンからバケット一覧が表示され、そこから選択できます
- オブジェクト名:対象のファイルのキーを指定
- ここまでの設定が正しければ、右の参照ボタンからオブジェクト一覧が表示され、そこから選択できます
- エンドポイントに設定したリージョンが正しくない場合はエラーになり、一覧が表示されません
- ここまでの設定が正しければ、右の参照ボタンからオブジェクト一覧が表示され、そこから選択できます
設定後の画面は以下の様になります。
ワークフローに閲覧ツールを接続して、実行します。
問題なく取得できれば、結果ウィンドウに取得内容が表示されます。
アップロード
こちらも公式のツールを使います。Alteryxに組み込み済みでした。
ツールを配置する前に、入力用に適当なデータを作成します。
テキスト入力で、Alteryx上に直に作成しました。
次にアップロードツールをドラッグアンドドロップします。
相変わらず、シークレットキーは隠れていました。
ですが、入力時に保存していた資格情報がそのままセットされているようです。
入力項目は、ほぼ先ほどと似たようなものです。
- オブジェクト名:ファイルのキーを指定
- 右の参照からファイル一覧が表示されます
- 存在しない場合は直に入力します
以下のように設定しました。
後はテキスト入力と繋げて実行します。
S3にアップロードされました。2回実行しても(ファイルが存在しても)エラーも無く実行できました。
GoogleDriveと接続
デフォルトでは入っていなかったので、ツールのダウンロードが必要です。
ダウンロードとインストールの方法は、以下を参考にしました。
インストールには結構時間がかかります。自分の場合は5分くらいかかりました。
インストール後、コネクタのタブに2つ追加されていました。
インプット
S3と同じデータを以下の様に格納しました。
以下のページを参考にやりました。
一つ目の、ブラウザのサインインを使う形で試してみます。
一度失敗しましたが(恐らくタイムアウト)、再度やり直して以下のような画面になりました。
その後、ツールのプロパティにドライブ内の情報が表示されるようになりました。
下部のエクスプローラー風のUIを操作して、対象のファイルを選択します。
オプションを色々見てみたところ、以下の設定でうまくいきました。
閲覧ツールから取り込めた内容を確認できます。(一部文字化けしています)
アウトプット
S3のときと同じデータをインプットとしてワークフロー上に用意し、GoogleDrive Outputツールと接続します。
対象のフォルダを選択して、Add Fileをクリック。
以下の様になりました。
オプションは以下の様に、上書きにしてみました。
実行すると、GoogleDrive上にファイルができました。
中身もちゃんと見れます。
2回目を流すと最終更新が変更されましたので、ちゃんと上書きされているようです。
Googleスプレッドシートと接続
以下を参考にしました。
こちらもデフォルトでは入っていなかったので、ツールをダウンロードしました。
先と同様にインストールしました。今度はポップアップも何も出ずすぐ完了したようで、アイコンが追加されていました。
入力
入力ツールをドロップしてプロパティ画面を見てみると、Driveとは違っていました。
接続がうまくいくと、以下のようなプロパティになりました。
対象のファイルを選択するのですが、ファイル名のみでパスが表示されません。
そのため、別フォルダに同名ファイルがある場合は、区別がつきません。
設定できましたので、閲覧ツールと繋げて実行し、取得データを確認します。
出力
出力ツールの最初のプロパティ画面は以下のようになっていました。
承認画面も同じだったので割愛。
何度も実行することを想定して、ファイルがない状態ですが「スプレッドシートを上書き(削除)」を選択しました。
ですが、セレクトボックスで選択するようで、既にあるファイルからしか選択できません。
また、書き込みオプションを上書きにしようとすると以下の様にエラーになりました。
ただ、同名のスプレッドシートが複数ある場合、上書き先のスプレッドシートを選択するリストが以下の様になり、どれがどれだかわからない状態でした。
なのでスプレッドシート名をアカウントで一意にし、対象のフォルダに移動して、設定を続けます。
今度は何回実行しても、ファイルは増えることなく1つのままでした。(ただし最終更新の時間がブラウザ上に反映されるまで少しかかりました。)
うまくいかなかったもの
以下二つについては、配布ツールがありましたがうまくいきませんでした。
- SharePoint
- OneDrive
それぞれのツールのリンクは以下になります。
以下はSharePointで試した際の画面になります。
(うまくいかなかったので、非表示にしておきます)
クリックで表示
Alteryxのバージョンの問題かもしれません。
わかる方いらっしゃいましたら教えてください。
おわりに
便利なデータ加工ツールであるAlteryxと、クラウドストレージとの接続方法を確認してみました。
Microsoft365のサービスとつなぐ方法がうまくできなかったのは残念ですが、クラウドとの接続も簡単にできることがわかり、今後の業務に活かせそうです。