クロスデータベース結合のパフォーマンス向上
重要: この機能により、データが一時的に Tableau の外部に移動します。接続先のデータベースが信頼できるソースからのものであることを確認してください。
単一のデータベースと単一のファイル間でデータを結合する場合、Tableau では、Hyper ではなくデータベースを使用して結合を実行することでパフォーマンスを向上させることができます。この既定の設定により、Tableau で最速のアプローチ (Hyper または接続されたデータベース) を選択できるようになります。Tableau が接続されているデータベースを使用する場合、ファイル接続のデータはデータベース内の一時テーブルに移動され、そこで結合が実行されます。
機能の条件
接続されたデータベースを結合に使用するオプションは、次の条件が満たされている場合にのみ使用できます。
- データ ソースは、1 つ以上のファイル ベースの接続と 1 つの SQL ベースの接続で構成されています。
- 結合するファイルは、Microsoft Excel、PDF、またはテキスト (.csv、.txt、.tsv、.tab) のいずれかのファイル タイプである必要があります。
- 接続されているデータベースは、次のいずれかです。
- Microsoft SQL Server
- Oracle
- PostgreSQL
- Vertica
- Teradata
- Web 作成で: [ユーザーに Web 作成の使用を許可] オプションが有効になります。
クロスデータベース結合での優先オプションの変更
- 最初のデータ ソースに接続します。
- Tableau Desktop で: スタート ページの [接続] で、サポートされているファイル タイプまたはデータベース タイプに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。
- Web 作成で: [ホーム] または [探索] ページで [作成] > [ワークブック] をクリックし、新しいワークブックを開始してデータに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。
- 接続先のファイルまたはデータベースを選択した後、テーブルをダブルクリックするか、キャンバスにドラッグします。
左のペインで、[接続] の下で [追加] ボタン (Web 作成では ) をクリックして、2 番目の接続を Tableau データ ソースに追加します。
[クロスデータベース結合] オプションが表示されます。
注: このオプションが表示されない場合は、サポートされているデータ ソース タイプだけを使用していること、および少なくとも 2 つのデータ ソース (1 つのデータベースと、サポートされているタイプの 1 つまたは複数のファイル) を使用していることを確認してください。
- Tableau による結合の実行方法を変更するには、[データベース間結合] オプションの隣にある [編集] をクリックします。
- [クロスデータベース結合] ダイアログで、次のいずれかのオプションを選択し、[OK] をクリックします。
- Always perform joins in the database (常にデータベース内で結合を実行する): このオプションにより、Tableau では、ライブ データベースを使用して結合を実行するように強制されます。
- Let Tableau decide where to join (Tableau で結合を実行する場所を決定できるようにする): このオプションは既定であり、Tableau で結合を最も高速に実行するオプション (Hyper または接続されているデータベースのどちらか) を選択できるようにします。
選択を反映するために、[Multiple Connections (複数の接続)] パネルの [クロスデータベース結合] オプションが更新されます。
重要: [Let Tableau decide where to join (Tableau で結合を実行する場所を決定できるようにする)] を選択すると、結合の実行時に最も速いオプションが選択されます。この動作は、結合タイプを含む一連の基準によって事前に決定されます。たとえば、Tableau は非内部結合に対して Hyper を常に選択します。
Tableau が結合の実行に Hyper を使用する場合、このプロセスはバックグラウンドで実行され、結合が行われた場所を特定する指標は表示されません。
- データ ソースのフィールド、結合演算子、追加したテーブルのフィールドを選択して、1 つまたは複数の結合句を追加します。結合句を検査し、予想どおりにテーブルを接続しているかどうかを確認します。
マルチ接続データ ソースについて
マルチ接続データ ソースの操作は、本セクションで説明した、いくつかのキャンバスを使用した他のデータ ソースの場合と同様です。
接続内のユニオン データ
データのユニオンを作成するには、同じ接続のテキスト テーブルまたは Excel テーブルを使用する必要があります。つまり、異なるデータベースのテーブルをユニオンすることはできません。Tableau Desktop では、さまざまなディレクトリにあるさまざまな Excel ワークブックおよびファイルをまたがってテーブルをユニオンできます。詳細については、ワイルドカード検索を使用してユニオン表を作成する (Tableau Desktop)を参照してください。
異なるデータベースのデータでユニオンを作成する必要がある場合は、Tableau Prep(新しいウィンドウでリンクが開く) を使用します。
照合順序
照合順序は、文字列の値を比較および並べ替える方法を決定するデータベースのルールです。通常、照合順序はデータベースによって処理されます。ただし、クロスデータベース結合を操作する場合は、照合順序が異なる列を結合する場合があります。
たとえば、クロスデータベース結合が、SQL Server の大文字と小文字を区別する列と、Oracle の大文字と小文字を区別しない列で構成される結合キーを使用しているとします。このような場合、Tableau は間違って解釈される値を最小限に抑えるため、特定の照合順序を他に対してマッピングします。
次の規則はクロスデータベース結合で使用されます。
- 列がユニコード国際コンポーネント (ICU) の照合順序標準を使用している場合、Tableau は他の列にもその照合順序を使用します。
- すべての列が ICU の照合順序標準を使用している場合、Tableau は左のテーブルの列にもその照合順序を使用します。
- いずれの列も ICU の照合順序標準を使用していない場合、Tableau はバイナリ照合順序を使用します。バイナリ照合順序はデータベースのロケールを意味し、列のデータ型によって、文字列の値の比較および並べ替え方法が決まります。
Excel データの大文字と小文字の区別を維持する
結合の実行時に Excel データの大文字と小文字の区別を維持する必要がある場合は、[データ] メニューから [大文字と小文字の維持 (Excel)] オプションを有効にします。
このオプションを選択すると、Tableau では、大文字と小文字が異なる値を結合するのではなく、大文字と小文字の区別が維持されて、大文字と小文字が異なる値が一意的に識別されるため、結果の行数に差が出ます。
たとえば、「House」を含むワークシートと、「house」と「HOUSE」を含む別のワークシートを考えてみましょう。既定では、Tableau は大文字と小文字の区別を無視し、「house」の 3 つのバリエーションをすべて同じものとみなします。[大文字と小文字の維持 (Excel)] オプションを有効にすると、Tableau では、テーブルの結合時に大文字と小文字の区別が維持され、「House」、「house」、「HOUSE」は別の値として扱われます。
注: このオプションは Tableau がサポートするすべての言語で使用でき、オペレーティング システムのロケールに依存しません。このオプションは、Microsoft Excel データ ソースでのみ使用できます。
計算およびマルチ接続データ ソース
マルチ接続データ ソースでは、計算のサブセットのみを使用できます。
- Tableau Desktop では、次の両方に当てはまる場合、特定の計算を使用できます。
- マルチ接続データ ソース内のすべての接続でサポートされる
- Tableau 抽出でサポートされます。
- Web 作成 (Tableau Cloud および Tableau Server) では、特定の計算が複数接続データ ソース内のすべての接続でサポートされる場合、その計算を使用できます。
ストアド プロシージャ
ストアド プロシージャは複数接続データ ソースでは使用できません。
接続内のデータのピボット
データのピボットを作成するには、同じ接続のテキスト列または Excel 列を使用する必要があります。つまり、異なるデータベースの列をピボットに含めることはできません。
抽出ファイルを最初の接続にする(Tableau Desktop のみ)
複数接続のデータ ソースで抽出ファイルに接続する場合は、抽出 (.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 がクロス データベース結合を実行するため必要です。
テーブルを結合した後、Top N フィルターが適用され、データ グリッドに表示する値の数を最初の 1,000 行に制限します。このフィルターはデータ グリッドの応答性と、[データ ソース] ページの全体的なパフォーマンスを維持するために適用されます。
結合テーブル