跟进我的previous post,我需要能够以最快的方式查询6M +行的数据库,以便此DB可以有效地用作动态Excel的“远程”数据源报告。
就像我说的,通常我会将我需要的数据存储在一个单独的(可能是隐藏的)工作表中,然后我会通过第二个“控制”表来操作它。这次,我的数据库的大小(即行数)阻止我这样做(众所周知,excel不能处理超过1,4M行)。
我的IT人员所采用的解决方案包括将数据保存在网络文件夹内的txt文件中。到目前为止,我设法通过ADO查询此文件(缓慢但不需要mantainance)或将其用作填充索引的Access表的源,然后我可以查询(更快但需要更多的维护和其他软件)。 / p>
我觉得这两种解决方案虽然可行但不是最佳的。此外,在我看来,所有这些只是一个不必要的过度复杂。 txt文件实际上是从SAP BO导出的,IT人员可以通过WEBI访问该文件。现在,我不能仅仅通过WEBI以“动态”的方式查询BO数据库吗?
我想说的是,为什么我不能在需要知道的基础上直接从主要来源提取一些信息,而不是将所有数据都转移到在辅助/重复数据库上批量生效?
这种“动态”查询是否可能?或者“处理”时间会妨碍我的方法成功吗?我需要这整个事情来真正感受到istantaneuos,好像数据已经存在并且我实际上并没有实际检索它。
最重要的是,我可以通过VBA这样做吗?不幸的是,这是我唯一可以访问的东西,我不能做这个BO端。
我想提前感谢你们给予我任何帮助!
答案 0 :(得分:2)
Webi(Web Intelligence的简称)是Business Objects的前端分析报告应用程序。您的IT联系人显然已创建(或可访问)此类Webi文档,该文档通过数据库中的 universe (抽象层)检索数据。
您可以使用Web Intelligence检索的数据作为源并动态请求位而不是一次性检索所有信息的一种方法,它使用称为 BI Web服务的功能。这将使Webi中的数据可用作Web服务,然后您可以从Excel中检索。您甚至可以通过添加会对检索到的数据施加限制的提示来使其动态化。
请查看this页面以获取快速概述(或Google Web Intelligence BI Web服务以获取其他教程)。
另一种方法可能是使用 SDK ,但在您尝试操作Web Intelligence时,您唯一的语言选项是.NET或Java,作为Rebean SDK(用于与Webi交谈) )不适用于COM(即VBA / VBScript / ...)。
注意:如果您使用的是BusinessObjects BI 4.x,请记住Rebean SDK实际上已弃用,并由REST SDK取代。这可以让毕竟使用VBA接近Webi。
话虽如此,我不太确定这是否是最好的方法,因为你实际上引入了几个中间层:
根据您的许可和您要实现的目标, Xcelsius 或 Design Studio (BusinessObjects BI 4.x)也可能是Excel的可行替代方案前端,从而消除层3到4(并替换层5)。前者的后端实际上很大程度上基于Excel(尽管没有VBA支持)。 Design Studio允许使用JavaScript编写脚本。