|
Blogs by

Whisly Wei

     在SAP HANA中,除了基本的分词等文本分析任务外,从SPS09开始增加了文本挖掘(Text Mining)的功能。具体来说,具体来说包括文本关键词提取,文本分类,相似文本查找,相似单词查找等功能,在SPS09中,文本挖掘接口以XS接口的形式提供,在SPS10中,提供了SQL形式的接口,这对于文本挖掘的任务,真是非常cool, 有了这个神器,文本分类不再需要整合R,直接在HANA中就可以实现文本分类的功能,具体来说,在HANA内部,在建立全文索引之后,维护了一个term-document矩阵,基于此,可以计算TF,IDF,TF-IDF等词项权重,以欧几里得距离为基础,实现K近邻分类。       废话不多说,下面直接见例子,本文只是介绍最基本用法为主,更多参数及原理请读者自行查找相关资料。 - 准备数据 SET SCHEMA TMTEST; DROP TABLE MYTEST CASCADE; CREATE COLUMN TABLE MYTEST(ID INTEGER primary key,CONTENT NCLOB,LANG VARCHAR(32),CLASS VARCHAR(64)); INSERT INTO MYTEST VALUES(‘1’,’I am a chinese, I live

在实际的生产环境中, SAP HANA的分布式系统很常见, 因为随着数据量的扩充, 通常单机SAP HANA往往内存会越来越吃紧,所以有必要搭建分布式系统, 从而分散查询压力, 保持SAP HANA的高速性. 在另一方面, 在实际生产环境, 为了防止单机故障, 通常也会做HA, 以便当某个结点主机宕机之后系统能够保持稳定. 以上便上SAP HANA分布式系统及高可用性的实际需要, 但是受限于测试条件, 需要多台SAP HANA服务器, 一般大家都没有自己动手搭建过分布式HANA, 大部分都是在单机上做测试. 但是SAP HANA的分布式系统与我们平常印象中的分布式系统稍微有点不一样, SAP HANA中的分布二字主要是指’内存’的分布式, 而不是指数据文件分布式. 一 有关分布式的基本概念 \ Host 一个主机指SAP HANA数据库的运行的操作系统环境, 可以对应一台物理机器. Instance 实例,

     在笔者之前的一系列Blog中,介绍了如何整合SAP  HANA与R语言(参考http://scn.sap.com/community/chinese/hana/blog/2014/02/14/r%E8%AF%AD%E8%A8%80%E5%8C%85%E5%AE%89%E8%A3%85%E5%B9%B6%E5%AE%9E%E7%8E%B0%E4%B8%8Ehana%E7%9A%84%E6%95%B4%E5%90%88), 以及使用SAP HANA中的PAL库(http://scn.sap.com/community/chinese/hana/blog/2014/03/10/sap-hana%E4%B8%ADpal%E7%AE%97%E6%B3%95%E4%BD%BF%E7%94%A8%E5%85%A5%E9%97%A8).             具体来说, 二者在功能上有很多相似的地方. PAL主要是一系列的预测分析算法, 而这些算法通常在R语言中也有对应的实现, 但一般来说, 因为R是一个开源的语言包, 所包含的工具与算法比PAL中要多得多.             在实现方式上,SAP HANA整合R需要引入一个Rserve服务端, 然后SAP HANA通过TCP/IP去访问Rserve, 存在数据传输的开销问题. 而PAL直接在SAP HANA内部进行计算, 因此, 直观上使用PAL的性能要比整合R的方式要好. 所以, 当所需要的算法在PAL中存在的情况下,相用PAL是一个较好的选择.             本文将通过对同一数据集合, 使用不同的方式进行K-Means聚类分析来比较PAL与R整合的性能. 一  数据准备     本文使用一个Procedure来生成测试数据, 结果用一张物理表进行存储.     数据表定义如下:

            在前一篇文章中,笔者介绍了在SAP HANA中使用OData访问SAP HANA中数据的方法,在接下来的本篇文章中,将分享一些OData中服务定义的一些例子。             通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object);另一种方式是通过暴露repository中的设计时对象(Design-time Object),这是推荐使用的方式,因为这种方式的优点在于如果Design-time Object变化的话,OData服务会自动更新,如果是直接使用Database Object, 如果数据库对象改变,OData服务需要人工维护。但为了便于说明,在本文使用的例子都是直接暴露Database Object. 1  OData命名空间 (Namespace) 定义            在默认情况之下,通过OData服务生成的Schema的命名空间为项目的package的路径与xsodata文件名的拼接,例如前一篇文章的默认命名空间为weiyy.testodata.product,如图。          我们可以利用namespace关键字来修改命名空间,修改原product.xsodata,内容如下: service namespace “test.namesp”{     “WEIYY”.”PRODUCT” as “product”; } 修改之后提交并激活原来项目, 刷新原页面就可以看到修改之后的命名空间为“test.namesp”。 2 OData中的属性投影(Property

1 OData 介绍        OData 全称是Open Data Protocol, 即开放数据协议,由微软公司最初提出,它的主要用途便是通过Web来对数据库中的数据进行查询与更新。在SAP HANA 的XS Engine中提供了OData的实现,所以在开发基于XS Engine的应用程序时,如果使用OData来访问数据,将会十分方便与快捷。另外,OData也可以作为其他应用的数据源,不一定需要ODBC或者JDBC去访问SAP HANA中的数据。        在当前的SAP HANA XS Engine中只提供OData 2.0 的支持,字符编码限制为UTF-8, 提供的数据以XML或者JSON格式返回,对于修改操作,例如CREATE, UPDATE 只提供JSON格式。 2 OData 基本使用 以下将通过具体的实例来说明OData的使用情况。 2. 1 数据准备 在SAP HANA Studio中建立一个PRODUCT表(测试用的schema:WEIYY),SQL 语句如下:

在上一篇文章中,笔者介绍了SAP HANA与R语言整合的技术基础(http://scn.sap.com/community/chinese/hana/blog/2014/04/16/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3sap-hana%E4%B8%8Er%E6%95%B…), 包括嵌入式R代码的执行,Rserve,及Rserve与客户端通信的基于消息的协议QAP1. 在本篇文章中,笔者将通过对日志的分析来跟踪SAP HANA与R的通信过程。 (一) 开启动rclient的DEBUG跟踪    开启rclient的DEBUG跟踪,这样能方便跟踪SAP HANA与R之间的通信。    打开SAP HANA Studio,选择Trace Configuration标签。 然后点击Database Trace最右边的编辑按钮,进入编辑对话框。 在rclient后面的System Trace Level 下面选择DEBUG (二)查看Trace日志信息      这里仍然以http://scn.sap.com/community/chinese/hana/blog/2014/02/14/r%E8%AF%AD%E8%A8%80%E5%8C%85%E5%AE%89%E8%A3%85%E5%B9%B6%E5%AE%…这篇日志中介绍的求质数的平方的R procedure为例来说明。 执行这个procedure之后,在SAP HANA Studio的管理视图中切换到Diagnosis Files标签,选择indexserver_(主机名).trc这个文件并打开。 能看到类似下面这样的日志信息,下面将简单的介绍一下它们的含义。 [6925]{-1}[-1/-1] 2014-06-09 14:35:43.547096 i RClient         

        we also have a Chinese version of this blog.           From this article on, I will research the principle to combine HANA with R. After the SAP D-code meeting, I figured out that

we have a Chinese version of this blog    Assume that you will  receive a batch of file every other minutes, and then you need to import these files into SAP HANA. Traditionally ,  you

We have a Chinese version of this blog         Python is a simple scripting language, it is good at text processing and network programming,especially in Linux, because for various release version of Linux they contain

We also have a chinese version of this blog. 1 Application scenario       SAP HANA is a in-memory database which keeps data resident in memory for quick access. At the same time, the physical