随着各位亲使用Spotfire的能力的进阶,大家对Spotfire使用的问题也越来越多,如下是关于Spotfire数据访问方面的常见问题的问与回答,原文来自:https://community.tibco.com/wiki/tibco-spotfire-data-access-faq
1. 您建议何时预先加载数据以及何时按需使用?
2. 我们正在用Hadoop替换我们的SQL数据库。从SQL迁移到Hadoop时,Spotfire有哪些注意事项?
a) 连接方法
b) 查询速度
c) 功能支持
3. 我们经常使用Spotfire的Unpivot数据转换。是否可以在最终用户通过将Unpivot操作下载到数据库并将其配置为信息链接或数据连接的一部分来加载数据之前执行Unpivot?
4. 在Spotfire中执行UNION /插入行时有哪些可用选项?
5. Spotfire中的关系似乎基于INNER JOINS。有没有办法改变关系的JOIN类型?
6. 在将数据加载到Spotfire之前,如何在数据集中包含或排除数据(行)?例如,基于true或false列中的值?
a) 提示
b) 基于参数的自定义查询
c) 按需查询
7. 您对将行级安全性与非常大的嵌入式数据结合使用的建议是什么?
8. 有哪些选项可用于将信息写回Spotfire的数据源?
9. 建议的连接星型模式的方法是什么?
10. 我该怎么做才能提高Spotfire的数据加载速度?
a) 实时查询/数据库内
b) 内存查询
11. 使用实时查询/数据库内数据表时,Spotfire是否限制为10.000行?
12. Spotfire可以将多少行提取到数据表中?
13. 除了将数据表保存为文件大小有限的CSV文件外,用户还可以将大数据表保存为Spotfire文件格式以供日后使用吗?
14. 我们可以将提取的数据保存到Amazon Redshift等数据库中吗?
15. Spotfire内存数据表支持多少列?
16. Spotfire是否支持脚本,SQL命令和自动化?
a) 脚本:
b) 自定义查询:
c) SQL命令:
d) 自动化服务:
e) 预定更新:
17. 如何提高Apache Hive查询性能?
a) LLAP博客
b) LLAP教程
c) LLAP提高
Spotfire ®可以预先从数据源中提取数据,或根据您与Spotfire客户端的交互按需加载数据片段。预先加载“静态”数据有很多好处。您在分析会话期间掌握了所有数据,在分析数据时没有加载时间。您可以独立于数据源分析Spotfire数据引擎中的数据,并选择何时刷新数据。然而,按需数据使您能够分析更多数据,这确实是一个大数据特征。它可以根据您与分析的交互,从数据源提供数据切片,从而分析更多数据。按需数据经常用于将数据导入Spotfire的内存数据引擎,但也可用于数据库内数据表。根据需要与数据库内部组合可减少数据库内查询处理的行数,从而实现跨更大数据集的分析并加快可视化的呈现速度。下面是一个表格,其中包含每种方法的一些优缺点。
脚本 | 预先加载数据/静态 | 按需加载数据 |
数据大小 | 可以分析的数据大小取决于客户端计算机具有多少内存以及等待数据加载可行的时间。对于较大的数据大小,通常安排在夜间执行数据加载。如果此选项可行,则建议使用数据加载选项。 | 通过仅提供给定时间所需的数据,可以分析更多数据。适用于内存和数据库。 |
加载时间 | 在完成任何分析之前,所有加载时间都会在前面发生。 | 上一个会话中的数据会在分析文件中缓存时立即加载。在分析会话期间根据需要加载新数据,这意味着在分析会话期间偶尔会有等待时间。 |
就像SQL数据库一样,Spotfire连接到Hadoop的SQL接口。仔细选择Hadoop查询引擎非常重要,以避免以后出现意外情况。Hive,Impala,Spark SQL和Drill都提供不同的聚合功能。以下是一些需要考虑的事项。
连接方法
Spotfire允许您分析数据表中的数据。这些数据表可以复制到Spotfire的内存引擎中,也可以保存在外部数据源中。后一种数据表类型,数据库内数据表,仅由Spotfire中的元数据视图表示。
在记忆中 | 实时查询/数据库内 | 内存+实时查询 |
查询在Spotfire的内存中数据引擎中执行,该引擎可以对任何数据集进行极快的计算,并启用所有Spotfire功能。支持按需数据表。 | 查询在外部数据源的数据引擎中执行。与内存数据表相比,期望能够处理最大量的数据,但是可视化和过滤器的等待时间也更长。支持按需数据表。 | 成功的关键通常是在同一分析中组合数据加载方法。例如,尽可能多地加载到内存中。然后对大数据聚合的MASTER视图使用实时查询。当用户深入查看DETAILS时,使用按需将行级事务加载到内存中。 |
查询速度
使用更高的查询速度,使用数据库内数据表和实时查询进行分析可以获得更多数据和更复杂的计算。更高的查询速度还意味着(计划的)数据提取需要更少的时间来完成。
SQL数据库 | Hadoop |
Teradata,HPE Vertica,IBM Netezza,SAP HANA和IBM DB2 BLU等分析数据库通常非常快。这意味着它们通常是使用数据库内数据表及其实时查询为许多并发Spotfire用户和分析文件提供服务的能力。 | 查询速度通常与SQL数据库不相同,但另一方面可以跨越几乎无限量的数据。建议不要将MapReduce上的Hive用于数据库内和交互式实时查询。 期望使用LLAP,Impala和Spark SQL在具有Tez的SQL引擎Hive上获得更好的性能。 还有与Hadoop紧密集成的数据库。例如Apache HAWQ和IBM BigSQL。在这种情况下,它们表示为Greenplum和具有类似功能的Spotfire的IBM DB2数据库。 此外,Hadoop上还提供了与Microsoft SQL Server Analysis Services兼容的多维数据集。例如Apache Kylin,Kyvos和AtScale。 索引引擎Jehtro还为Hadoop提供了非常快速的SQL查询接口。Facebook的数据库Presto也值得一提。 |
功能支持
SQL数据库 | Hadoop的 |
广泛,通常包括像binning这样的功能。 | 支持的函数数量通常与大多数SQL数据库不相同,但随着时间的推移而增长。数据连接器包含Spotfire功能到连接器数据源中的功能的映射。如果您认为某个功能应该映射但不,请与我们分享您的想法上的Spotfire的想法门户网站在这里。 |
有关功能支持的更多详细信息,请参阅的Spotfire Web帮助这里,请参考“数据连接器/Connector”
在向分析中添加数据源(例如信息链接)时,可以使用Spotfire的Unpivot数据转换。也可以稍后添加为单独的步骤。要在数据源中执行此操作,需要使用自定义SQL,作为信息链接的一部分或作为数据连接中自定义查询的一部分。
使用Spotfire 7.8及以上版本,推荐引擎可以帮助用户在适用时将数据添加为行,并自动匹配列。可以将其他列添加到最终数据表中,Spotfire会跟踪新的和现有的原始列。如果使用UNION INTERSECT或UNION MINUS添加行很有价值,也烦请在Spotfire的Idea门户网站上告诉我们,我们可以在日后的产品版本中予以添加该功能。也可以使用自定义查询或SQL,请参阅上面有关Unpivot的部分。
关系用于画笔链接/brush linking(跨可视化标记)以及使用例如过滤器面板对表示为单独数据表的数据进行过滤。但是,关系通常会排除记录,并且需要多次添加“空”记录,以确保主表中的相同记录位于任何相关表中。
要消除此问题,可以使用连接器定义数据表(内存中或数据库内)。通过选择表并在数据源中使用自定义或现有关系,Spotfire将所有表视为一个虚拟连接数据表。这消除了对Spotfire关系的需要,因为已经在数据源/数据连接中定义了表关系。最终用户可以自由分析一个虚拟连接的表维度。
连接到数据表时,如果在数据连接中定义了包含/排除条件,则可以节省加载时间,内存和设置过滤器的时间。Spotfire提供了一些不同的方法。
提示/Prompts
信息链接和数据连接器都支持提示/Prompts。这使得创建选择对话框变得容易,业务用户可以从中选择唯一值。
基于参数的自定义查询
数据连接器支持参数化的自定义查询,使您可以根据分析中的交互性将值传递到SQL查询中。这可用于基于例如文档属性或Spotfire的DOMAIN,GROUP和USER变量来限制数据。后者有助于从通用数据集中过滤掉个人数据。
按需查询
按需是在初始加载之前和分析会话期间根据用户与标记,过滤和操作导致文档属性更改的交互来限制数据的常用方法。
由于加载具有千兆字节嵌入数据的分析文件所花费的时间,因此使用预定更新。计划更新将分析文件加载到Web Player的内存中,以便在业务用户早上进入办公室时为其准备就绪。但是,由于数据是由作为服务帐户的预定更新用户加载的,因此加载了所有数据,并且在许多情况下,仅允许用户查看完整数据集的每个片段。
为了将使用预定更新的大型嵌入数据集的预加载与个人数据相结合,将查找表和Spotfire用户身份与完整数据集结合使用。这被称为个性化信息链接,这里将更详细地描述。
我们的想法是,连接比数据加载要快得多。当用户登录并打开分析文件时,首先发生的事情是整个数据表与查找表中的用户行连接在一起。结果是一个小得多的数据集,只包含与查找表连接后留下的行,而且只包含个人数据。
注意:这是使用Web Player上的Spotfire Consumer客户端的1000名消费者的解决方案。使用Spotfire Analyst或Business Author客户端具有创作许可证的用户可以编辑分析文件配置并获得对完整数据集的访问权限。
尽管默认情况下Spotfire是一个只读平台,但配置Spotfire以将信息写回数据源是很常见的。一个常见的用例是标记带有注释或标记的行,这些注释或标记将行组合在一起 例如,当mutliple团队执行分析的不同部分时,这非常有用。然后,第一个团队可以标记感兴趣的行,这使得下一个团队可以轻松地知道从哪里开始继续分析。
有关该实现的不同方式的“数据详细信息写回”的方法请参见Spotfire中社区的这篇文章。
即使可以使用信息链接连接到星型模式,使用数据连接器连接也更容易。下表总结了一些差异。
能力 | 信息链接 | 数据连接器 |
关系 | 在信息设计器中手动创建(重新)关系。 | 配置数据连接的用户只需点击几下鼠标即可从数据摘要中加载关系。关系自动成为要分析的(数据库中)视图的一部分。 如果将数据导入到内存中,则所选关系将定义在数据源中执行的连接。然后将结果数据表加载到内存中。由于结果只有一个数据表,因此可视化分析变得非常容易,无需额外的添加列操作或关系。 |
驱动程序 | 仅限JDBC驱动程序。 仅在Spotfire Server上需要驱动程序。 |
根据使用的连接器,没有驱动程序,ODBC驱动程序和ADO .Net驱动程序。 节点管理器/ Web播放器服务器和运行Spotfire Analyst的Windows客户端上需要驱动程序。 |
首先,您需要提取所有数据吗?Spotfire可以同时处理针对外部数据/数据引擎的实时查询以及导入Spotfire内存引擎的数据提取。通过在同一分析文件中组合这些数据加载类型和可视化,您通常可以减少实际需要提取到Spotfire中的行数。
您可能已经意识到影响数据加载速度的一般因素。示例包括硬件资源,数据库/集群大小,查询引擎性能,查询复杂性,网络带宽,并发用户数以及使用数据库供应商推荐的最新驱动程序的重要性。
但Spotfire平台中有一些功能和设置值得注意。这些会影响数据加载和为可视化数据发现做好准备所需的时间。下面突出显示了其中一些功能和设置。它们分为使用实时查询和数据库内数据表加载数据,并将数据作为提取加载到Spotfire的内存数据引擎中。
实时查询/库内查询
使用实时查询和数据库内数据表的大数据分析直接取决于SQL或MDX查询引擎处理Spotfire查询的速度。
分析文件中的页面每页使用多个可视化,多个列上的过滤器和刷子链接,用于跨可视化的联合标记。
如果用例是仪表板,则用户与分析文件的交互通常会随着数据源查询引擎的适度负载而降低。在这种情况下,Spotfire的实时查询缓存非常有用,因为仪表板倾向于更频繁地重用相同的查询,而无需将查询下推到数据源。用户只是或多或少地使用可视化,因为它们是由分析文件的作者配置的。
如果数据源中的数据未实时更新或在使用分析文件期间,或者如果它不是用于分析实时数据的用例的一部分,则建议将实时查询缓存的默认时间增加到60-120分钟。这将确保即使偶尔与仪表板和生成的查询进行交互也将使用实时查询缓存。
内存查询
Spotfire的内存数据引擎在数据库驱动程序,数据源API或文件读取器提供数据后立即提取数据。但是需要考虑一些功能和设置。
作为数据加载步骤(数据源的一部分)的一部分或作为后续数据转换步骤应用的数据转换需要时间来处理。查看数据转换可能会加快数据加载步骤。
在加载星型模式时,您可以考虑是否在数据源中加入所需的表,或者将它们作为单独的表提取到Spotfire的数据引擎中,然后使用Spotfire的关系将是最有效的。默认情况下,连接器在加载之前展平/连接数据源中的星型模式,这使得使用连接器变得容易,但可能非常耗时并且会增加加载的表的大小。
通常,较窄的数据集加载速度更快,更适合分析。宽数据集(1000列)通常需要更多时间来加载。此外,它们通常需要潜在耗时的Unpivot数据转换,以将它们转换为窄数据集。
不,这是一个安全带功能,仅在非聚合表可视化中,可以轻松覆盖。
从Spotfire 7.8开始,管理员可以使用实时查询配置允许用户加载到表图中的行数限制。
在7.8之前,如果需要在分析文件中列出超过10,000行,则使用额外的内存数据表来驱动表格图。然后根据需要将数据加载到表格图中,例如通过例如相邻的聚合条形图中的向下钻取标记来驱动。
安全带设置的原因是实时查询通常用于数十亿行数据。没有限制,用户很容易错误地开始将大量行加载到他们的分析文件的表格中,快速填满客户端和服务器内存。
内存数据表:这取决于您可用的RAM数量,但限制通常在200M到500M之间,具体取决于列数。
数据库内数据表:行数和列数限制为绘制可视化和过滤器所需的数量。数据表仅包含聚合的数据表。行保存在数据源中。
如果需要将数据保存到文件,请使用Spotfire二进制数据文件格式(SBDF)。有关更多信息,请参阅使用大数据卷。
默认情况下,Spotfire是一个只读应用,但通过一些脚本,您可以启用从分析文件到数据库的回写。以下是一些参考资源:
/网站/默认/文件/ question_files ...
HTTP://spotfired.blogspot.se/2014/04/write-back-to-database-from-spotfir ...
这取决于您可用的RAM数量,但通常是数千列。
是的,有关详细信息,请参阅以下资源:
脚本:
https://community.tibco.com/wiki/ironpython-scripting-tibco-spotfire
https://datashoptalk.com/spotfire-data-functions-terr-basics/
自定义查询:
HTTPS://docs.tibco.com/pub/sfire-analyst/7.12.0/doc/html/en-US/TIB_sfire ...
SQL命令:
HTTPS://docs.tibco.com/pub/sfire-analyst/7.12.0/doc/html/en-US/TIB_sfire ...
自动化服务:
HTTPS://docs.tibco.com/pub/sfire_autsvcs/7.11.0/doc/html/TIB_sfire_autsv ...
预定更新:
HTTPS://docs.tibco.com/pub/spotfire_server/7.12.0/doc/html/TIB_sfire_ser ...
我们建议您评估LLAP以加快查询性能。来自Hortonworks:“ Hive LLAP(低延迟分析处理)是Hive的新架构,它通过优化的内存缓存和持久查询执行器的组合,在Hadoop规模上提供MPP性能,可在YARN集群内弹性扩展。”
Hortonworks从HDP 2.6开始为LLAP提供官方支持。LLAP。
有用的LLAP资源。
LLAP博客
HTTPS://hortonworks.com/blog/apache-hive-moving-beyond-analytics-offload ...
HTTPS://hortonworks.com/blog/top-5-performance-boosters-with-apache-hive ...
https://hortonworks.com/blog/apache-hive-going-memory-computing/
HTTPS://hortonworks.com/blog/apache-hive-vs-apache-impala-query-performa ...
HTTPS://hortonworks.com/blog/announcing-apache-hive-2-1-25x-faster-queri ...
LLAP教程
https://hortonworks.com/hadoop-tutorial/interactive-sql-hadoop-hive-llap/
HTTPS://community.hortonworks.com/articles/97113/hive-acid-merge-by-exam ...
LLAP提高
HTTPS://community.hortonworks.com/content/kbentry/149894/llap-a-one-page ...
HTTPS://community.hortonworks.com/content/kbentry/149486/llap-sizing-and ...
HTTPS://community.hortonworks.com/content/kbentry/149892/llap-troublesho ...
HTTPS://community.hortonworks.com/content/kbentry/149896/llap-debugging -...
HTTPS://community.hortonworks.com/content/kbentry/149900/investigating-w ...
HTTPS://community.hortonworks.com/content/kbentry/149901/investigating-l ...
HTTPS://community.hortonworks.com/content/kbentry/149998/map-join-memory ...
如需要联系TIBCO原厂采购,各位可以访问如下链接
https://www.tibco.com/company/locations
中国北京Main Office Phone
+86 10 8341 3723