Tableau を Databricks に接続する

この記事では、Databricks を Tableau Desktop に接続する方法と、他の Tableau エディションに関する情報について説明します。 Partner Connect を介して接続することも、手動で接続することもできます。

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

Tableau Desktop を使用してレポートとビジュアライゼーションを作成する方法の詳細については、「 チュートリアル: Tableau Desktop 入門」を参照してください。

要件

Databricks Unity Catalog で管理されているデータを Tableau に接続する

  • Tableau Desktop 2021.4 以降。 Tableau Desktop をコンピューターにダウンロードしてインストールします。

  • Databricks ODBC ドライバー のバージョン 2.6.19 以降。 デスクトップにダウンロードしたインストールファイルを使用して、ドライバをインストールします。 Tableau の指示に従って、Databricks への接続を設定します。Tableau Desktop が ODBC ドライバーとどのように連携するかの詳細については、「 Tableau と ODBC 」を参照してください。

従来の Databricks Hive metastore で管理されているデータを Tableau に接続する

  • Tableau デスクトップ 2019.3 以降。

  • ODBC ドライバー 2.6.15 以降Databricks 。

認証オプション

次のいずれかの認証オプションを使用します。

  • (推奨) Tableau がアカウントで OAuth アプリケーションとして有効になっている。 Tableau Desktop はデフォルトで有効になっています。 Tableau Cloud または Tableau Server を有効にするには、 「Tableau Server から Databricks サインオンを構成する」を参照してください。

    Tableau の内部 ID プロバイダー (IdP) に登録されているユーザーのみが、シングル サインオン (SSO) を使用して認証できます。 Tableau の OAuth トークンは 90 日後に期限切れになります。

  • Databricks の個人用アクセストークン

    自動化されたツール、システム、スクリプト、アプリを使用して認証する場合のセキュリティのベスト プラクティスとして、Databricks ではOAuth トークンを使用することをお勧めします。

    個人用アクセストークン認証を使用する場合、Databricks では、ワークスペース ユーザーではなく、 サービスプリンシパル に属する個人用アクセストークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンを管理する」を参照してください。

  • Databricks のユーザー名 (通常は Eメール アドレス) とパスワード。

    Databricks ワークスペースで シングル サインオン (SSO) が有効になっている場合、ユーザー名とパスワードの認証が無効になることがあります。 その場合は、代わりに Databricks 個人用アクセス トークンを使用します。

Partner Connect を使用して Tableau デスクトップに接続する

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

  1. Databricks アカウント、ワークスペース、およびサインインしているユーザーがすべて Partner Connectの 要件を満たし ていることを確認します。

  2. サイドバーで、「 Partner Connect ボタン Partner Connect 」をクリックします

  3. [ Tableau ] タイルをクリックします。

  4. [ パートナーへの接続 ] ダイアログの [コンピュート] で、接続する Databricks コンピュート リソースの名前を選択します。

  5. [ 接続ファイルのダウンロード] を選択します。

  6. ダウンロードした接続ファイルを開くと、Tableau Desktop が起動します。

  7. Tableau Desktop で、認証資格情報を入力し、[ サインイン] をクリックします。

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

    • Databricks のユーザー名とパスワードを使用するには、[ユーザー名] に ユーザー名 を入力し、[パスワード] に パスワードを入力します。

Tableau Desktop に正常に接続したら、ここで停止できます。 この記事の残りの情報では、Tableau Desktop との手動接続、Linux での Tableau Server のセットアップ、Tableau Online の使用方法、Tableau でのベスト プラクティスとトラブルシューティングなど、Tableau に関する追加情報について説明します。

Tableau Desktop に手動で 接続する

Tableau Desktop を使用してクラスターまたは SQLウェアハウスに接続するには、次の手順に従います。

Tableau Desktop でより高速に接続するには、 Partner Connectを使用します。

  1. Tableau Desktop を起動します。

  2. [ ファイル] > [新規作成] をクリックします。

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

  4. コネクタのリストで、[ Databricks] をクリックします。

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

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

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

    • Databricks のユーザー名とパスワードを使用するには、[ユーザー名 / パスワード] を選択し、[ユーザー名] に ユーザー名 を入力し、[パスワード] に パスワードを入力します。

    • OAuth/Microsoft Entra ID. [OAuth エンドポイント] に「https://{<server-hostname>}/oidc」と入力します (<server-hostname> はクラスターまたは SQLウェアハウスのサーバーホスト名です。ブラウザー ウィンドウが開き、IdP にサインインするように求められます。

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

Tableau Desktop に正常に接続したら、ここで停止できます。 この記事の残りの情報では、Linux での Tableau Server のセットアップ、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 オンライン] リンクをクリックし、画面の指示に従って Tableau Online にサインインします。

  6. [データソースを Tableau Online にパブリッシュ] ダイアログ ボックスで、[更新が有効になっていない] の横にある [編集] リンクをクリックします。

  7. 表示されるポップアップ ボックスで、[ 認証] で [更新 が有効になっていない ] を [ 更新アクセスを許可する] に変更します。

  8. このポップアップの外側をクリックして非表示にします。

  9. [ ワークブックの更新] を選択して、パブリッシュされた DATA を使用します

  10. [ 公開] をクリックします。 データソースが Tableau Online に表示されます。

  11. Tableau Online の [ パブリッシュの完了 ] ダイアログ ボックスで、[ スケジュール] をクリックし、画面の指示に従います。

  12. ワークブックを Tableau Online にパブリッシュする: Tableau Desktop で、パブリッシュするワークブックが表示された状態で、[ サーバー] > [ワークブックのパブリッシュ] をクリックします。

  13. [ ワークブックを Tableau Online に パブリッシュ] ダイアログ ボックスで、[ パブリッシュ] をクリックします。 ワークブックが Tableau オンラインに表示されます。

