はじめに

Alteryxでできます!

はじめまして、データアナリティクスチームのohsakaです。
ビッグデータ時代の現在、データ量の肥大化とデータフォーマットの多様化が進んでいます。
データ分析を行うためには、必要なデータを収集後に整形・加工し、分析のための前処理を行う必要があります。
こうした前処理を含むデータの準備は、データプレパレーション(Data Preparation)と呼ばれます。
データ分析業務において、最も時間がかかる作業が、データクレンジングを含むデータの前処理です。
一般的に「データ解析の仕事の8割はデータプレパレーション」と言われており、簡易化が望まれています。

本記事では、代表的なデータプレパレーションツールである「Alteryx」の、データの前処理と帳票出力機能を検証します。

目次

  • Alteryxとは?
  • 概要
  • 実装
  • 実装時にハマってしまった点
  • まとめ
  • 追記:Alteryxを0から学び始めるには

Alteryxとは?

「Alteryx(アルテリックス)」は、米Alteryx社によるデータプレパレーションツール兼セルフサービスBIツールです。
GUIを用いた直感的なインターフェースを採用し、プログラミングを行うことなく、データ分析の前処理、データの高速分析、統計解析や機械学習、分析結果の可視化などが実現できます。
Alteryx上の具体的な操作として、処理や動作を示すアイコンを、マウスでドラッグ&ドロップし、必要な設定を行って線でつないでいくと、データ分析のワークフローを作成できます。また、作成したワークフローは保存して、再利用や共有が可能です。
データ分析においてコードを書く必要がないため、誰でも分析プロセスを作成して実行できるのが特徴です。そのため、ITエンジニアやデータサイエンティストに留まらず、ビジネスデータを取り扱うエンドユーザーでも使用できます。
特にデータの前処理に関しては定評があり、弊社のデータアナリティクスチームでも活用しているBIツールの「Tableau」との相性も抜群です。

概要

今回はAlteryxのプレパレーションツールの機能の中から、「データ加工」と「帳票出力」の2点の検証を行います。
テストデータとして、カリフォルニア大学アーバイン校(UCI)の機械学習用のデータリポジトリにある下記のデータを利用しました。
UCI Machine Learning Repository Diabetes Data Set
https://archive.ics.uci.edu/ml/datasets/diabetes

70人分の糖尿病患者に関する血糖値データです。帳票が個人別の診断結果となるような、個別の計測データを採用しました。
データはTSV形式で、下記の4つの値が格納されています。

日付 時間 属性 取得値
04-21-1991 9:09 58 100
04-21-1991 17:08 62 119
(略)
09-03-1991 7:20 34 016

今回はこちらのデータを利用して、グラフと表を含むPDF形式の帳票の出力を検証します。

実装

Alteryxには機能ごとのアイコンが200種類以上あります。アイコンは機能別に下記のカテゴリに分類されています。
各アイコンをGUI上でつなげていく事で、データフローを構成できます。

  • 入出力:データ入力、データ出力
  • 準備 :セレクト、ソート、フォーミュラなど
  • 結合 :ユニオン、結合、複数結合など
  • パース:日時、正規表現など
  • 変換 :累計、転置、集計など

最初に、基本的な入出力機能の検証を行います。
下記は読み込んだCSVファイルの行数を出力するデータフローです。

ここで、データ出力のアイコンでは、読み込んだファイルの行数が、プレビューで確認できます。
そして行数のカウント結果が、指定したCSVファイルに出力されています。

今回検証したAlteryxのデータフローは下記の画像の通りです。

画像中の赤字青字は、Alteryxのデータフロー上のコメントです。

  • 赤字:データフロー上の役割
  • 青字:個別の各アイコンに関する機能

ここで、Alteryxのデータフロー上のアイコン群の主な役割は、大きく分けて下記の4つの通りです。

  • ファイルの読み込み、データの前処理
  • グラフの出力
  • 表の出力
  • 帳票(PDFファイル)の出力

仕様として、複数の読み込みデータに対して、各々のPDFファイルを出力するデータフローを作成しました。
使用環境は下記の通りです。

ソフトウェア バージョン
Alteryx Designer x64 2019.4.4.20206

