[レポート]トレーニングセッション「SQLユーザーのためのAlteryx基本概念」Alteyrx Inspire 2018 #alteryx18

2018.07.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

現地時間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)に対してアクセス可能
    • TOPLIMIT等の制限についても設定可能
  • カラム選択等は出来ない(全カラム選択)

 

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の利便性を実感してください。

alteryx_960x400