Tableau Online は、設定したスケジュールに従って DATA への変更を確認し、変更が検出された場合はパブリッシュされたワークブックを更新します。

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

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

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

  • クエリーされ、1 つのグラフまたはダッシュボードで視覚化されるレコードの数を減らします。

  • Tableau から 1 つのグラフまたはダッシュボードで送信されるクエリーの数を減らします。

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

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

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

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

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

パフォーマンスの低下が並べ替えまたは視覚的なレイアウトによって引き起こされている場合、問題はダッシュボードが返そうとしているマークの数である可能性があります。 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 つの方法があります。

  • .tds 単一のデータソースのファイル:

    1. 「データソースの保存 」の手順に従って、データソースの .tds ファイルをエクスポートします。

    2. .tds ファイルで敷地境界線 odbc-connect-string-extras='' を見つけて、パラメーターを設定します。たとえば、 AutoReconnectUseNativeQueryを有効にするには、行を odbc-connect-string-extras='AutoReconnect=1,UseNativeQuery=1'に変更します。

    3. 接続を再接続して、 .tds ファイルをリロードします。

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

  • .tdc すべての DATA のファイル:

    1. .tdc ファイルを作成したことがない場合は、 TableauTdcExample.tdcDocument/My Tableau Repository/Datasourcesフォルダーに追加できます。

    2. すべての開発者の Tableau Desktop インストールにファイルを追加して、ダッシュボードが共有されているときに機能するようにします。

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

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

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

Tableau はフィルターを Data Data にプッシュダウンできるため、クエリーの速度を大幅に高速化できます。 データソースプッシュダウンフィルタの詳細については、「 パラメーターを使用した複数のデータソース間のフィルタリング 」および 「複数のデータソース間でのデータのフィルタリング 」を参照してください。

表計算は、データセット全体をスキャンする必要があるため、可能であれば避けることをお勧めします。 表計算の詳細については、「 表計算による値の変換」を参照してください。

ダッシュボード の最適化

ここでは、Tableau ダッシュボードのパフォーマンスを向上させるために適用できるヒントとトラブルシューティングの演習をいくつか紹介します。

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

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

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

Tableau でのドリルダウンに関する情報については、 詳細へのドリルダウンを参照してください。

一般に、多くの粒状のマークが表示されることは、知見を提供しないため、分析パターンが不十分であることがよくあります。 上位レベルの集計からドリルダウンすると、より意味があり、処理および視覚化する必要があるレコードの数が減ります。

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

「海洋沸騰」ダッシュボードと同じ分析と情報を取得するために、グループからセグメント、記事にドリルするには、Tableau アクションを使用できます。 アクションを使用すると、マーク (マップ上の状態など) をクリックして、クリックした状態に基づいてフィルター処理する別のダッシュボードに送信できます。 これにより、1 つのダッシュボードに多数のフィルターを配置する必要性が減り、フィルター処理する述語を取得するまでレコードを生成しないようにアクションを設定できるため、生成する必要があるレコードの数が減ります。

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

キャッシング

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

Tableau でのキャッシュ

Tableau には、データがライブ接続にあるか抽出にあるかに関係なく、データに戻る前に 4 つのキャッシュ層があります。

  • タイル: 誰かがまったく同じダッシュボードを読み込んでいて何も変更がない場合、Tableau は同じタイルをグラフに再利用しようとします。 これは、Googleマップのタイルに似ています。

  • モデル: タイルを使用できない場合にビジュアライゼーションを生成するために使用される数学的計算があります。 Tableau Server は同じモデルを使用しようとします。

  • 要約: クエリーの集計結果も保存されます。 これは3番目の「防御」レベルです。 以前のクエリーで Sum(売上)、カウント (注文)、Sum(コスト) が返され、将来のクエリーが Sum(Sales) だけを必要とする場合、Tableau はその結果を取得して使用します。

  • ネイティブ キャッシュ: クエリーが別のクエリーとまったく同じ場合、Tableau は同じ結果を使用します。 これはキャッシュの最後のレベルです。 これが失敗した場合、Tableau はデータに移動します。

Tableau でのキャッシュ頻度

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

同じダッシュボードが繰り返し使用されている顧客 ("月曜日の朝のパイプライン レポート" など) は、すべてのダッシュボードが同じキャッシュを使用するように、[更新頻度を減らす] に設定されたサーバー上にある必要があります。

Tableau でのキャッシュのウォーミングアップ

Tableau では、ダッシュボードを表示する前に送信されるダッシュボードのサブスクリプションを設定することで、キャッシュをウォームアップできます。 これは、サブスクリプション Eメールのイメージを生成するためにダッシュボードをレンダリングする必要があるためです。 サブスクリプションを使用した Tableau Server キャッシュのウォームアップを参照してください。

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

問題: Tableau Desktop を Databricks に接続しようとすると、接続ダイアログにエラー メッセージが表示され、ドライバーのダウンロード ページへのリンクが表示され、ドライバーのリンクとインストール手順を確認できます。

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

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

参照: エラー「ドライバ...正しくインストールされていません」 を Tableau Webサイトに表示してください。