#07 : Alteryxサンプルワークフロー「未フォーマットデータの標準化」- Alteryx & Tableau 連携 Advent Calendar 2018

2018.12.07

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

当エントリは『Alteryx&Tableau連携 Advent Calendar 2018』シリーズの7本目のエントリです。

当エントリでは、Alteryx Designerの実行ワークフローサンプル「Standardize Unformatted Data(未フォーマットデータの標準化)」の内容を紹介します。

目次

「本日のテーマ」概要紹介

AlteryxとTableauはそのツール特性から非常に相性が良く、製品間それぞれにパートナー企業としての(特集)ページが設けられています。

本日は、Alteryx Designerの「Sample Workflows」にて展開されている「Tableau Starter Kit」の中で、「Data Preparation」配下の「Standardize Unformatted Data(未フォーマットデータの標準化)」というサンプルワークフローについて見ていきたいと思います。

このワークフローでは、フォーマットされていないログ情報(セキュリティに関するもの)のテキストファイルを解析し、分析用の使用可能なテーブルに解析する方法を示しています。

ワークフローの全体像

サンプルワークフローの全体像は以下となります。

ワークフローを読み解く

まずは入力ファイルの確認。お世辞にも整っているとは言い難い内容のようです。

実際のファイルの中身をテキストエディタで確認してみます。情報として出力されてはいますが解析にはちょっと...という感じですね。

序盤のフェーズでは、以下の様な処理を行っています。

  • Formula Tool: 文字列関数TRIM()を使って行における前後の半角空白を除去
  • Multi Row Formula Tool: RecordNumを新規列として生成、その値は「行内に日付の情報があれば+1、無ければ前行と同じ値を設定」というルールで採番
  • この処理で、処理日付毎に同じ番号が振られる→1件のデータとして識別可能な形となる
  • Summarize Tool: RecordNumで情報をサマリー。Group by項目に「RecordNum」、Action項目に「Concat(文字列結合)」を指定。これで文字列として1つのRecordNumに対する情報が集約される
  • Text to Columns Tool: 上記結合された情報(Text)をタブ文字(¥t)で列毎(Columns)の値に分割
  • Select Tool: 上記分割された項目群(Field1、Field2...)の名称を、意味のある項目名にリネーム
  • Text to Columns Tool: 項目「Other」に対し、パイプ文字(|)で情報を分割

中盤部分は処理が二手に分かれています。一方では以下の様な処理を行っています。

  • Select Tool: "Others"に関する項目を不要とし、選択項目から外す
  • Filter Tool: 不要なレコードを除去(RecordNum > 0で先頭行を除外)
  • Formula Tool: 後の処理で利用するためのタイムスタンプ情報をそれぞれ生成

もう一方では、以下の様な処理を行っています。

  • Transpose Tool: "Other"に関する一連の項目を横持ちから縦持ちに変換
  • Filter Tool: 値(Value)の項目が空の状態のレコードをisEmpty()関数を使って排除
  • RegEx Tool: 値(Value)の項目に対して、正規表現でフィールド名・フィールド値として解析
  • Filter Tool: 解析したフィールド値が空の状態のレコードをisEmpty()関数を使って排除
  • CrossTab Tool: 一連の処理で生成された内容を構造化テーブルの形にピボット

後半部分では二手に分かれて処理された内容をRecordNumで結合。

終盤部分では、以下の様な処理を行っています。

  • Multi Field Formula Tool: 複数のフィールド(ここではテキスト項目を指定)に対してTRIM()関数を適用し、先頭及び末尾のスペースを削除
  • Formula Tool: Login ID情報に、値の内容に基づいたログオン情報を設定
  • Sort Tool: 所定の条件でデータを並べ替え
  • Multi-Row Formula Tool: Logon IDと日付に基づき、Record Groupという新しいフィールドを生成
  • Unique Tool: 「Record Group」フィールドに基づき、重複レコードを削除
  • Select Tool: 分析に不要な項目を選択削除
  • Dynamic Rename Tool: フィールド項目名のアンダースコア(_)を空白に変換

ワークフローの実行・Tableauワークブックの内容確認

画面右上の「Run」ボタン、または「Control」+「R」のショートカットでワークフローを実行。このワークフローでは、最終的にTableauの抽出ファイル形式であるhyperを生成しています。

抽出ファイル(Hyper形式)をTableauで開いてみてみます。以下の様な形で、整形されたデータ内容を確認する事が出来ました。

まとめ

という訳で、『Alteryx & Tableau 連携 Advent Calendar 2018 』7本目、「Standardize Unformatted Data(未フォーマットデータの標準化)」のご紹介でした。

今回取り上げた様な「整っていない形式のファイル」を取り込むのは非常に骨が折れる作業となります。変換・整形のルールさえ見つけ出してしまえば、このような形でAlteryxで処理をワークフローとして作り上げ、自動化する事が出来ます。地道な作業となりますが、まずは対象作業の「変換ルール、加工手順」を整理する事から始めてみるのはいかがでしょうか。

引き続き、明日もお楽しみに!

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400