内容:
- 连接到您的数据
- Microsoft Excel
- 使用数据的提示
- 文本文件
- 微软访问
- JSON 文件
- PDF 文件
- 空间文件
- 统计文件
- 用户定义的编码
- 其他文件
- Tableau Server 或 Tableau Online
- 肌动矩阵
- 风向纹
- 阿里分析数据库 MySQL 版
- 阿里巴巴数据湖分析
- 阿里巴巴麦克斯计算
- 连接到 Amazon Athena
- Amazon Aurora for MySQL
- Amazon EMR Hadoop Hive
- Azure Data Lake Storage Gen2
- Azure SQL Database
- Azure SQL Synapse Analytics
- Datorama by Salesforce
- Google Cloud SQL
- 谷歌驱动器
- Hortonworks Hadoop Hive
- IBM BigInsights
- IBM DB2
- SAP Sybase ASE
- IBM PDA (Netezza)
- Microsoft PowerPivot
- Microsoft SQL Server
- MongoDB BI Connector
- Oracle Essbase
- PostgreSQL
- Salesforce CDP
- SAP NetWeaver Business Warehouse
- SAP SuccessFactors
- SAP Sybase ASE
- SAP Sybase IQ
- ServiceNow ITSM
- Sharepoint 列表
- SingleStore
- Snowflake
- Snowflake with OAuth
- Spark SQL
- Teradata
- Teradata OLAP Connector
- TIBCO Data Virtualization (Cisco Information Server)
- Vertica
- Web 数据连接器
- Tableau 和 JDBC
- SSL for JDBC Connections
- Tableau 和 ODBC
- 使用扩展程序库中合作伙伴构建的连接器
- 使用连接器 SDK 构建的连接器
- 自定义和调整连接
- 示例:自定义 ODBC 连接
- 运行初始 SQL
- 颜色图例突出显示
- 设置数据源
- 计划数据源
- 构造用于分析的数据
- 关联您的数据
- 使用关系进行多表数据分析
- 数据源和分析的变化
- 有关 Tableau 的新数据模型的问题
- Tableau 数据模型
- 关系与联接有何不同
- 使用性能选项优化关系
- 关联基数和引用完整性
- 分析如何适用于使用关系的多表数据源
- 不要害怕关系
- 不要害怕关系中的计算
- 不要害怕更深层次的关系
- 联接数据
- 在数据网格中查看联接结果
- 联接疑难解答
- 假设存在引用完整性
- 提高跨数据库联接的性能
- 混合您的数据
- 使用数据混合为字段值指定别名
- 将字段并入主数据源
- 数据混合疑难解答
- 对摘要数据进行混合
- 合并数据
- 使用剪贴板数据创建数据源
- 连接到自定义 SQL 查询
- 使用存储过程
- 使用推荐的数据源和表
- 将字段转换为日期字段
- 对数据进行转置(从列到行)
- 使用数据解释器清理您的数据
- 将一个字段拆分为多个字段
- 筛选数据源中的数据
- 了解字段类型检测和命名改进之处
- 提取数据
- 数据提取升级为 .hyper 格式
- 刷新数据提取
- 向数据提取中添加数据
- 在数据提取中实现计算
- 更新正在使用数据提取的服务器数据源
- Tableau 数据提取命令行实用工具
- Tableau Hyper API
- 管理数据源
- 编辑数据源
- 刷新数据源
- 替换数据源
- 导出数据源
- 升级数据源
- 关闭数据源
- 使用多维数据集数据源
- 创建切片筛选器
- 如何创建计算成员
- 多维分层结构
- 在分层结构中下钻和上钻
- 完善的转置
- 定义唯一值
- 实用工具维度
假设存在引用完整性
tableau- 版本 :2022.1 及更高版本
适用于: Tableau Desktop
有些情况下,您可以通过从“数据”菜单中选择“假设存在引用完整性”选项来改善联接的查询性能。如果使用此选项,Tableau 将仅在视图中的字段明确引用查询中的联接表时才包含该表。
如果您知道数据具有引用完整性(请参见下面的定义)但数据库未强制或无法强制引用完整性,则适合于使用此设置。如果您可以选择在数据库中配置引用完整性,那么这是一个比使用此设置更好的选择,因为它可以同时提高数据库和 Tableau 的性能。Tableau 中的“假设存在引用完整性”选项只影响 Tableau 端的性能。如果您的数据没有引用完整性而您启用了此设置,则查询结果可能不可靠。
若要了解什么是引用完整性,请假设连接到包含两个表的销售数据:“销售额”和“产品目录”。这两个表如下所示:
销售额 产品 ID(外键)销售额交易日期11002012 年 10 月 1 日120002012 年 10 月 2 日2502012 年 9 月 30 日3102012 年 8 月 21 日 | 产品目录 产品 ID(主键)产品名称110 英寸平板电脑2智能手机3台灯4内存条 |
由于销售的所有产品都必须在“产品目录”中列出,因此销售表中的每一行在“产品目录”表中都有一个对应的行。这两个表通过产品 ID 联接后,您会得到与下面类似的表:
产品 ID | 产品名称 | 产品 ID | 销售额 | 交易日期 |
1 | 10 英寸平板电脑 | 1 | 100 | 2012 年 10 月 1 日 |
1 | 10 英寸平板电脑 | 1 | 2000 | 2012 年 10 月 2 日 |
2 | 智能手机 | 2 | 50 | 2012 年 9 月 30 日 |
3 | 台灯 | 3 | 10 | 2012 年 8 月 21 日 |
现在,假设您构建了一个视图来按区域查看销售额。默认情况下,将“销售额”字段拖到视图中可创建如下所示的查询:
SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID
选择“假设存在引用完整性”即表示您告知 Tableau 联接的表具有引用完整性。换句话说,您确认“销售”表始终有一行与“产品目录”表相匹配。因为这是真的,因此 Tableau 不需要“产品目录”表中的任何信息来返回这些结果。将“销售额”字段拖到视图中后,Tableau 可将查询简化为:
SELECT SUM([Sales Amount]) FROM [Sales]
此简化的查询通常可更快地返回结果,因为它省去了联接操作。此选项仅影响内部联接,不影响只包含一个表的数据源。