通过不同的数据限制进入 Spotfire 的数据 table

Limit data coming into Spotfire by a different data table

我在 Year/Month 和 Table B 上有 Table A 提示。Table B 也有一个 Year/Month 列。 Table A 是默认数据 table(先拉入)。我在公共 Year/Month 列上建立了 Table A 和 B 之间的关系。

目标是让 Table B 仅提取 Year/Month 与 Table A 上的 Year/Month 匹配的数据(用户输入的内容)。目的是防止用户多次输入 Year/Month。

问题是 Table B 包含近 3500 万条记录。我不想做的是让 Spotfire 提取所有 3500 万条记录。目前正在发生的事情是 Spotfire 正在拉取所有这些记录,然后通过将过滤设置为仅在 Table B 上包含过滤行,我将可视化中看到的内容限制在 200,000 行以下。我宁愿从 200,000 行开始。

问题:有没有办法强制 Spotfire 按另一个数据 table (Table A) 过滤数据 table (Table B)将数据 table (Table B) 拉过,因此只将少量记录拉入内存?

我写这篇文章的依据是大多数人利用信息 link 将数据导入 Spotfire,尤其是数据未嵌入分析的大型数据集。话虽这么说,与 Spotfire 应用程序相比,我更喜欢在数据源处处理尽可能多的加入/过滤/按摩。以下是我对最佳做法的看法及其原因。

Tables / 作为信息的视图与程序 Links

大多数人都熟悉 Table/View 结构并通过两种方式之一将数据导入 Spotfire

  1. 根据作者定义的数据关系在信息设计器中创建所有连接/links,方法是从可用的数据源中选择单个表
  2. 在完成所有连接/数据关系的数据源处创建一个视图(或类似对象),从而为 Spotfire 提供单个平面数据文件

就个人而言,选项 2 更容易如果您可以访问数据源,因为数据源旨在处理此类工作。 Spotfire 只是提供了它,但功能有限(即复杂查询、Intellisense 等不可用。没有本机 IDE)。更好的是存储过程恕我直言,这就是原因。

在上面的选项 1 和 2 中,如果要添加列,则必须更改数据源中的视图/源代码,或者在信息设计器中单独添加列。这会创建矮小的对象并使您的库混乱。例如,当您创建一个信息 link 时,会出现一个包含所有相关元素的文件夹。如果您想稍后添加列,您将拥有另一个用于添加任何列的文件夹,这会让人感到困惑且难以管理。如果您在数据源中创建一个过程以 return 您需要的数据,并且稍后想要添加一些列,您只需在数据源中更改它。即改变程序。其他一切都将由 Spotfire 继承...您所要做的就是单击 Spotfire 中的 "reload data" 按钮。您不必更改信息设计器中的任何内容。此外,您可以轻松添加新参数、设置默认参数属性或提示用户,使之成为一种非常有效的数据检索方法。 当数据源是 OLTP 而不是 data-mart/data-warehouse(即数据尚未聚合/清理)时,这是完美的,但在数据仓库环境中也很强大,因为嗯。

放弃 GUI,编辑 SQL

我发现管理条件、参数、连接路径等有点烦人——但我就是这样。相反,在可能的情况下,我更喜欢单击我的信息 Link 中所有元素旁边的 "Edit SQL" 并更改那里的 SQL。这将允许数据库人员在更熟悉的环境中工作。