조인을 위한 참조 무결성 가정
경우에 따라 데이터 메뉴에서 참조 무결성 가정 옵션을 선택하여 조인의 쿼리 성능을 개선할 수 있습니다. 이 옵션을 사용하는 경우 Tableau는 특히 뷰의 필드에서 참조하는 경우에만 조인된 테이블을 쿼리에 포함합니다.
데이터에 참조 무결성(아래의 정의 참조)이 있지만 데이터베이스가 참조 무결성을 강제로 적용하지 않거나 적용할 수 없는 경우 이 설정을 사용하는 것이 좋습니다. 데이터베이스에 참조 무결성을 구성하는 옵션이 있는 경우 해당 옵션을 사용하는 것이 데이터베이스와 Tableau 모두에서 성능을 향상시킬 수 있으므로 이 설정을 사용하는 것보다 나은 선택입니다. Tableau의 참조 무결성 가정 옵션은 Tableau 측의 성능에만 영향을 줄 수 있습니다. 데이터에 참조 무결성이 없는데 이 설정을 사용하면 쿼리 결과를 신뢰할 수 없습니다.
참조 무결성의 개념을 이해하기 위해 두 개의 테이블인 Sales와 Product Catalog가 있는 Sales 데이터에 연결한다고 가정합니다. 이러한 두 테이블은 아래와 같이 표시됩니다.
Sales
| Product Catalog
|
판매된 제품은 모두 Product Catalog에 나열되어야 하므로 Sales 테이블의 모든 행은 Product Catalog 테이블에 일치하는 행을 가집니다. 이러한 두 테이블이 Product ID에 대해 조인되면 결과적으로 테이블이 다음과 같이 표시됩니다.
Product ID | Product Name | Product ID | Sale Amount | Transaction Date |
1 | 10 Inch Tablet | 1 | 100 | 10/1/2012 |
1 | 10 Inch Tablet | 1 | 2000 | 10/2/2012 |
2 | Smart Phone | 2 | 50 | 9/30/2012 |
3 | Desk Lamp | 3 | 10 | 8/21/2012 |
이제 지역별 매출 금액을 살펴보기 위한 뷰를 작성해 보십시오. 기본적으로 Sale Amount 필드를 뷰로 끌면 다음과 같은 쿼리가 만들어집니다.
SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID
참조 무결성 가정을 선택하면 Tableau에서 조인된 테이블에 참조 무결성이 있다고 가정합니다. 즉, Sales 테이블에는 항상 Product Catalog 테이블에서 일치하는 행이 있음을 확인한 것입니다. 이는 사실이므로 Tableau는 이러한 결과를 반환하기 위해 Product Catalog 테이블의 정보를 필요로 하지 않습니다. Sales Amount 필드를 뷰로 끌면 Tableau에서 다음과 같이 쿼리를 단순화할 수 있습니다.
SELECT SUM([Sales Amount]) FROM [Sales]
이렇게 단순화된 쿼리는 조인 작업을 제거하므로 보다 신속한 결과를 반환할 수 있습니다. 이 옵션은 내부 조인에만 영향을 주며 단일 테이블을 포함하는 데이터 원본에는 영향을 주지 않습니다.