Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法

在具有非常大的数据集的某些情况下,每次完全刷新缓存数据可能是不切实际的。可能需要仅更新最新数据(例如当前月份或当前日期)。此缓存模式称为增量数据缓存。

目前,TIBCO Spotfire中没有增量数据缓存的内置功能,就像TIBCO Data Virtualization中一样,但这仍然可以通过使用TIBCO Spotfire Server,TIBCO Spotfire Analyst和TIBCO Spotfire Automation Services的解决方案来实现。在此示例解决方案中,有两种方法可以实现相同的目标。

第一种解决方案是当前月份的数据定期更新(每小时,每天等),而历史月份记录保持缓存并每月更新。这可以通过嵌入历史月份数据并通过信息链接仅刷新当前月份的数据来实现,同时在每个月的月初从数据库刷新历史月份数据
第二种解决方案,当前月份的数据将定期更新,而历史数据将保留在SBDF中,并且每个月末SBDF中的历史数据将使用当前月份的数据进行更新,同时避免刷新数据库中的历史数据

解决办法

 要在TIBCO Spotfire中本机实现增量缓存,可以使用以下步骤:
方案1:

  1. 使用工具>信息设计器>信息链接创建信息链接以获取历史月数据(当前月份之前的所有数据),然后在TIBCO Spotfire Analyst客户端中打开数据。将“HistoricalDateFilter”添加到由表达式%1 ,它只会提取日期在之前的数据本月的第一次约会。此表达式基于MS SQL服务器。
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第1张图片
  2.  使用工具>信息设计器>信息链接创建当前月份信息链接,创建用于获取当前月份数据的信息链接。
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第2张图片
    添加一个过滤器“CurrentDateFilter”,由表达式datefromparts组成(DATEPART(年份,%1),DATEPART(月,%1),01)= datefromparts(DATEPART(年,getdate()),DATEPART(月,getdate( )),01)它只会提取日期等于当前月份第一个日期的数据。这个表达式基于MS SQL服务器。
  3. 创建一个仪表板,其中一个数据表链接到当前月数据IL,其他数据表链接到历史数据IL。
  4. 现在将历史数据表中的行插入当前月份数据表,并创建一个值为0的虚拟整数文档属性ChangeValue。在此文档属性下创建一个操作控件python脚本,它将把历史数据表更改为嵌入式
    #HistoricalTable是设置为Historical Data表的脚本参数
    
    来自Spotfire.Dxp.Data导入DataTableSaveSettings
    
    settings = DataTableSaveSettings(HistoricalTable,False,True); 
    #第二个参数决定类型,False = embedded和True =链接到源
    Document.Data.SaveSettings.DataTableSettings.Add(设置);
  5. 要在每月的第一天刷新历史数据IL,您可以使用以下步骤设置自动化作业,这些步骤将通过配置块更改文档属性值来嵌入历史数据表,而配置块又将触发铁python脚本,然后另存为新的dxp
    1. 打开分析
      配置块:ChangeValue = 1;
    2. 使用新名称保存分析
  6. 上面创建的新dxp可以使用每日为Web Player用户的预定更新进行缓存,其中包含完整的数据集,但信息链接将仅刷新源数据库中的当前月份数据,因为将链接到历史数据IL的数据表将被嵌入

解决方案2:

  1. 使用工具>信息设计器>信息链接创建信息链接以获取历史月数据(当前月份之前的所有数据),然后在TIBCO Spotfire Analyst客户端中打开数据:
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第3张图片
    添加由表达式组成的过滤器“HistoricalDateFilter” 1 它只会提取日期在当前月份的第一个日期之前的数据。此表达式基于MS SQL服务器。
  2.  加载数据后,使用文件>导出>数据到库>将历史数据保存到SBDF将数据导出到库
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第4张图片
  3.  使用工具>信息设计器>信息链接创建当前月份信息链接,创建用于获取当前月份数据的信息链接。
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第5张图片
    添加一个过滤器“CurrentDateFilter”,它由表达式datefromparts组成(DATEPART(年份,%1),DATEPART(月,%1),01)= datefromparts(DATEPART(年,getdate()),DATEPART(月,getdate( )),01)它只会提取日期相当于当前月份第一个日期的数据。此表达式基于MS SQL服务器。
  4. 创建一个仪表板,该仪表板将一个数据表链接到历史数据SBDF并插入当前月份信息链接中的行
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第6张图片
  5. 对于Web Player用户,可以使用每日预定更新缓存上面创建的仪表板,其中包含完整数据集,但信息链接仅刷新源数据库中的当前月份数据
  6. 设置TIBCO Spotfire Automation Services作业,该作业将打开在步骤3中创建的分析并将该数据表导出到历史SBDF数据。
  7. 将此作业设置为在每个月末运行,因此在新月开始之前,因此可以将当前月份完成数据添加到缓存的历史月份数据。自动化作业需要设置为在工作时间之后或在一天结束时运行以避免重复数据,即如果自动化作业在月的最后一天运行,则历史sbdf将使用前几个月和当前月份数据进行更新。然后,如果运行预定更新以缓存分析,则会发生当前月份数据的重复,因为历史sbdf已经具有当前月份数据,而当前月份信息链接也将插入当前月份数据。因此,在计划的更新缓存当天的分析之后,应始终安排自动化作业。
    Spotfire Server管理技巧: Spotfire Server上增量数据缓存方法_第7张图片

注意:如果要从数据库刷新前几个月的数据,则需要刷新步骤1中创建的历史信息链接并在步骤2中导出到SBDF文件。
结论:
当新月开始时,您当前的月份信息链接将获取新的月份数据和历史数据SBDF现在也将缓存前几个月的数据。因此,分析中的数据集将具有合并数据,即当前数据和历史数据。

注意事项:

  • 如果您使用Microsoft SQL作为TIBCO Spotfire Server数据库,那么保存到库中的任何内容的大小将受到数据库本身强加的2GB限制。这包括使用嵌入数据保存的dxp分析文件以及保存或导出到库中的SBDF文件。有关详细信息,请参阅  KB 000028303存储在TIBCO Spotfire库中的项目的大小限制  。

参考

 Doc:创建自动化作业

  • https://docs.tibco.com/pub/sfire_autsvcs/7.11.0/doc/html/TIB_sfire_autsvcs_7.11.0_UserGuide/GUID-7215B7FA-321D-4C1B-A1AD-4EFD8C1C8CDE.html

KB:000021541如何使用Microsoft Windows任务计划程序计划自动化服务作业

  • https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-45265

KB 000028303存储在TIBCO Spotfire库中的项目的大小限制

  • https://support.tibco.com/s/article/Tibco-KnowledgeArticle-Article-48568

Doc:更改数据表存储类型

  • https://docs.tibco.com/pub/doc_remote/sfire_dev/area/doc/api/TIB_sfire-analyst_api/html/M_Spotfire_Dxp_Data_DataTableSaveSettings__ctor.htm

Doc:创建信息链接

  • https://docs.tibco.com/pub/sfire-analyst/7.11.1/doc/html/en-US/TIB_sfire-analyst_UsersGuide/id/id_creating_an_information_link.htm

 

如需要联系TIBCO原厂采购,各位可以访问如下链接

https://www.tibco.com/company/locations

中国北京Main Office Phone

+86 10 8341 3723

你可能感兴趣的:(TIBCO,Spotfire管理)