Tableau を Azure Databricks に接続する

この記事では、Azure Databricks を Tableau Desktop に接続する方法と、他の Tableau エディションに関する情報を示します。 パートナー接続経由で接続することも、手動で接続することもできます。

Tableau で Azure Databricks をデータ ソースとして使用すると、強力な対話型分析を提供し、大規模なデータセットへと拡張することで、データ サイエンティストやデータ エンジニアの貢献をビジネス アナリストにも届けることができます。

Tableau を Azure Databricks に接続する方法については、Tableau Databricks のドキュメントを参照してください。

要件

Partner Connect を使用して Tableau Desktop に接続する

Partner Connect を使用すると、数回クリックするだけでコンピューターまたは SQL ウェアハウスを Tableau Desktop に接続できます。

  1. Azure Databricks のアカウント、ワークスペース、サインイン ユーザーのすべてが、Partner Connect の要件を満たしていることをご確認ください。
  2. サイド バーで、Partner Connect ボタン [Partner Connect] をクリックします。
  3. [Tableau] タイルをクリックします。
  4. [パートナーに接続する] ダイアログの [コンピューティング] で、接続する Azure Databricks コンピューティング リソースの名前を選択します。
  5. [接続ファイルをダウンロードする] を選択します。
  6. ダウンロードした接続ファイルを開くと、Tableau Desktop が起動します。
  7. Tableau Desktop で認証資格情報を入力し、[サインイン] をクリックします。
    • Microsoft Entra ID トークンを使うには、[ユーザー名] に「token」と入力し、[パスワード] に Microsoft Entra ID トークンを入力します。
    • Azure Databricks アクセス トークンを使用するには、[ユーザー名] に「トークン」と入力し、[パスワード] に個人用アクセス トークンを入力します。
    • Microsoft Entra ID 資格情報を使用するには、[接続の編集] をクリックし、[データ] タブでデータベースをダブルクリックし、[認証] リストで [Microsoft Entra ID] を選択します。
      • Tableau Desktop 2021.1 以上の場合:

        1. Azure Government で Microsoft Entra ID (旧称 Azure Active Directory) B2B ゲスト アカウントまたは Azure Databricks を使用していない場合は、OAuth エンドポイントに「https://login.microsoftonline.com/common」と入力できます。

        認証を構成する

        1. Azure Government で Microsoft Entra ID B2B ゲスト アカウントまたは Azure Databricks を使用している場合は、管理者に連絡して専用の Microsoft Entra ID ウェアハウスを取得します。

        Note

        管理者でない場合、管理者の承認が必要というエラーが表示されます。 Tableau に接続するためのアクセス許可をグローバル管理者、クラウド アプリケーション管理者、またはアプリケーション管理者に付与してもらってから、再度サインインしてみてください。

        Microsoft Entra ID アカウントで管理者の同意ワークフローが有効な場合、Tableau へのアクセスを要求するように Tableau Desktop から求められます。 グローバル管理者、クラウド アプリケーション管理者、またはアプリケーション管理者が要求を承認した後、再度サインインしてみてください。

Tableau Desktop への接続に成功したら、ここで停止できます。 この記事の残りの部分では、Tableau Desktop との手動接続、Tableau Server on Linux の設定、Tableau Online の使い方、Tableau でのベスト プラクティスとトラブルシューティングなど、Tableau に関する追加情報について説明します。

Tableau Desktop に手動で接続する

Tableau Desktop を使用してコンピューターまたは SQL ウェアハウスに接続するには、次の手順に従ってください。

Note

Tableau Desktop を使用した接続を高速化するには、Partner Connect を使用します。

  1. Tableau Desktop を起動します。

  2. [ファイル] > [新規] の順にクリックします。

  3. [データ] タブで、[データに接続] をクリックします。

  4. コネクタの一覧で [Databricks] をクリックします。

  5. [サーバーホスト名][HTTP パス] を入力します。

  6. [認証] で、認証方法を選択し、認証資格情報を入力し、[サインイン] をクリックします。

    • Microsoft Entra ID トークンを使うには、[個人用アクセス トークン] を選び、[パスワード] に Microsoft Entra ID トークンを入力します。

    • Azure Databricks 個人用アクセス トークンを使用するには、[個人用アクセス トークン] を選択し、[パスワード] に個人用アクセス トークンを入力します。

    • Microsoft Entra ID 資格情報を使用するには、Microsoft Entra ID を選択します。

      Tableau Desktop 2021.1 以上の場合:

      • Azure Government で Microsoft Entra ID (旧称 Azure Active Directory) B2B ゲスト アカウントまたは Azure Databricks を使用していない場合は、OAuth エンドポイントに「https://login.microsoftonline.com/common」と入力できます。

        認証を構成する

        • Azure Government で Microsoft Entra ID B2B ゲスト アカウントまたは Azure Databricks を使用している場合は、管理者に連絡して専用の Microsoft Entra ID ウェアハウスを取得します。

      Note

      管理者でない場合、管理者の承認が必要というエラーが表示されます。 Tableau に接続するためのアクセス許可をグローバル管理者、クラウド アプリケーション管理者、またはアプリケーション管理者に付与してもらってから、再度サインインしてみてください。

      Microsoft Entra ID アカウントで管理者の同意ワークフローが有効な場合、Tableau へのアクセスを要求するように Tableau Desktop から求められます。 グローバル管理者、クラウド アプリケーション管理者、またはアプリケーション管理者が要求を承認した後、再度サインインしてみてください。

    ワークスペースで Unity カタログが有効になっている場合、既定のカタログも追加で設定します。 [詳細設定] タブの [接続のプロパティ] に Catalog=<catalog-name> を追加します。 既定のカタログを変更するには、[初期 SQL] タブに「USE CATALOG <catalog-name>」と入力します。

Tableau Desktop への接続に成功したら、ここで停止できます。 この記事の残りの情報では、Tableau Server on Linux の設定、Tableau Online の使い方、Tableau でのベスト プラクティスとトラブルシューティングなど、Tableau に関する追加情報について説明します。

Tableau Server on Linux

/etc/odbcinst.ini を編集して以下を含めます。

[Simba Spark ODBC Driver 64-bit]
Description=Simba Spark ODBC Driver (64-bit)
Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so

注意

Tableau Server on Linux では、64 ビット処理アーキテクチャをお勧めします。

Tableau Online でブックをパブリッシュおよび更新する

この記事では、Tableau Desktop から Tableau Online にブックをパブリッシュし、データ ソースが変更されるたびにブックを更新する方法について説明します。 Tableau Desktop のブックTableau Online アカウントが必要です。

  1. Tableau Desktop からブックのデータを抽出する: Tableau Desktop で、パブリッシュするブックが表示された後、[データ] > <data-source-name> > [データの抽出] をクリックします。
  2. [データの抽出] ダイアログ ボックスで、[抽出] をクリックします。
  3. 抽出したデータを保存するローカル コンピューター上の場所を参照し、[保存] をクリックします。
  4. ブックのデータ ソースを Tableau Online にパブリッシュする: Tableau Desktop で、[サーバー] > [データ ソースのパブリッシュ] > <data-source-name> をクリックします。
  5. [Tableau Server サインイン] ダイアログ ボックスが表示された場合は、[Tableau Online] リンクをクリックし、画面の指示に従って Tableau Online にサインインします。
  6. [データ ソースを Tableau Online にパブリッシュ] ダイアログ ボックスの [更新が無効] の横にある [編集] リンク をクリックします。
  7. 表示されるフライアウト ボックスの [認証] で、[更新が無効][更新アクセスを許可する] に変更します。
  8. このフライアウトの外側の任意の場所をクリックして非表示にします。
  9. [ブックを更新してパブリッシュされたデータ ソースを使用する] を選択します。
  10. [発行] をクリックします。 データ ソースが Tableau Online に表示されます。
  11. Tableau Online の [パブリッシュ完了] ダイアログ ボックスで、[スケジュール] を クリックし、画面の指示に従います。
  12. Tableau Online にブックをパブリッシュする: Tableau Desktop で、パブリッシュするブックを表示し、[サーバー>ブックのパブリッシュ] をクリックします。
  13. [ブックを Tableau Online にパブリッシュする] ダイアログ ボックスで、[パブリッシュ] をクリックします。 ブックが Tableau Online に表示されます。

Tableau Online は、設定したスケジュールに従ってデータ ソースに対する変更をチェックし、変更が検出された場合はパブリッシュされたブックを更新します。

詳細については、Tableau Web サイトで以下を参照してください:

ベスト プラクティスとトラブルシューティング ガイド

Tableau クエリを最適化するための基本的なアクションは次の 2 つです。

  • 1 つのグラフまたはダッシュボードでクエリおよび視覚化されるレコードの数を減らす。
  • 1 つのグラフまたはダッシュボードで Tableau によって送信されるクエリの数を減らす。

どちらを最初に試すかは、ダッシュボードによって異なります。 個々のユーザーの様々なグラフがすべて同一のダッシュボードに表示されている場合は、Tableau から Azure Databricks に送信されるクエリが多すぎる可能性があります。 グラフが 2 つしかないのに読み込みに時間がかかる場合は、Azure Databricks によって返されるレコードが多すぎて効果的に読み込めない可能性があります。

Tableau Desktop と Tableau Server の両方で利用できる Tableau パフォーマンス記録は、特定のワークフローまたはダッシュボードを実行する際に待機時間の原因となっているプロセスを特定することで、パフォーマンスのボトルネックがどこにあるのか理解するのに役立ちます。

パフォーマンス記録を有効にして Tableau の問題をデバッグする

たとえば、クエリの実行が問題の場合は、クエリを実行するデータ エンジン プロセスまたはデータ ソースに対処する必要があります。 ビジュアル レイアウトのパフォーマンスが遅い場合は、それが VizQL である必要があります。

パフォーマンス記録でクエリの実行中に待機時間が示されている場合は、結果を返す Azure Databricks により、またはデータを VizQL の SQL に処理する ODBC/コネクタ オーバーレイによって時間が長くかかりすぎている可能性があります。 これが発生した場合は、返されたデータを分析し、分析パターンを変更して、すべてを 1 つのダッシュボードに詰め込んでクイック フィルターに依存するのではなく、グループ、セグメント、または記事ごとにダッシュボードを作成する必要があります。

並べ替えや視覚的なレイアウトが原因でパフォーマンスが低下している場合は、ダッシュボードが返すマークの数が問題である可能性があります。 Azure Databricks は、100 万件のレコードをすばやく返すことができますが、Tableau ではレイアウトを計算して結果を並べ替えることができない場合があります。 これが問題である場合は、クエリを集計して下位レベルにドリルダウンします。 Tableau は実行中のコンピューターの物理リソースによってのみ制限されているため、より大規模なコンピューターを試すこともできます。

パフォーマンスレコーダーの詳細なチュートリアルについては、「パフォーマンスの記録を作成する」を参照してください。

Tableau Server と Tableau Desktop のパフォーマンス

一般的に、Tableau Desktop で実行されるワークフローは Tableau Server でも高速化されません。 Tableau Desktop で実行されないダッシュボードは Tableau Server でも実行されません。

Tableau Server ではトラブルシューティング時に考慮すべきプロセスが多くあるため、Desktop を使用する方がはるかに優れたトラブルシューティング手法です。 Tableau Desktop で動作するけれど Tableau Server では動作しない場合、Tableau Desktop にない Tableau Server のプロセスに問題を絞り込むことができます。

構成

既定では、接続 URL のパラメーターは Simba ODBC DSN のパラメーターよりも優先されます。 Tableau から ODBC 構成をカスタマイズするには、次の2つの方法があります:

  • 1 つのデータ ソース用 .tds ファイル:

    1. データ ソースの保存」の手順に従って、データ ソースの .tds ファイルをエクスポートします。
    2. odbc-connect-string-extras='' ファイルでプロパティ行 .tds を検索し、パラメーターを設定します。 たとえば、AutoReconnectUseNativeQuery を有効にするには、行を odbc-connect-string-extras='AutoReconnect=1,UseNativeQuery=1' に変更します。
    3. 再接続して、.tds ファイルを再度読み込みます。

    コンピューティング リソースは、大量の結果を収集するために使用するヒープ メモリを減らすために最適化されています。そのため、フェッチ ブロックあたりで処理できる行は、Simba ODBC の既定値よりも多くなります。 RowsFetchedPerBlock=100000' プロパティの値に odbc-connect-string-extras を追加します。

  • すべてのデータ ソース用 .tdc ファイル:

    1. .tdc ファイルを作成したことがない場合は、TableauTdcExample.tdc をフォルダー Document/My Tableau Repository/Datasources に追加できます。
    2. すべての開発者の Tableau Desktop インストールにファイルを追加して、ダッシュボードが共有されたときに機能するようにします。

グラフの最適化 (ワークシート)

Tableau ワークシートのパフォーマンスを向上させるために役立つ、さまざまな戦術グラフの最適化があります。

頻繁に変更せず、操作用でないフィルターについては、コンテキスト フィルターを使用します。これにより、実行時間が短縮されます。 経験則として、クエリで if/else ステートメントの代わりに case/when ステートメントを使用することもできます。

Tableau はフィルターをデータ ソースにプッシュダウンできるため、クエリ速度が向上します。 データ ソースのプッシュダウン フィルターの詳細については、「パラメーターを使用して複数のデータ ソースをフィルター処理する」と「複数のデータ ソース間でデータをフィルター処理する」を参照してください。

完全なデータセットをスキャンするため、テーブルの計算を回避してください。 テーブル計算の詳細については、「テーブル計算を使用した値の変換」を参照してください。

ダッシュボードを最適化する

以下は、Tableau ダッシュボードのパフォーマンスを向上させるために適用できるヒントとトラブルシューティングの演習です。

Tableau ダッシュボードが Azure Databricks に接続されている場合の一般的な問題の原因は、多数の異なるユーザー、関数、またはセグメントに対処する個々のダッシュボードで、クイック フィルターを使用することです。 グローバル クイック フィルターは、ダッシュボード上のすべてのグラフに関連付けることができます。 5 つのグラフを含むダッシュボードに 1 つのグローバル クイック フィルターを適用すると、少なくとも 10 個のクエリが Azure Databricks に送信されます。 フィルターが追加されるにつれてこの数値は大きくなり、パフォーマンスの問題が発生する可能性があります。これは、Spark が同時に開始される多数の同時クエリを処理するように構築されていないためです。 使用している Azure Databricks クラスターまたは SQL ウェアハウスが、大量のクエリを処理するのに十分な大きさでない場合、このことが問題になります。

最初の手順として、Tableau のパフォーマンス記録を使用して、問題の原因のトラブルシューティングを行うことをお勧めします。

並べ替え視覚的なレイアウトが原因でパフォーマンスが低下している場合は、ダッシュボードが返すマークの数が問題である可能性があります。 Azure Databricks は、100 万件のレコードをすばやく返すことができますが、Tableau ではレイアウトを計算して結果を並べ替えることができない場合があります。 これが問題である場合は、クエリを集計して下位レベルにドリルダウンします。 Tableau は実行中のコンピューターの物理リソースによってのみ制限されているため、より大規模なコンピューターを試すこともできます。

Tableau でのドリルダウンの詳細については、「詳細へのドリルダウン」を参照してください。

一般に、詳細なマークが多数あると、分析情報を提供しないため、多くの場合、分析パターンが不適切になることがよくあります。 上位レベルの集計からドリルダウンすることで、処理と視覚化が必要なレコードの数がよりわかりやすくなり、数も減ります。

アクションを使用してダッシュボードを最適化する

Tableau _actions を使用してマーク (たとえば、地図上の州) をクリックすると、クリックした州に基づいてフィルター処理される別のダッシュボードに移動します。 これにより、1 つのダッシュボードに複数のフィルターを設定する必要が減り、生成する必要があるレコードの数が減ります。 (フィルター処理する述語を取得するまでレコードを生成しないようにアクションを設定しています。

詳細については、「アクション」と、「ダッシュボードのパフォーマンスを向上させる 6 つのヒント」を参照してください。

キャッシュ

データのキャッシュは、ワークシートやダッシュボードのパフォーマンスを向上させるための優れた方法です。

Tableau でのキャッシュ

Tableau では、データがライブ接続か抽出のいずれであるかにかかわらず、データに戻る前に、4 つのキャッシュ層があります。

  • タイル: 誰かがまったく同じダッシュボードをロードしていて、何も変更されていない場合、Tableau はチャートに同じタイルを再利用しようとします。 これは Google マップのタイルと似ています。
  • モデル: タイルを使用できない場合に、視覚エフェクトトを生成するために使用される数学的計算があります。 Tableau Server は、同じモデルを使用しようと試みます。
  • 要約: クエリの集計結果も格納されます。 これは、3 番目の "防御" レベルです。 以前のクエリで Sum (Sales)、Count (orders)、Sum (Cost) が返され、将来のクエリでは Sum (Sales) のみが必要となった場合、Tableau はその結果を取得して使用します。
  • ネイティブキャッシュ: クエリが別のクエリとまったく同じ場合、Tableau では同じ結果を使用します。 これは、キャッシュの最後のレベルです。 これが失敗した場合、Tableau はデータに移動します。

Tableau でのキャッシュの頻度

Tableau には、キャッシュの頻度を調整するための管理設定があります。 サーバーが頻繁に更新するように設定されている場合、Tableau は最大 12 時間、データをキャッシュに保持します。 [頻繁に更新] に設定されている場合、Tableau はページを更新するたびにデータに戻ります。

同じダッシュボードがもう一度使用されている場合 (たとえば、"月曜のパイプライン レポート")、ダッシュボードがすべて同じキャッシュを使用するように、更新頻度を低くするようにサーバーを設定する必要があります。

Tableau でのキャッシュの準備

Tableau では、ダッシュボードを表示する前に、ダッシュボードのサブスクリプションを設定して、キャッシュを準備できます。 これは、サブスクリプション メールの画像を生成するためにダッシュボードをレンダリングする必要があるためです。 「サブスクリプションを使用した Tableau Server のキャッシュの準備」を参照してください。

Tableau Desktop: エラー The drivers... are not properly installed が表示される

問題点: Tableau Desktop を Databricks に接続しようとすると、Tableau の接続ダイアログにエラーメッセージが表示されます。このページには、ドライバーのリンクとインストール手順が記載されています。

原因: Tableau Desktop のインストールでサポートされているドライバーが実行されていません。

解決策: Databricks ODBC ドライバー バージョン 2.6.15 以降をダウンロードします。

関連項目: Tableau Web サイトのエラー "ドライバー...が正しくインストールされていません。”

主キー/外部キー制約

主キー (PK) 制約と外部キー (FK) 制約を Databricks から Tableau に伝達するには、制約に関する両方のプラットフォームの機能と制限事項を理解する必要があります。

Azure Databricks の制約について

Databricks では、Databricks Runtime 15.2 以降の主キー制約と外部キー制約がサポートされています。 これらの制約は情報であり、既定では適用されません。つまり、データ整合性違反は防止されませんが、クエリを最適化し、データ リレーションシップに関するメタデータを提供するために使用できます。 「主キーと外部キーのリレーションシップを宣言する」 を参照してください。

Tableau が制約を使用してテーブルリレーションシップを作成する方法について

Tableau では、主キー制約と外部キー制約は直接適用されませんが、リレーションシップを使用してデータ接続をモデル化します。 Tableau で制約を処理するには、Tableau のデータ モデルが論理レイヤーと物理レイヤーの 2 レベルのモデリングを提供していることを理解する必要があります。 「 Tableau データ モデルを参照してください。 この 2 レベルのデータ モデルが Azure Databricks 制約に与える影響は、Tableau のリレーションシップとして認識されます。

Azure Databricks を Tableau に接続する

Azure Databricks を Tableau に接続すると、Tableau は、既存のキー制約と一致するフィールドに基づいて、テーブル間の物理レイヤーでリレーションシップの作成を試みます。 Tableau は、Azure Databricks で定義されている主キー制約と外部キー制約に基づいて、物理レイヤーでのリレーションシップの検出と作成を自動的に試みます。 キー制約が定義されていない場合、Tableau は一致する列名を使用して結合を自動生成します。 論理レイヤーでは、単一列名の一致のみがリレーションシップの決定に使用されます。 物理レイヤーでは、この列名の一致により、単純な (単一列) キーリレーションシップと複合 (複数列) キー リレーションシップの両方が検出されます。

Tableau が一致するフィールドを特定できない場合は、列、条件、制約の種類を指定して、物理レイヤーの 2 つのテーブル間の結合リレーションシップを手動で指定する必要があります。 UI の論理レイヤーから物理レイヤーに移行するには、論理レイヤーのテーブルをダブルクリックします。

その他のリソース