云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云数据库_总裁的替身前妻百度云_排行榜

小七 141 0

域名备案_云主机赚钱_评分榜

在上一篇博文中,我解释了构建saphana文本分析应用程序的一些先决条件,并就如何将这些特性公开给面向最终用户的web应用程序提出了一些想法。在这篇博文中,我们将这些考虑付诸实践,并创建一个基本但功能强大的后端来支持这样的应用程序。

第1部分-概述:对最终用户上传的文档进行SAP HANA文本分析第2部分-实践:为SAP HANA文本分析应用程序构建后端第3部分-演示:用于上载文档和探索SAP HANA文本分析功能的UI5前端第4部分-深入探讨:如何在UI5应用程序中使用OData上载文档

构建HANA文本分析后端

我们将快速完成设置,以便您可以自己尝试。这假设您可以访问HANA系统和开发工具(SAP Web IDE、HANA Studio或带有SAP HANA Develpoment工具的Eclipse IDE,或其他任何工具),这其实并不重要。

关于HANA应用程序的正确包结构,可以说很多,但我们现在不谈。只要有足够的结构就足够了,这样就可以将应用程序的不同职责分开。

我们决定使用一个名为ta的简单基本包,它作为演示项目的根包,有3个子包:

db表示与物理数据库结构相关的任何内容OData服务的服务,它将数据库公开给我们的web应用程序HTML5/UI5应用程序的web—即HANA提供的在客户端web浏览器内运行的内容

除了这3个子包之外,ta包还包含这2个文件,这是将其公开为web应用程序所必需的:

.xsapp—一个空文件,用于通过XS web服务器提供包的内容。.xsaccess–用于管理web应用程序的访问和授权的配置文件。

请注意,通过此设置,我们的所有子包都是公开的,而只需要公开服务和web子包。一个实际的、严肃的应用程序只会公开最少需要公开的内容,不会公开任何与物理数据库结构相关的包。

我们创建了一个HANA表,通过创建一个名为CT的文件来保存上传的文件_文件.hdbdd数据库包中的文件。这允许您将表定义维护为存储库对象,大数据+,从而使其可传输。

CT_文件.hdbdd文件有以下内容:

这里的重要特性是将文件内容列定义为一个大二进制文件,并在该列上定义全文索引。在.hdbdd表定义中定义全文索引的特定语法在SAP HANA Core Data Services(CDS)参考中介绍,而适用于全文索引的实际选项在SAP HANA SQL和系统视图参考中介绍。最后,《SAP HANA text analysis Developer Guide》(SAP HANA文本分析开发人员指南)中介绍了有关文本分析配置的含义和功能的指南。

其不足之处在于,使用此配置,将自动分析存储在文本内容列中的文档(二进制)内容。分析结果将存储在一个单独的$TA\表中,称为$TA\系统-local.public.rbouman用户.塔.db●CT_FILE.FT\u IDX\u CT\u文件. 此表由HANA系统创建和维护。这里描述了这个$TA_uu表的结构。

我刚才提到分析结果将自动存储在$TA_uu表中。虽然这是事实,但分析不会立即进行。这是因为全文索引是用异步选项创建的。这允许HANA将文档存储在CT\ U文件表中,而不必等待文本分析过程完成。

我们可以讨论异步选项的优点和缺点,以及指定SYNCHRONOUS是否更有意义,或者将选项全部忽略(在这种情况下,SYNCHRONOUS将被暗示)。然而,当前指定为异步的原因非常简单:如果全文索引指定了配置选项,则必须将其指定为同步,企业大数据分析,否则在激活时会出现以下错误:

对于实际分析,我们确实需要配置选项,因为它提供了文本分析的所有真正有趣的特性。所以,似乎没有办法解决这个问题——文本分析结果在后台收集,并在文档存储到表中之后的某个时间点完成。而且似乎没有办法确定分析是否完成,或者即使它仍然很忙。例如,这使得无法确定最近上载的文档是否仍在分析中,或者该文档是否完全不符合文本分析的条件:在这两种情况下,分析结果都将保持空白。

即,即使全文索引指定为异步,HANA也允许您指定何时更新分析结果。至少,根据SAP HANA SQL and System Views参考,可以在ASYNCHRONOUS选项后面指定FLUSH[QUEUE]-子句,其中表示时间间隔(以分钟数表示)或文档数。因此,理论上,可以这样写:

这表示一旦加载了新文档,分析的更新就会启动。

不幸的是,在我可以访问的HANA系统上,这导致激活时出现以下错误:

当我尝试每1分钟异步刷新一次队列时,会出现相同的错误消息。

因此,不幸的是,现在看来我们只能接受这种情况。我做了一些检查,我注意到分析在几秒钟后就开始了,但这是在一个使用不多的系统上进行的。因此,出于探索的目的,这并不是太糟糕,但这似乎确实可能成为实时应用程序(如聊天机器人)的一个问题。