コラム詳細

非エンジニアのTableauユーザのためのSQL基礎

2024年04月15日

  • Tableau

はじめに
セラクCCCのSalesforce推進部Tableau担当のUです。初心者にも使いやすい直感的な操作性はTableauの大きな強みですが、上級者を目指すためには機能や操作時の挙動を論理的に理解する必要があります。そこで本記事では、データ抽出の効率化に役立つデータベース言語SQLについてご紹介します。

 

SQLとは

SQLはデータ格納やデータ抽出、データ書き換えなどデータベース操作に利用されているデータベース言語の1つです。Excelのシートのように「行と列」でデータを管理するリレーショナルデータベース(関係データベース)を操作するための言語であり、すべてのデータベースで利用できる訳ではありません。オブジェクト指向データベースやXMLデータベースなど、ほかの種類のデータベース操作には利用できない点には注意が必要です。

 

SQLはIEC/ISO(国際電気標準会議/国際標準化機構)およびANSI(米国規格協会)で国際規格として標準化されており、幅広く利用されています。SQLを利用する代表的なデータベースには、マイクロソフト社のMicrosoft SQL ServerとAccessやオラクル社のOracle Databaseといった大手企業提供のものだけでなく、MySQLやPostgreSQLなどのオープンソースソフトウェアもあります。

 

SQLはTableauでどのように機能しているのか

データベース以外にTableauをはじめとしたデータ分析ツールでもSQLは利用されています。SQLはデータベースを操作・制御するための言語であり、アプリケーションやシステム開発に利用できないため、データ分析ツールにデータベース操作機能を組み込む場合には、プログラミング言語とSQLの両方が必要です。
Tableauからリレーショナルデータベースを操作する際には、ユーザの指示をSQLに変換してデータベースに伝えます。指示はシンプルな問い合わせと応答で構成されており、複雑な処理の際にはアプリケーションがデータベースと対話するように問い合わせと応答を繰り返します。この問い合わせをクエリと呼びますが、SQLを使いこなすためには、クエリを読み書きできるようにSQLの文法や構文への習熟が必要です。

 


<データ分析ツールのSQL利用イメージ>

 

TableauでSQL知識が役立つシーン

非エンジニアがSQLをマスターするためには多くの学習コストと時間が必要です。そのため一度にまとめて学ぶのではなく、役立つ具体的なシーンごとに必要なSQL知識を学ぶと効率的です。

 

グラフやダッシュボード作成の依頼

Tableauの内部でSQLがどのように機能しているかに加え、基礎的なSQL構文について学ぶだけでも、グラフやダッシュボード作成が変わります。
多くのTableau初心者はグラフやダッシュボード作成を熟練者に依頼しますが、使いやすいグラフやダッシュボードを作成してもらうためにSQL知識は不可欠です。作成者はTableauとデータベースのやり取りをSQL構文で論理的に考えるため、依頼時に作成者にとっての分かりやすさ、つまりSQLでどう実現するかを意識できるとトータルでの作業が効率化できます。一方でSQL知識を持たないグラフ閲覧者は自分の利用画面をイメージして依頼しますが、この方法では作成者にとって重要な情報が抜け落ちたり、要件が曖昧になってしまったりする恐れがあります。

 

たとえば「データ更新はリアルタイムに近い方がよい」、「操作した際の処理遅延は少ない方がよい」と要望2つを並べてしまうと、「データのリアルタイム更新は抽出よりも処理負荷が大きい」ために実現できません。この場合は、2つの要望の優先順位付けが必要です。
またクエリを増やしてデータソースを細かく加工しておく方法とザックリと加工したデータソースをTableauに取り込んだ後でフィルタリングする方法、どちらが低負荷かといったケースバイケースの問題について考える際にもSQL知識が欠かせません。具体的な利用イメージをしっかりと共有してSQLを使って実現しやすいモノを作成してもらうことが重要です。

 


<グラフ閲覧者と作成者の視点の違い>

 

Tableauの処理速度向上

利用頻度の高いSQL構文について学び、「どういった指示か」という内容を想像できるよう習熟したならば、Tableauの処理速度向上に挑戦してみましょう。
「パフォーマンスの記録」は『Tableau Prep Builder』や『Tableau Desktop』、『Tableau Cloud』で利用できるパフォーマンス改善のための機能であり、操作の処理にかかった時間(Elapsed Time)を可視化できます。
処理時間が長くなってしまう理由には「データソースへの接続」もありますが、「クエリのコンパイル」と「クエリの実行」がネックになっている場合はクエリを確認して以下のような方法で処理速度を向上できます。

 

クエリのコンパイル(Compile Query)
クエリのコンパイルは、Tableau がクエリ生成に費やす時間です。「クイックフィルタ数の多さ」や「計算の複雑さ」、「ワークブックの複雑さ」などが原因で生成されるクエリが複雑になるとコンパイルに必要な時間も長くなってしまいます。
ワークブックの簡略化やダッシュボードの機能であるフィルターアクションの使用、参照元データベース側で計算処理をしておくといった対策が効果的です。

 

クエリの実行(Executing Query)
ライブ接続でクエリ実行に時間がかかりすぎる場合は、参照しているデータベースの構造がTableauに最適化されていない可能性があるため、接続方法を「抽出」に変更すると効果的です。
抽出でクエリ実行に時間がかかる主な原因は、クイックフィルタ数です。データ抽出時にフィルタリングの一部を削除し、Tableauダッシュボードのフィルターアクションを使うといったようにフィルタの種類を分けると効果的にクエリを減らして実行速度をアップできます。

 

まとめ
Tableau上級者を目指すためには、機能や仕組みを論理的に理解する必要があります。Tableauをドラッグ&ドロップで操作している裏側でプログラムはどのように動作しているのか理解を深めることで、より効果的に活用できるようになります。もちろんエンジニアではないTableauユーザがプログラムについて詳しく学ぶのは大変です。そういった場合には、本記事でご紹介した基礎からはじめ、利用頻度が高い部分に絞って実践的なコツを覚えるなど、学習負荷を抑える工夫が欠かせません。
当社はSalesforce/Tableauの活用支援サービスのプロフェッショナルです。300名(23年5月時点)超の専門コンサルタントやエンジニアを擁し、人材派遣から教育までSalesforce/Tableau導入と定着のさまざまな実績があります。社内にTableauに関する教育のノウハウが無いとお困りの場合にはぜひご相談ください。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください