その他お問い合わせ先

lodestar@truestar.co.jp

運営会社

株式会社truestar
truestar activation株式会社

Gartner Magic Quadrant

IT 系サービスの格付け評価といえば Gartner Magic Quadrant が有名です。

Tableau は Analytics and Business Intelligence 部門で6年連続と不動の Leader! https://www.tableau.com/reports/gartner

さらに、私が愛してやまない Alteryx も遂に Leader に! しかも Data Science and Machine-Learning Platforms というオシャレな部門で。 https://pages.alteryx.com/EMEA-analyst-report-2018-gartner-mq-data-science-machine-learning.html

使い続けて 3年半。とても感慨深いものがありました。

Tableau ユーザーの皆様、Alteryx は単なる ETL ツールではありません。 いつもお世話になっている Developers.IO さんの記事を拝借しますと

統計分析(基礎的な統計処理からベイズ、機械学習まで幅広く!)

Alteryx v11.7:『予測』関連ツールの機能概要&ブログエントリまとめ #alteryx

空間情報処理(Geometryデータの高速処理!)

Alteryx v11.7:『地理情報』関連ツールの機能概要&ブログエントリまとめ #alteryx

DB側での処理実行(大規模データ処理に有効!)

AlteryxのIn-DB機能の話

さらに、Tableau 使いにとってたまらないのは、Publish to Tableau

続きを読む Gartner Magic Quadrant

JIRAのデータをTableuと連携させて時間管理したはなし

JIRA×Tableau(×Alteryx)

今回はプロジェクト管理ツールであるJIRAのデータをTableauに自動で連携させタスクにかけた時間を可視化した事例の紹介です

JIRAとは課題管理やプロジェクト管理に用いられるツールで truestarでは細かいタスクをこれで管理し作業のステータスや作業ごとのやり取りをJIRAベースで管理しています

そのJIRAにはタスクごとにどの程度時間を使ったのかを記録できる「作業ログ」という機能で 各タスクにどの程度の時間をかけているかを記録できます

今回JIRAを使って記録した作業時間のログを自動で収集加工し Tableauにそのデータを取り込む仕組みを作って日々データが自動更新されるフローを作りました。

データのETL処理には加工や分析に特化したETLツールの1つであるAlteryxというツールを使っています 大きな流れは以下です

URLからJIRAデータを自動で取得 Alteryxが自動でETL処理、Tableau Serverにパブリッシュ Tableau でJIRAのデータを可視化 1.URLからJIRAデータを自動で取得

細かなJIRAの機能は割愛しますが各タスクのデータはタスクの検索結果をCSV出力するという機能があり これにはユニークなURLが振られています、特定のURLにアクセスすればタスクの検索結果をCSVファイルとしてダウンロードすることができます

今回は「時間管理ログ出力」フィルタを作りこのURLにアクセスしてCSVを拾います URLにアクセスできればなんでもよいのですが今回はここから自動でURLを抜くのにPythonを使いました

簡単にですが以下のようなイメージです 流れは至極簡単でJIRAの認証を通してURLアクセス後 ファイルを特定のフォルダに吐き出しているだけです このプログラムWindowsのスケジュール機能で定期的に動かしています

2.Alteryxが自動でETL処理、Tableau Serverにパブリッシュ

JIRAからひっぱってきたデータはタスクに関連するあらゆるデータを含んでいます そのままではTableauに取り込みづらいためAlteryxで必要なデータに加工をしてあげます

加工の処理もそれほど複雑なことはしていませんが自動化のための肝は2つです 1つめはJIRAの作業ログデータの特徴として1つのタスクに複数の作業ログが記録されている場合

データは「作業ログ」という同名の列を複数持つことになります、その数はタスクの作業ログの数に比例するので何個あるかは不明です

CSVデータのイメージ(*あくまでイメージですので実際の中味とは異なります) タスク名称,作業ログ,作業ログ,作業ログ… tableau-idの記事を書く, ドラフト版作成:1時間, 第1項作成:2時間, 成果物チェック:2時間,…

このデータをAlteryxに読み込ませるとAlteryxが忖度してくれて 「作業ログ1,作業ログ2,作業ログ3…」と勝手に連番をつけて読み込まれます Tableauで処理する都合上、この作業ログというデータはこのように横にくっつく形ではなく 縦に積み上げてデータを持つ形が理想です (縦に持っていたほうが作業ログ時間の”集計処理”などが楽なので)

なので必要な列データを選択するタイミングで”作業ログ~”という名称を持つデータをまとめて取り込み 「REGEX_Match([Name],”作業ログ.*”)」 対象の列を絞り込んだら作業ログをまとめて縦持ちにしておきます

2つ目は単純にAlteryxで処理したデータを最後にAlteryxでTableau Serverにパブリッシュしてしまう という点 Tableau Serverへのパブリッシュは「Publish

続きを読む JIRAのデータをTableuと連携させて時間管理したはなし

細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみた #Alteryx #20 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第六弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

20日目のエントリとして細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみたいと思います。

14日目と16日目のエントリにて、調査データをAlteryxで加工してみましたが、調査データをAlteryxで加工すると時に、たとえば、特定質問でYesと答えた回答者で回答率を算出したり、移動平均を算出したりするという加工を入れると、Alteryxワークフローが非常に大きくなってしまうことがあります。

そうなってしまうと、たとえばロジックの改修を行う際に、毎回大きなワークフローを回す必要が出たり、またエラーが出た際に原因を特定するために、大きなワークフローを回す必要が出たりと、ワークフローが回るまでの待機時間が長くなってしまいます。

また、複雑な集計処理をしていなくても、データ量が膨大な場合、ワークフローが完全に回ってからでないと加工状況が見えないため、集計処理が正しいかを確認しようとするたびに、ワークフローを回すことになり、ワークフローが回るまでの待機時間が長くなってしまいます。

上記のような状況の場合、ワークフローを細分化するとワークフローが回るまでの待機時間が短縮されます。

しかし、定期運用をする必要があるデータの場合、毎回細分化されたワークフローをすべて回す必要があるため、更新に時間を費やしてしまうことになります。

これを解決するのが、今回紹介しますRunnerというツールとなります。

このツールは、Alteryxにデフォルトで入ってるツールではなく、Alteryxの社員であるAdam Rileyさんが任意で作成したマクロとなります。

※Alteryxユーザーであれば、任意でマクロを作って、それをネット上で共有することができます。

以下でAdam Rileyさん作成したマクロのパッケージを一括ダウンロードできます。

Adam Rileyさんマクロパッケージ

 

実際にRunnerを使ってみようかと思います。

まずは細分化した2つのAlteryxを用意しました。

1つ目はAlteryxで調査データをTableau用データに加工してみた-Part 1で使ったワークフローです。

2つ目はAlteryxで調査データをTableau用データに加工してみた-Part 2 #Alteryx #16 | Alteryx Advent Calendar 2016で使ったワークフローにさらに加工を加えたものです。

次に、Runnerを使って、Alteryxワークフローを作成します。

Runnerで1つ目のワークフローを指定して、Conditional Runnerで2つ目のワークフローを指定します。

Conditional Runnerは何個もつなぐことができるので、細分化さらたワークフローがいくつあっても問題ありません。

続きを読む 細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみた #Alteryx #20 | Alteryx Advent Calendar 2016

Alteryxで調査データをTableau用データに加工してみた-Part 2 #Alteryx #16 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第五弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

16日目のエントリとして14日目のエントリのPart 2として、大量の調査データをAlteryxでTableau用データに加工してみたいと思います。

ちなみに14日目のPart 1エントリは以下です。

 

様々な国の調査データを比較したかったり、調査データをトラッキングしたいとなると大量の調査データを取り扱うことになります。

