Tableauでテキスト検索の速度を上げる(パフォーマンス検証)
はじめに
Tableauに大量データを取り込んだ際、フィルターの処理速度が落ちてしまうため、
下記3パターンのテキストボックス検索で、どの方法が最も早いかパフォーマンス検証を行う。
1.通常のテキストフィルター(フィルターモード:ワイルドカード一致)
2.CONTAINS関数を利用したフィルター
3.REGEXP_MATCH関数を利用したフィルター
環境・データ量
- Tableauバージョン :Tableau 2018.1
- サンプルデータ件数:15,000,000件
準備
パラメーターと関数の作成
パラメーターと関数の作成
1.テキストフィルター(ワイルドカード一致)
Tableauの通常フィルターのため設定不要。
2.CONTAINS関数を利用したフィルター
2-1.CONTAINS関数に渡す条件入力用のパラメータを作成する。データ型は文字列。
2-2.CONTAINS関数をフィルターとして使用するための計算フィールドを作成する。
IF [CONTAINSの条件入力用パラメーター名] != "" THEN
CONTAINS([検索対象のディメンション名],[CONTAINSの条件入力用パラメーター名])
ELSE
TRUE
END
3.REGEXP_MATCH関数を利用したフィルター
3-1.REGEXP_MATCH関数に渡す条件入力用のパラメータを作成する。データ型は文字列。
3-2.REGEXP_MATCH関数をフィルターとして使用するための計算フィールドを作成する。
※正規表現を利用するための関数であるため、用途は広いが利用者によっては予期せぬ
結果が表示されることがある。
IF [REGEXP_MATCHの条件入力用パラメーター名] != "" THEN
REGEXP_MATCH([検索対象のディメンション名],[REGEXP_MATCHの条件入力用パラメーター名])
ELSE
TRUE
END
※上記式はパラメーターに条件が指定されない際に全データを表示をするよう、
条件指定時及び指定されない場合のどちらも真が返るよう定義している。
ワークシートに上記で作成した計算フィールドを設定する
1.テキストフィルター(ワイルドカード一致)
関数不要のため検索対象のディメンションをワークシートのフィルターに入れておく。
2.CONTAINS関数を利用したフィルター
上記のCONTAINS関数を使用した計算フィールドをワークシートのフィルターに設定する。
フィルター条件は「真」を指定。
3.REGEXP_MATCH関数を利用したフィルター
上記のREGEXP_MATCH関数を使用した計算フィールドをワークシートのフィルターに設定する。
フィルター条件は「真」を指定する。
※NULLを指定する理由は上述した通り、パラメーターに条件を指定しない際、
全データが表示されるようにするため。
パフォーマンス検証
1.テキストフィルター(ワイルドカード一致)
ExecutingQuery:0.44
設定が楽。リスト、ドロップダウンなど検索パターンが多いなど利点が大きい。
2.CONTAINS関数を利用したフィルター
ExecutingQuery:0.16
若干の手間がかかる。テキストボックスの検索だけなら通常のフィルターより早い。
3.REGEXP_MATCH関数を利用したフィルター
ExecutingQuery:0.28
若干の手間がかかる。テキストボックスの検索だけなら通常のフィルターより早い。
利用者が正規表現を使えるなら用途の広い条件指定が可能。
データ量が多ければ多いほど違いが出てくると思いますので、用途に応じて使い分けることで、
パフォーマンスに違いが出てくると思います。
おわりに
データ量が多い際にパフォーマンスが落ちてしまうのは当然のことなので、
どんなデータを可視化し、利用者に何を伝えたいのかをきちんと設計することで、
・不要なデータは取り込まない
・ダッシュボードに不要なワークシートを表示しない
・ワークシート上の表示件数を制限する など
目的にあった見せ方を意識した設計を行いたいですね。
Author And Source
この問題について(Tableauでテキスト検索の速度を上げる(パフォーマンス検証)), 我々は、より多くの情報をここで見つけました https://qiita.com/ryota_i/items/231ec8631cec59849b68著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .