次の方法で共有


Tableau と Azure Databricks を接続する

この記事では、パートナー Connect を使用して Azure Databricks から Tableau Desktop および、Tableau Desktop または Tableau Cloud から Azure Databricks に接続する方法について説明します。 この記事には、Linux 上の Tableau Server に関する情報も含まれています。

Note

Tableau Server から Azure Databricks のサインオンを構成するには、「Tableau Server から Azure Databricks サインオンを構成する」を参照してください。

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

Tableau と Azure Databricks の接続要件

Partner Connect を使用して Azure Databricks に 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 を Azure Databricks に接続する

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 Cloud を Azure Databricks に接続する

Tableau Cloud からコンピューティング リソースまたは SQL ウェアハウスに接続するには、次の手順に従ってください。

  • 新しいブックを開始する
  • メニュー バーで、[データ]>[新しいデータ ソース]の順にクリックします。
  • [データに接続する] ページで、[コネクタ]>[Databricks] の順にクリックします。
  • Azure Databricks ページで、サーバー ホスト名HTTP パス の値を入力します。
  • 認証方法を選択し、要求された情報 (ある場合) を入力します。
  • [サインイン] をクリックします。

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 Desktop から Tableau Cloud でブックを公開および更新する

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

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

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

詳細については、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 ダッシュボードのパフォーマンスを向上させるために適用できるヒントとトラブルシューティングの演習です。

Azure Databricks に接続された Tableau ダッシュボードにおいて、多数の異なるユーザー、関数、またはセグメントに対応する個々のダッシュボード上のクイックフィルターは、問題の一般的な原因となり得ます。 クイック フィルターは、ダッシュボード上のすべてのグラフに関連付けることができます。 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) 制約を Azure Databricks から Tableau に伝達するには、制約に関する両方のプラットフォームの機能と制限事項を理解する必要があります。

Azure Databricks の制約について

Azure 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 の論理レイヤーから物理レイヤーに移行するには、論理レイヤーのテーブルをダブルクリックします。

その他のリソース