データフローを実行することで、データの読み込みから帳票の出力まで自動的に実行されます。
出力された帳票は下記です。

Alteryxを利用することで、下記のデータフローが実現できました。
(1) 複数のCSVデータの読み込み
(2) データの前加工
(3) 統計値の算出
(4) グラフと表の生成
(5) 個別の帳票(PDFファイル)の出力

実装時にハマってしまった点

データフローの作成時に特に時間を要したのは、複数のPDFファイル出力部分です。
一般的なプログラム言語にあるループ処理はないため、実装手順を一から調べる必要がありました。
Alteryx上の各機能における実装手順は、下記の通りです。

  • ファイルの読み込み時
    ポイント:複数のファイルを読み込み、ファイル名をカラムとして追加すること
    (1) 「ファイル名をフィールドとして出力する」で「ファイル名のみ」を選択
  • グラフの出力時
    ポイント:「バッチモード」を利用して、個々の読み込みファイルに応じたグラフ画像を出力すること
    (1) インタラクティブチャートの「バッチ」の中の「バッチ」を選択
    (2) 「バッチモード」を「オン」を選択
    (3) 「グループ化を選択」の「グループ化け」でファイル名のカラムを選択
  • 表の出力時
    ポイント:ファイルの読み込み時に追加した「ファイル名のカラム」を、表に利用するフィールドに順番に採用すること
  • 帳票の出力時
    ポイント:ファイルの出力時に、「ファイル名のカラム」を利用すること
    (1) レンダリングの「レンダリングの設定」で「データを別々のレポートにグループ化する」にチェック
    (2) 「以下でグループ化するフィールド」で、ファイル名のカラムを選択
    (3) 「以下によりファイル名を変更」で、任意の項目を選択(「Appending Group To Filename」など)

まとめ

本記事ではAlteryxにおけるデータプレパレーション機能と帳票出力機能を検証しました。
その中で実感したAlteryxの利点は、下記の3点です。
(1) 利用できるデータが入力、出力ともに多様であること
豊富なデータソースを容易に扱うことが可能です。
CSVファイルやExcelはもちろん、DB上のデータも一元的に扱えます。
(2) データ分析を誰でも行える事
各機能を有したアイコンをGUIベースで配置するだけで、プログラミングすることなしに、データフローの作成が可能です。そのため、誰でも扱うことができます。
また、データフローそのものが設計図となるため、別にOfficeなどで資料を作成する必要がありません。
例えば、Pythonを利用した解析を行う場合、ソースコードとは別に、仕様書をExcelやPowerPointなど別ツールで作成する場合が多いと思いますが、そういった手間が削減できます。
(3) データ分析にかかる時間の効率化
Alteryxを利用することで、データプレパレーションを一括して行う事ができるため、削減した時間をメインの分析に用いることが可能です。また、データフローの途中で各データの出力を確認できるため、作成時のデバッグも容易です。

追記:Alteryxを0から学び始めるには

Alteryxに関して日本語の書籍はまだ発売されていませんが、自学自習として、公式サイトの「Alteryx Community」にあるインタラクティブレッスンを、WEB上で受講可能です。

インタラクティブレッスン – 日本語 – Alteryx Community
https://community.alteryx.com/t5/intarakutiburessun-ri-ben-yu/tkb-p/interactive-lessons-ja

受講は無料ですが、はじめに「Alteryx Community」のアカウントを作成する必要があります。
インタラクティブレッスンには英語版と日本語版があり、レッスン数は2020/03/31現在、日本語版が全25レッスン、英語版は全59レッスンです。
今回は日本語の全25レッスンを受講しました。合計の受講時間は10時間程度でした。

  • 「Alteryx Designer 入門」:11レッスン
  • 「Excel ユーザーのための Alteryx」:7レッスン
  • 「式の作成」:7レッスン

インタラクティブレッスンの特徴として、動画でチュートリアルを見るだけではなく、受講中は画面上で指示に従って、マウス操作やキーボードを実際に体感できます。
一般的な書籍やWEBを用いた学習方法より、効率的にAlteryxの操作方法を学習することが可能です。
個々のレッスンの所要時間は、10~15分程度です。各レッスンの最後には、確認テストが3問ずつあります。