重要: この機能により、データが一時的に Tableau の外部に移動します。接続先のデータベースが信頼できるソースからのものであることを確認します。

Tableau Desktop および Tableau Server のバージョン 2019.3 より、Hyper ではなく接続されているデータベースを使用して結合の実行を Tableau に許可することにより、単一ファイル接続と単一データベース接続のデータを結合する際のパフォーマンスを向上させることができます。このオプションを有効にすると、Tableau は最も高速なオプション (Hyper または接続されているデータベース) を選択します。Tableau が接続されているデータベースを使用する場合、ファイル接続のデータはデータベース内の一時テーブルに移動され、そこで結合が実行されます。

機能の条件

このオプションは、次の条件が満たされる場合にのみ使用できます。

  • データ ソースは、1 つ以上のファイル ベースの接続と 1 つの SQL ベースの接続で構成されています。
  • ファイルは Microsoft Excel、PDF、またはテキスト (.csv、.txt、.tsv、.tab) のファイル タイプです。
  • 接続されているデータベースは、次のいずれかです。
    • Microsoft SQL Server
    • Oracle
    • PostgreSQL
    • Vertica
    • Teradata
  • 結合タイプは内部結合です。
  • Web 作成で: [ユーザーに Web 作成の使用を許可] オプションが有効になります。

    また、サイト管理者は、Tableau Server の [設定] > [全般] タブで [データベース間結合] オプションを設定し、ユーザーが利用できるオプションを構成することもできます。これらの設定の詳細については、Tableau Server ヘルプの「サイトの Web 作成アクセスの設定」(新しいウィンドウでリンクが開く)を参照してください。

機能の条件のオーバーライド

バージョン 2020.3 以降では、管理者は、ファイル サイズ、結合タイプ、および単一のファイル接続の制限をオーバーライドして、Tableau がライブ データベース接続を使用して結合を実行するように強制できます。これにより、最適なパフォーマンス構成を試してからその判断をすることができます。単一のデータベース接続の要件は引き続き適用されます。

このオプションを有効にするには、コマンド ラインから次の情報を入力します。

  • Tableau Desktop: コマンド tableau.exe -DForceAlternativeFederationEngine=true を入力します。
  • Tableau Server: tsm configuration コマンド tsm configuration set -k native_api.force_alternative_federation_engine -v true を入力します。

    Tableau Server で構成値を設定する詳細については、Tableau Server ヘルプのtsm configuration set のオプション(新しいウィンドウでリンクが開く)を参照してください。

クロスデータベース結合でのパフォーマンス オプションの有効化

  1. Tableau Desktop で: スタート ページの [接続] で、サポートされているファイル タイプまたはデータベース タイプに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

    Web 作成で: [ホーム] または [検索] ページで [作成] > [ワークブック] をクリックし、新しいワークブックを開始してデータに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

  2. 接続先のファイルまたはデータベースを選択した後、テーブルをダブルクリックするか、キャンバスにドラッグします。

  3. 左のペインで、[接続] の下で [追加] ボタン (Web 作成では ) をクリックして、2 番目の接続を Tableau データ ソースに追加します。

    [クロスデータベース結合] オプションが表示されます。

    : このオプションが表示されない場合は、サポートされているデータ ソースだけを使用していること、および 2 つのデータ ソースのみ (ファイル 1 つとデータベース タイプ 1 つ) のみを使用していることを確認してください。それでも表示できない場合、サイト管理者が [クロスデータベース間結合] 構成オプションを [Tableau のみ] に設定した可能性があります。

  4. Tableau による結合の実行方法を変更するには、[データベース間結合] オプションの隣にある [編集] をクリックします。
  5. [データベース間結合] ダイアログで、次のいずれかのオプションを選択し、[OK] をクリックします。

    • Tableau または既存のデータベースを使用。このオプションにすると、Tableau が結合を最も高速に実行するオプション (Hyper または接続されているデータベースのどちらか) を選択できます。

    • Tableau のみを使用。このオプションは既定で、結合の実行に常に Hyper を使用します。

      [データベース間結合] オプションを使用すると、選択した内容に応じ、既定オプションである [Tableau の使用] (Hyper を使用) から、新しいオプションである [データベースの使用] に切り替えられます。

      重要: [Tableau または既存のデータベースを使用] を選択すると、結合の実行時に最も速いオプションが選択されます。この動作は、結合タイプを含む一連の基準によって事前に決定されます。たとえば、Tableau は常に非内部結合に対して [ハイパー] を選択します。

      Tableau が結合の実行に Hyper を使用する場合、このプロセスはバックグラウンドで実行され、結合が行われた場所を特定する指標は表示されません。

  6. データ ソースで使用されている利用可能なテーブルからフィールド、追加したテーブルから結合演算子およびフィールドを選択し、1 つ以上の結合句を追加します。結合句を検査し、予想どおりにテーブルを接続しているかどうかを確認します。

マルチ接続データ ソースについて

マルチ接続データ ソースの操作は、本セクションで説明した、いくつかのキャンバスを使用した他のデータ ソースの場合と同様です。

接続内のユニオン データ

データのユニオンを作成するには、同じ接続のテキスト テーブルまたは Excel テーブルを使用する必要があります。つまり、異なるデータベースの表のユニオンを作成することはできません。Tableau Desktop で、異なる Excel ワークブックで、または異なるフォルダー内のファイルでテーブルのユニオンを実行できます。詳細については、ワイルドカード検索を使用してユニオン表を作成する (Tableau Desktop)を参照してください。

異なるデータベースのデータでユニオンを作成する必要がある場合は、Tableau Prep(新しいウィンドウでリンクが開く) を使用します。

照合順序