Part 1の形のデータベースとなると、データ粒度が回答者IDごとであり、尚且つTableau上では、表計算で回答率を算出するため、データが大きいとTableauのスピードが著しく悪くなります。

そのため、以下のAlteryxワークフローで大量の調査データにも対応できるTableau用データベースを作成してみました。

 

以下でPart 2で追加したツールの詳細を説明します。

 

このSummarizeを入れるだけで、25003行だったデータが、9008行まで収縮できました。約40%の収縮です。

完成したデータはこれです。

 

明日17日目はクラスメソッドさんの『Communityの使い方 』です。乞うご期待!

Kazuki Koebisawa

続きを読む Alteryxで調査データをTableau用データに加工してみた-Part 2 #Alteryx #16 | Alteryx Advent Calendar 2016

Alteryxで調査データをTableau用データに加工してみた-Part 1 #Alteryx #14 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第四弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

14日目のエントリとしてクラスメソッドの川崎さんが以下のエントリでもご説明してくださっていますが、調査データをAlteryxで実際に加工してみようかと思います。

Tableau Conference 2016 at Austin [レポート]調査データを可視化する 2.0 – Data Revelations #data16

 

活用するデータは以下になります。

まずは、数値形式で格納されているデータです。

 

次に、文字形式で格納されているデータです。

上記、データがない場合もあるかもしれません。

その場合は、以下のようなマスターを作成することをおすすめします。

 

最後に、質問の補足情報が格納されたデータです。

Tableauで加工する際に、必要になる情報です。

「Wording」は、Tableauで、質問の内容を表示するために使い、また、「Question grouping」は、TableauのView毎の単位となります。

このデータは、ほとんどの場合、手元にないと思いますので、同じようなものを作成することをおすすめします。

ただし、「Question Type」については、必須ではありません。

 

これらのデータを活用し、以下AlteryxワークフローでTableau用データを作成しました。

非常に簡単なロジックとなっています。

 

続きを読む Alteryxで調査データをTableau用データに加工してみた-Part 1 #Alteryx #14 | Alteryx Advent Calendar 2016

ポイントデータ(緯度経度)データをポリゴンデータに紐付けてみる #Alteryx #09 | Alteryx

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第三弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

09日目のエントリとしてAlteryxを用いてポイントデータにポリゴンデータを紐付けてみます。

 

例によってデータは国土数値情報さんから取得します。

国土数値情報

 

今回は、医療機関データ(ポイントデータ)に

 

医療圏データ(ポリゴン)を使ってみましょう。

 

 

具体的には、医療機関データには病院などの施設名に住所と位置情報が含まれます。

一方、医療圏データには、病床の整備のために設定された地域領域が含まれます。

参考資料:wikipedia 医療計画

 

医療圏データは、3種類のポリゴン(一次医療圏、二次医療圏、三次医療圏)が含まれていますが、

今回は、医療機関に対して二次医療圏を紐付けてみましょう。

 

完成形のモジュールは以下の通りです。いたってシンプル。

 

左半分の設定内容です。

今回はシェープファイルの文字化けが発生しました。

シェープファイルの読み込み時は文字コードの指定ができないので、[ConvertFromCodePage]ツールでの変換を最初に行っています。

[Spatial Match]では、施設のデータに対して、施設の位置が含まれる医療圏ポリゴンを紐付けています。

紐づかなかったデータはU側にはじかれます。14件ほどはじかれてしまいました。

海に近い施設がポリゴンに含まれなかったり、ポイントデータにも不備がありそうです。

大分県の5施設は海上にプロットされました・・・

Alteryxの[Browse]ツールを使うだけで、エラーも簡単に可視化できます。

このあたりの異常値は本来メンテナンスが必要ですが、今回の趣旨とは外れるのでそこには触れずに進めます。

続きを読む ポイントデータ(緯度経度)データをポリゴンデータに紐付けてみる #Alteryx #09 | Alteryx

