[レポート]トレーニングセッション「SQLユーザーのためのAlteryx基本概念」Alteyrx Inspire 2018 #alteryx18
現地時間2018年06月04日〜2018年06月07日に米国アナハイムで開催されたAlteryxの年次カンファレンスイベント「Inspire 2018」。今回クラスメソッドからは計4人のメンバーが現地参加しました。
当エントリではイベント初日に行われたトレーニングセッション「Core Concepts for SQL Users (SQLユーザーのためのAlteryx基本概念)」について、その内容をレポートしたいと思います。
目次
セッション概要
当トレーニングセッションの概要は以下の通りです。
Core Concepts for SQL Users
(SQLユーザーのためのAlteryx基本概念)
登壇者(トレーニング講師):
Digan Parikh
トレーニング概要:
Are you new to the Alteryx Designer but you are familiar with SQL? In this class, learn how to translate your knowledge of SQL into a basic Alteryx workflow.
(あなたはAlteryx Designerの初心者ですが、あなたはSQLに精通していますか? このクラスでは、SQLの知識を基本的なAlteryxワークフローに変換する方法を学びます。)
セッションレポート
ハンズオンセッションの主な内容をレポートします。
トレーニングのゴールとアジェンダ
ゴール
- SQL文をAlteryxのワークフローに置き換えられる
- Alteryxがデータにどの様にアクセスしているかを理解する
- SQLとAlteryxの違いを把握
- 「Alteryxでどの様にSQLの知識を活かすか」について知る
アジェンダ
- 概要
- SQLからAlteryxへ
- SELECT文
- WHERE句
- INNER JOIN
- OUTER JOIN
- CROSS JOIN
- GROUP BY
- ORDER BY
- 追加エクササイズ
SELECT文 / Input Dataツール
SQLにおけるSELECT文(任意の列を選択)は、Alteryxでは「Input Dataツール」を使う事で表現可能。
- データ選択の際にはまずこちらを考慮
- 設定オプションは入力データのフォーマットに依存
- RDBMSやファイルベースのリソース(AccessやEXCEL)に対してアクセス可能
- TOPやLIMIT等の制限についても設定可能
- カラム選択等は出来ない(全カラム選択)
SELECT文 / SELECTツール
- 以下操作などを設定次第で対応可能。
- 所定のフィールド名を選択(→ SELECT 句に相当)
- データ型の変更(→ CAST関数に相当)
- カラム名の変更(→ AS句に相当)
- カラム取得の順番:リストでの(上下)位置を調整する事で対応
WHERE句 / Filterツール
- WHERE句:データを何らかの条件で制限する際に用いられる。任意の条件を指定する事でその条件に合致するデータが返ってくる
- Alteryxでは同様の処理を行いたい場合、「Filterツール」を使う。
- 条件はカラムを指定して所定の値との関連条件を指定する「Basic filter」、任意の条件を書き入れられる「Custom filter」が指定可能。
- True(T)のアウトプットに条件合致するデータ、False(F)に対象外となるデータが出力される。
INNER JOIN(内部結合) / JOINツール
- INNER JOINはテーブル同士のデータを任意のクエリ条件で共有したい場合に用いる
- AlteryxのJOINツールで、これと同等の処理を実現可能。
- JOIN出力(J)のアウトプットに、結合出来たデータが出力される
- Alteryx上でJOIN条件に用いる任意のフィールドを指定
- ベストプラクティス
- 結合前に、SELECTツールを使って結合対象となるカラムをそれぞれ同じデータ型にしておくこと
- JOINの際のデータ型としてDouble型/Float型はオススメしない
- JOINの際、大文字・小文字は区別される→これも事前にFormulaツールで体裁を整えておくこと
- JOINツールのSELECTツールの挙動はアウトプットにのみ適用される
INNER JOIN(内部結合) / MULTIPLE JOINツール
- JOINツールでは結合出来なかった情報も別途出力されるが、こちらの「MULTIPLE JOINツール」では全てのインプットから結合出来たレコードのみを出力する形となる。
- Alteryx上でJOIN条件に用いる任意のフィールドを指定。その他以下挙動や内容についてはJOINツールと同様。
- ベストプラクティス
- 大文字小文字を区別
- SELECTツールの適用範囲
- 設定項目「Only Output Records that Join from all Inputs」について
- 選択した場合:SQLにおけるINNER JOINと同じ挙動
- 選択しなかった場合:SQLにおけるFULL OUTER JOINと同じ挙動
以下2つのデータをMULTIPLE JOINで結合してみます。
「Only Output Records that Join from all Inputs」にチェックを入れると、INNER JOINで3件のデータが生成。
一方チェックを入れない場合、以下の様な形で都合5件のデータが生成される形となりました。
LEFT OUTER JOIN / JOINツール&UNIONツール
- SQLに於けるLEFT OUTER JOINの挙動もAlteryxで実現可能。
- JOINツールにおける以下2つのアウトプットを結合(UNION)する形で対応する。
- JOIN Output(J):キー同士で結合出来たデータ
- Left Output(L):キー同士で結合出来なかったデータのうち、左辺の入力データのほう
LEFT OUTER JOIN及びRIGHT OUTER JOINについては、以下の様な形でツールを繋げて処理を行う。
FULL OUTER JOIN / JOINツール or MULTIPLE JOINツール
FULL OUTER JOINについては、JOINツール+UNIONツールの併用で「全ての出力を結合」させるか、MULTIPLE JOINツールで所定の設定を行って出力させる方法が選択可能。
CROSS JOIN / APPEND FIELDツール
- CROSS JOIN:関連する基準の無いデータ同士を結合させたい、所謂「デカルト積」(直積結合)なデータを作りたい時に使う
- Alteryxでこれと同じ処理を行うには、APPENDツールを用いる。
- 生成されたデータが多すぎる状況に備え、任意の基準を超えた時にアラートを設定する事も可能
- [ターゲットの行] x [ソース行] = [出力行]という形となる。
- 例)target:56行 x source:50行 = 出力:2800行
GROUP BY句 / SUMMARIZEツール
- SQLにおけるGROUP BYを実現したい場合はSUMMARIZEツールを使う。
- GROUP BY対象のフィールドを指定し、必要な集計関数で「GROUP By」を指定
- 集計関数は基本的なものは大体揃っている。詳細は以下を参照
ORDER BY句 / SORTツール
- 項目の並べ替え(SORT)を実施したい場合はSORTツールを用いる
- フィールド毎に昇順・降順指定可能
- ソート実行時の「辞書」を選択可能
まとめ
という訳でAlteryx Inspire 2018:トレーニングセッション「Core Concepts for SQL Users (SQLユーザーのためのAlteryx基本概念)」のレポートでした。
SQLを使う事でデータの様々な加工編集操作が可能となりますが、同じ様な考え方でAlteryxでも処理を実現する事が可能です。最初は慣れない部分もあるかと思いますが、必要そうな処理はほぼほぼ揃っているので、是非身近な定形作業をAlteryxワークフローで置き換えてみてください。
Alteryxロードショーとワークショップを開催します
2018年7月26日(木)にAlteryxロードショーとワークショップを開催します。すでにAlteryxをご活用中のお客様はもちろん、導入を検討している方、国内外におけるデータ分析の最新情報を知りたい方にもおすすめです。ぜひ、この機会にAlteryxの利便性を実感してください。