次の方法で共有


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. サイドバーで、Marketplace アイコンをクリックして、Marketplaceに進みます。
  3. [Partner Connect の統合] で、[すべて表示] をクリックします。
  4. [Tableau] タイルをクリックします。
  5. [パートナーに接続する] ダイアログの [コンピューティング] で、接続する Azure Databricks コンピューティング リソースの名前を選択します。
  6. [接続ファイルをダウンロードする] を選択します。
  7. ダウンロードした接続ファイルを開くと、Tableau Desktop が起動します。
  8. 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 を使用していない場合は、https://login.microsoftonline.com/commonに「」と入力できます。

        認証を構成する

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

        Note

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

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

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 を使用していない場合は、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

Note

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 が結果を返すのに時間がかかりすぎるか、ODBC/Connector オーバーレイによってデータが VizQL 用SQLに処理されている可能性があります。 これが発生した場合は、返されたデータを分析し、分析パターンを変更して、すべてを 1 つのダッシュボードに詰め込んでクイック フィルターに依存するのではなく、グループ、セグメント、または記事ごとにダッシュボードを作成する必要があります。

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

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

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

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

トラブルシューティングを行う際に考慮すべきプロセスが Tableau Server に多く含まれているため、デスクトップの使用ははるかに優れたトラブルシューティング手法です。 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を使用してマーク (マップ上の状態など) をクリックし、クリックした状態に基づいてフィルター処理する別のダッシュボードに送信されます。 _actionsを使用すると、1 つのダッシュボードで複数のフィルターを使用する必要が減り、生成する必要があるレコードの数が減ります。 (フィルター処理する述語を取得するまで、レコードを生成しないようにアクションを設定しています。)

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

キャッシュ

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

Tableau でのキャッシュ

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

  • タイル: 他のユーザーが同じダッシュボードを読み込んで何も変更しない場合、Tableau はグラフに同じタイルを再利用しようとします。 これは Google マップのタイルと似ています。
  • モデル: タイル キャッシュを使用できない場合は、数学的計算のモデル キャッシュを使用して視覚化が生成されます。 Tableau Server は、同じモデルを使用しようと試みます。
  • 要約: クエリの集計結果も格納されます。 これは、3 番目の "防御" レベルです。 以前のクエリで Sum (Sales)、Count (orders)、Sum (Cost) が返され、将来のクエリでは Sum (Sales) のみが必要となった場合、Tableau はその結果を取得して使用します。
  • Native Cache: クエリが別のクエリと同じ場合、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 で制約を操作するには、Tableau のデータ モデルに論理レイヤーと物理レイヤーの 2 つのレベルのモデリングが用意されていることを理解する必要があります。 「 Tableau データ モデルを参照してください。 この 2 レベルのデータ モデルが Azure Databricks 制約に与える影響は、Tableau のリレーションシップとして認識されます。

Azure Databricks を Tableau に接続する

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

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

その他のリソース