API経由で住所データをジオコーディングしてみる #Alteryx #08 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第二弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

08日目のエントリとしてAlteryxを用いてYahooのAPIと連携し、ジオコーディングを行ってみます。

 

まず、YahooのAPIと連携するためには、Yahoo! デベロッパーネットワークでアプリケーションIDを取得する必要があります。

さすがはYahoo! Japanさん。分かりやすいヘルプがあるので、こちらのページを参考に簡単に取得可能です。

Yahoo!デベロッパーネットワークヘルプ

なお、ジオコーディングにはYahoo! ジオコーダAPIを用います。

Yahoo! ジオコーダAPI

 

今回、ジオコーディングの対象住所には、『住所一覧』でググったら上位に出てきた大阪府の公立小学校のデータを用いることにしました。

エクセルを開くとこんな感じです。データ取得上は不要となるタイトルがついています・・・。

しかも・・・実際には後で気づきましたが、下のほうにも別のテーブルがありました。

APIでジオコーディングする前に、これらの不要なデータをAlteryxで処理する必要がありそうです。

 

さて、実際のモジュールですが、結論から言うと最終形はこんな感じです。

意外と小さなモジュールで済みました。

 

上半分と下半分に分けて細かく見ていきます。

最初に元データとなるエクセルファイルを読み込み、不要なデータを順に取り除いています。 二連続となる[Filter]ツールでは、もう一つのテーブルとのカラム名の列と、テーブルとテーブルの間の空白をカットするために用いています。 右端にある[Formula]ツールで、APIに投げ込むURLデータを生成しています。

続いて下半分です。

API経由でのデータダウンロードに始まり、JSONデータを分解、縦持ちデータを横持ちに変更します。 次にJSON形式で取得した緯度経度はカンマ区切りで一つのカラムに入ってしまっているため、[Formula]ツールで切り分けます。

YahooのジオコーダAPIは番地レベルで厳密にヒットしないと変換されず、Nullで返ってきます。 今回は995レコード中27レコードがはじかれてしまいました。 それらがすぐに判別できるよう変換判定のフラグを立た上で、データのソートまでこのフローに組み込んでいます。

続きを読む API経由で住所データをジオコーディングしてみる #Alteryx #08 | Alteryx Advent Calendar 2016

Polygon for Tableauを使ってみる #Alteryx #06 | Alteryx Advent Calendar 2016

今回、クラスメソッドさんの運営する技術ブログDevelopers.IOで展開されている『Alteryx Advent Calendar 2016』にスポット参戦させていただくことになりました。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

06日目のエントリとしてAlteyrxの『Polygon for Tableau』ツールをご紹介します。

 

過去にもAlteryxのマクロを用いて似たような記事がTableau-idに掲載されています。

Alteryxを活用したShapeFileのTDE化

しかし、現在は『Polygon for Tableau』というツールが標準的に存在するため、もっと簡単にシェープファイルをTableau用に加工できるようになりました。

 

ではまず適当にシェープファイルを拾ってきましょう。

シェープファイルのオープンデータといえば国土交通省の運営する

国土数値情報

です。いつもお世話になっております。

今日は線路の情報を使ってみましょう。

 

 

全国のデータを一括でダウンロードできますが、中には二つのシェープファイルが含まれますが、ここでは線路データとなるRailroadSection.shpを使います。

ちなみに今回取り扱う空間データ(Spatial Object)は、Polygon(面)ではなくline(線)です。

『Polygon for Tableau』を使うとこんな簡単なモジュールでTableauデータソース化が可能です。

 

シェープファイルは下図のとおり、lineデータです。線路っぽいデータが見えています。

 

続いて元データの属性情報(カラム名)を[Select]ツールでRenameします。

 

