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

负载均衡_贵阳高端网站建设_0元

小七 141 0

金山云_阿里云扩容磁盘_代金券

上周,我和我的同事Arjen Koot和Mitchell Beekink对HANA(1.0)和UI5工具包有点不满。在这个过程中,我们做了一些观察,发现了一些我们认为值得在几篇博客文章中分享的东西:

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

(尽管这都是在HANA 1.0上完成的,但其中许多内容仍应在HANA 2.0上以及使用XS Classic上工作)。

探索HANA文本分析

我们关注的主要用例是SAP HANA文本分析。saphana的文本分析功能允许您从各种来源提取标记和语义。文本分析不仅限于纯文本,还支持各种格式的二进制文档,如PDF和Microsoft Office文档,如Word文档和Excel工作簿。分析后,分析结果可用于进一步处理。

可能利用文本分析功能的商业案例包括发票或报销申请的自动分类,将员工或求职者的简历与空缺进行匹配,以及检测抄袭,仅举几个例子。

转换文档和执行实际文本分析的艰苦工作都由HANA完全处理,这是非常好的。在我们的具体案例中,这个过程包括将PDF格式的二进制文档转换为文本。

要使用文本分析功能,韩国云服务器,您需要

创建一个具有BLOB数据类型的列的数据库表。saphana的文本分析特性也适用于纯文本,大数据与应用,但是对于我们的特定用例,我们感兴趣的是分析PDF文档。从应用程序和数据库存储的角度来看,这些文档是二进制文件,这就是为什么最终会出现BLOB。在BLOB列上创建一个全文索引,该索引配置我们需要的所有文本分析功能,如标记化、词干分析和语义提取。

一旦建立起来,我们只需要在BLOB列中存储我们的文档(二进制PDF文件),剩下的部分由SAP HANA来完成(或多或少是自动完成的)。然后可以从$TA表中收集文本分析结果,并用于进一步的、特定于应用程序的处理。

上载文档内容

现在,这是一项看似简单的任务,将二进制文档内容存储到BLOB列中是一个挑战。

SAP发布的各种资源(如本文)侧重于文本分析功能本身。它们只提供了一个简单实用的建议,将数据加载到表中,这依赖于(客户端)Python脚本,该脚本从客户端读取文件,然后使用纯SQL INSERT语句将文件内容上载到BLOB列。

当然,这种方法非常适合于探索文本分析特性,但是如果您想创建一个面向最终用户的应用程序,它没有多大用处。我们想为他们做的是,提供一个web应用程序或移动应用程序(例如,基于UI5),这将允许最终用户使用易于使用的图形用户界面将自己的文档上传到数据库中,完全有可能提出一个与客户端Python脚本有点类似的解决方案。例如,我们可以编写一个在HANA服务器上运行的.xsjs脚本。然后,这个脚本将处理一个HTTPPOST请求并接收请求正文中的原始文档字节。

然后,.xsjs脚本将运行类似的SQL语句,并将接收到的数据存储在BLOB列中。(这里可以找到使用SQL的示例.xsjs脚本。)

但是,这种方法有几个缺点。

首先,淘客公众号,面向用户的应用程序不太可能只希望上载文档的二进制内容。很可能,一些特定于应用程序的元数据也需要存储。

另一个问题是,我们需要编写特定的代码来处理一种非常特定的请求:将数据上载到一个特定的表,淘客返利系统,即:非结构化文档内容本身,加上应用程序需要关联的任何结构化数据是的。脚本将需要按名称引用表及其列(或者可能通过执行实际加载的存储过程–相同的区别),并且当表或其列的名称更改时,脚本也必须更改。

当您需要将此类解决方案传输到另一个HANA系统时,同样的问题也会发生。由于.xsjs脚本和它引用的数据库目录对象之间没有正式的依赖关系,这对通常用于此类任务的HANA传输系统带来了一些挑战。至少,这种依赖关系没有在任何地方注册,因此需要手动管理。

另一件要记住的事情是,如果应用程序可以在某处写入数据,它通常也需要从该源读取数据。例如,用户可能希望搜索一些元数据字段,以查看某个特定文件是否已上载,或查看某个特定文件上次上载的时间,或更新以前上载的文件。

现在,我们当然可以编写.xsjs脚本,以便它也可以执行这些操作。但关键是,尽管我们只需要一个允许上传文档的服务,但是从应用程序的角度来看,这个接口是不完整的,因此实际的脚本需要实现比上传更多的数据操作。因此,编写一个简单的脚本来完成一件简单的事情,这看起来是一个小任务,而编写一个功能齐全的服务来完成一大堆事情,则是一个相当严肃的任务。最后,编写执行SQL的服务器端脚本可能会带来安全风险。尽管它可能是以一种安全的方式编写的,但实际上需要确保它确实是安全编写的,并且需要为服务提供的所有功能实现这一点。