[レポート]トレーニングセッション「In-Databaseワークフロー入門」- Alteyrx Inspire 2018 #alteryx18
現地時間2018年06月04日〜2018年06月07日に米国アナハイムで開催されたAlteryxの年次カンファレンスイベント「Inspire 2018」。今回クラスメソッドからは計4人のメンバーが現地参加しました。
当エントリではイベント初日に行われたトレーニングセッション「In-Databaseワークフロー入門」について、その内容をレポートしたいと思います。
目次
セッション概要
当トレーニングセッションの概要は以下の通りです。
Dive into In-Database Workflows
トレーニング概要:
Pulling data from a large database? Large tables can quickly slow down data being brought into Designer. Why not just leave the data in the database? In this class, shift the compute context off of your machine and into a database by learning about the in-DB tool palette.
(大きなデータベースからデータを引き出すことはできますか? 大きなテーブルは、デザイナに持ち込まれるデータをすばやくスローダウンできます。 なぜデータをデータベースに残さないのですか? このクラスでは、DB内のツールパレットについて学習することで、計算コンテキストをデータベースからデータベースに移動します。)
セッションレポート
ハンズオンセッションの主な内容をレポートします。
なぜIn-Databaseなのか?
- パフォーマンスを改善出来る
- プラットフォームの資産を活用出来る
- 高度なクエリ、SQLコードを利用出来る
サポート対象のデータベース
- Amazon Redshift
- Cloudela Impala
- Databricks
- EXASOL
- Hive
- HP Vertica
- IBM Netezza
- Microsoft Analytics Platform System
- Microsoft Azure SQL Database
- Microsoft Azure SQL Data Warehouse
- Microsoft SQL Server
- Oracle
- Pivotal Greenplum
- PostgreSQL
- SAP Hana
- Snowflake
- Spark ODBC
- Teradata
In-Databaseツールにおけるツールアンカーと接続
- 標準ツールは、矢印アンカーを使用して別のツールに接続し、2つの標準ツール間の接続は、1行で表示される
- 一方、データベース内ツールは、データベースアンカーを使用して、別のデータベース内ツールに接続。
- 2つのデータベース内ツール間の接続は、二重線として表示。 データベース内処理の性質上、接続の進行状況は表示されない
In-Databaseツールの一覧と公式ヘルプ詳細は以下を参照。
In-Databaseツールを使う事で得られるパフォーマンス上のメリット
- メリット
- データの移動を制限して解析を高速化する事が出来る
- ドラッグ&ドロップで処理を作成する事が出来る
- SQLコード不要
- 通常ツールとIn-Databaseツールを組み合わせたハイブリッドなワークフローの例
- In-Databaseワークフローのメリット
- 通常のワークフロー
- 2,000,000レコードのデータベーステーブルがAlteryx内のメモリに持ち込まれ、380レコードのスプレッドシートと結合され、229,845個の一致レコードのテーブルが作成。
- このワークフローを実行するのにかかる時間の大部分は、入力データツールを使用してデータベースから200万レコードにストリーミングされている。
- In-Databaseワークフロー
- 380レコードのスプレッドシートがテンポラリデータベーステーブルにストリーミングされ、2,000,000レコードに結合される
- その後、229,845件の一致したレコードが標準のAlteryxワークフローにストリームアウトされる
- データのスプレッドシートのみが転送されるため、このワークフローは高速に実行される。
- 通常のワークフロー
In-Databaseツール:主なツール機能の紹介
Connect In-DB
- In-DB接続のセットアップを実施
- 入力データへの接続とは別
- この設定を行った後、Inputツールを使ってサポートしているDBに接続を行う事が可能
- テーブルやフィールドを選択するツールとしてクエリビルダーを使う事が出来る
- 「*」=全てのフィールドを選択
- 必要に応じて個々のフィールドを選択する事も出来る
- SQLエディタを使って任意のクエリを追加する事も可能
Select In-DB
- 選択・非選択、リネーム、順序変更が従来のSelectツールと同様に可能。
- 詳細の記述、及びデータ型や桁数変更は出来ない。
Formula In-DB
- 値の上書き、新規フィールド追加及び追加時のデータ型指定、順序変更は従来のFomulaツールと同様に可能。
- 以下の設定は従来のForlumaツールとは異なる。
- ネイティブのDB言語で表現を構築 - フィールドは引用符で囲む。カッコではない - ビルダーのUI
以下はSQL Serverを対象とした時のコード表現の例。
Summarize In-DB
- 幾つかの関数等のアクションが制限されているくらいで、挙動はほぼ従来のSummarizeツールとほぼ同じ。
Filter In-DB
- True/False双方を評価する点、基本的なフィルタ、カスタムフィルタを持っているところは従来のFilterツールと同様。
- 基本的なフィルタで利用可能なオペレータが幾つか異なる。
- ネイティブなオペレータが利用可能な場合がある(例:SQL Serverでの"Like"など)
Join In-DB
Sample In-DB
- レコードのサブセットを取る、「トップNレコード」または「トップNパーセント」を取ることが出来るという点は従来のSampleツールと同様に可能。
- 以下の点は従来のSampleツールとは異なる
- 追加のサンプリング方法は提供されない
- サンプルは、事前にソートすることが出来る
Data Streaming/Data Stream Out
- DBからDesignerメモリにデータを取り出す
- 典型的な理由 - ワークフローの宛先がファイル内にある - In-memoryにはIn-dbツールがない - デザイナーで作業する前にDB内でスキニーデータを使用していた
- レコードを出力時にソートできる
Data Streaming/Data Stream In
- デザイナのメモリからDBにプッシュされたデータデザイナ
- 分単位で一時テーブル書き込みアクセスが必要
- 典型的な理由 - ワークフローの宛先がDBにある - 大規模なDBテーブルと混合するための小さなファイルのインポート - 複雑なメモリ内ツールのみからの戻り値
ハンズオン実践
In-Database関連の各種ツールの紹介等が終わった後は、個別のツールをそれぞれ用いる形で短めのハンズオンをそれぞれこなしました。
まとめ
という訳でAlteryx Inspire 2018:トレーニングセッション「In-Databaseワークフロー入門」のレポートでした。
DB関連の処理であればSQLでダイレクトに処理してしまう、という方法も取れるかと思いますが、AlteryxのIn-Database関連ツールを使う事でSQLコードを書かずとも意図した処理が実現出来るというのは嬉しいですね。途中紹介した「ハイブリッドワークフロー」の様に、従来のファイル/ETL処理とIn-DB処理を組み合わせた形で処理を行わせる事も可能ですので、用途に応じた・適したワークフローを作成していきましょう。
Alteryxロードショーとワークショップを開催します
2018年7月26日(木)にAlteryxロードショーとワークショップを開催します。すでにAlteryxをご活用中のお客様はもちろん、導入を検討している方、国内外におけるデータ分析の最新情報を知りたい方にもおすすめです。ぜひ、この機会にAlteryxの利便性を実感してください。