空間データ(Spatial Object)に[Polygon for

続きを読む Polygon for Tableauを使ってみる #Alteryx #06 | Alteryx Advent Calendar 2016

AlteryxにおけるExcelの日本語データの読み込みエラーについて

日本語入力したExcelデータをAlteryxで読み込むと

Excel内部で保持している日本語のふりがなデータが出力されてしまいます。

ちなみに別のアプリケーションから吐き出されたデータをエクセルに出力した場合は基本的に生じませんが、Excelに手入力すると起こる問題です。

これまでは、いったん別のシートに数式貼り付けした後に値貼り付けで戻す、のような不毛な作業で解消していましたが、国内では希少なAlteryxヘビーユーザーの方に解決策を教わりました。

File FormatをExcel Legacyに変更するだけとは・・・。あまりに単純な調整で解消したので驚きました。 でも言われなければずっと気づかなかったなと。

なお、年月のフォーマットがdateからdatetimeに変わっていますが、業務上影響はないですね。影響があるならSelectツールで型変換すれば解消です。

Fuji

Tableau * Alteryx でポリゴンとポイントを同時にマッピングする

今回は前回の投稿でご案内したとおり、行政区画ポリゴンとバス停を同時にTableau上でマッピングする方法を共有します。

Tableauではポリゴンとポイントを同一地図上に配置する場合、若干工夫が必要です。 簡単に言うと、現時点では複数の緯度経度フィールドを一つのマップに落とすことができません。 これはポイントデータ同士でも同じです。

例えば、AさんがZ店で買い物をしたとします。この場合、Aさんの住所、Z店の店舗住所が取得可能とすると、一つのトランザクションレコードに『顧客住所緯度及び経度』と『店舗住所緯度及び経度』の二種類の緯度経度フィールドを紐付けることが可能です。

しかし、Tableauでは、同じマップ上に表現できる緯度経度フィールドは一種類の組み合わせのみとなります。 そのため、両者を共存させるには、顧客データと店舗データを縦に積み上げ、統合した緯度経度フィールドを持たせる必要があります。

実際に見ていきましょう。

最初は前回同様、ポリゴンとポイントのマッチングです。今回のモジュールでは分岐したフローの上側がそれに該当します。 ここはあくまでバス停に行政区画を紐付けることが目的です。 人口などはポリゴンデータに持たせれば良いため、今回はチェックを外しています。

分岐したフローの下側はポリゴンデータのTableau化です。 Developers.IOでも過去に取り上げられていた『Visual Analytics Kit for Tableau』の中に現在は[Polygon for Tableau]ツールが加わっており、これを用いると一発で変換されます。

ただ、人口数や世帯数のようなデータが、ポリゴンのポイントの数だけ増殖してしまいます。 集計の際に平均で取り扱うか、今回のモジュールのように1つを残してカットする必要があります。

最後に[Union]でデータを結合し、緯度・経度を1つのフィールドにまとめてデータソースは完成です。

TableauにこのTDEを接続し、ポリゴンとポイントのグラフを、列と行ともに二重軸でつなげで実装完了。(『統合緯度経度』シート)

注意点としては、行政区画のポリゴンデータは『町丁・字等名称』でユニークではないため、マークの詳細に『AlteryxKey』というディメンションを投げ込む必要があります。また、『PointOrder』もディメンションとしてパスに落とさなくてはなりません。

【蛇足】 最初、Alteryxのワークフロー上で『町丁・字等名称』をキーにポリゴンをグルーピングしたのですが、結果的にTableau上ではドーナツの穴の中に存在する区画との重複が生じました。 Tableauではドーナツのように穴の開いたポリゴンデータ(一筆書きできないもの)は現時点では取り扱えないようです。 なお、国勢調査の行政区画ポリゴンはドーナツ型のものは適当に分断されているようで、下手にグルーピングせずにそのまま使えば特に問題は無さそうです。 ご参考までに。

 

T.Fuji

続きを読む Tableau * Alteryx でポリゴンとポイントを同時にマッピングする