照合順序は、文字列の値を比較および並べ替える方法を決定するデータベースのルールです。ほとんどの場合、照合順序はデータベースによって処理されます。ただし、クロスデータベース結合を操作する場合は、照合順序が異なる列を結合する場合があります。

たとえば、クロスデータベース結合が、SQL Server の大文字と小文字を区別する列と、Oracle の大文字と小文字を区別しない列で構成される結合キーを使用しているとします。このような場合、Tableau は間違って解釈される値を最小限に抑えるため、特定の照合順序を他に対してマッピングします。

次の規則はクロスデータベース結合で使用されます。

  • 列がユニコード国際コンポーネント (ICU) の照合順序標準を使用している場合、Tableau は他の列にもその照合順序を使用します。

  • すべての列が ICU の照合順序標準を使用している場合、Tableau は左のテーブルの列にもその照合順序を使用します。

  • いずれの列も ICU の照合順序標準を使用していない場合、Tableau はバイナリ照合順序を使用します。バイナリ照合順序はデータベースのロケールを意味し、列のデータ型によって、文字列の値の比較および並べ替え方法が決まります。

Microsoft Excel データを操作しており、カタカナとひらがなを区別する日本語データなど、結合実行時にデータの大文字と小文字を維持する必要がある場合は、[データ] メニューから [大文字と小文字の維持 (Excel)] オプションを有効にできます。

このオプションを選択すると、Excel データ ソースの値の大文字と小文字の区別が維持され、それが異なる値を結合するのではなく一意的に識別し、結果の行数に違いが起こります。

たとえば、あるワークシートには "House" という値があり、別のワークシートには "House"、"house"、"houSe" という値があります。既定では、2 つのテーブルを結合すると、2 つ目のワークシートの大文字と小文字の違いが無視され、2 つ目のワークシートの "House"、"house"、"houSe" は 1 つ目のワークシートの "House" と結合されます。

[大文字と小文字の維持 (Excel)] オプションを有効にすると、テーブルの結合時に大文字と小文字の違いが識別されます。結合では 1 つ目のワークシートの "House" が 2 つ目のワークシートの値 "House" とのみ一致し、"house" と "houSe" を一意的な別の値として読み取るため、結合結果の表示は少なくなります。

注: このオプションは Tableau がサポートするすべての言語で使用でき、オペレーティング システムのロケールに依存しません。このオプションは、Microsoft Excel データ ソースでのみ使用できます。

計算およびマルチ接続データ ソース

マルチ接続データ ソースでは、計算のサブセットのみを使用できます。

Tableau Desktopで: 次の両方に当てはまる場合、特定の計算を使用できます。

  • マルチ接続データ ソース内のすべての接続でサポートされる

  • Tableau 抽出でサポートされます。

Web 作成時 (Tableau Cloud および Tableau Server): マルチ接続データ ソース内のすべての接続でサポートされる場合は、特定の計算を使用できます。

ストアド プロシージャ

ストアド プロシージャはマルチ接続データ ソースでは使用できません。

接続内のデータのピボット

データのピボットを作成するには、同じ接続のテキスト列または Excel 列を使用する必要があります。つまり、異なるデータベースの列をピボットに含めることはできません。

抽出ファイルを最初の接続にする(Tableau Desktop のみ)

複数接続のデータ ソースで抽出ファイルに接続する場合は、抽出 (.tde または .hyper) ファイルへの接続が最初の接続になるようにします。これにより、抽出の一部となる可能性のあるカスタマイズを保持します (既定のプロパティ、計算フィールド、グループ、別名などに対する変更を含む)。

注:複数接続のデータ ソースで複数の抽出ファイルに接続する必要がある場合、最初の接続内の抽出のカスタマイズのみが保持されます。

ファイル ベースのデータへの接続を含むマルチ接続データ ソースの抽出(Tableau Desktop のみ)

Excel などのファイル ベースのデータへの接続を含むマルチ接続データ ソースの抽出をパブリッシュする場合は、[外部ファイルを含める] オプションを選択すると、ファイル ベースのデータのコピーがデータ ソースの一部としてサーバー上に配置されます。この場合、ファイル ベースのデータのコピーをダウンロードでき、そのコンテンツは他のユーザーによってアクセスされます。抽出から意図的に除外したファイルベースのデータに機密情報が含まれている場合は、データ ソースをパブリッシュする際に [外部ファイルを含める] を選択しないでください。

データ ソースのパブリッシュの詳細については、データ ソースのパブリッシュを参照してください。

クエリとクロスデータベース結合について

各接続について、Tableau は結合のデータベースに独立クエリを送信します。結果は、抽出ファイルの形式で一時テーブルに保存されます。

たとえば、「dbo.listings」と「reviews$」という 2 つのテーブルへの接続を作成するとします。これらのテーブルは、2 つの異なるデータベース (SQL Server および Excel) に保存されます。Tableau は各接続で独立してデータベースのクエリを行います。データベースはクエリを実行してフィルターや計算などのカスタマイズを適用し、Tableau は各接続の結果を一時テーブルに保存します。この例では、FQ_Temp_1 は SQL Server への接続用の一時テーブル、FQ_Temp_2 は Excel への接続用の一時テーブルです。

SQL Server テーブル

Excel テーブル

クロス データベース結合を実行すると、Tableau Desktop によって一時テーブルが結合されます。これらの一時テーブルは、Tableau がクロス データベース結合を実行するため必要です。

テーブルを結合した後、"topn" フィルターが適用され、データ グリッドに表示する値の数を最初の 1,000 行に制限します。このフィルターはデータ グリッドの応答性と、[データ ソース] ページの全体的なパフォーマンスを維持するために適用されます。

結合テーブル

ありがとうございます!