PowerBuilder – SAP HANA 入门





5.00/5 (3投票s)
SAP HANA入门。
如果你最近和SAP打过交道,我敢肯定你肯定听说过HANA。那么,它到底是什么呢?(不,它不是乔·赖特执导的电影)。
HANA是一个数据库,它使用内存技术来加速数据检索。此外,HANA不仅以行式存储数据,还以列式存储数据,以加速对海量数据集的OLAP(在线分析处理)查询。HANA经过优化,能够利用多核处理器的能力来实现高度并行化。(要深入了解HANA的性能,请参阅Werner Daehn在SAP SCN上的一系列wiki文章)。HANA的一个真正的好处在于,它能够实现实时分析和预测。
从PowerBuilder程序员的角度来看,HANA是另一个可以连接的数据源。目前,这意味着需要使用Java数据库连接(JDBC)连接。这一过程的第一步是设置数据库服务器并安装驱动程序。最简单且相对便宜的方法是使用Amazon Web Services (AWS) 设置一个实例。您可以在这里了解更多信息并设置AWS账户。在建立AWS账户后,您需要创建一个密钥对。这必须在您打算托管HANA的同一服务器上完成。请参阅AWS上的此处的说明。设置完成后,您将需要您的AWS账户号码(登录后可在“账户活动”页面找到)来请求HANA实例。
现在,请访问SCN上的此链接,开始进行设置。
接受用户协议,然后在接下来的窗口中输入您的AWS账户号码。
确保区域下拉菜单的值与您之前创建密钥对的区域值相同。
完成此过程后,您将跳转到AWS网站配置您的HANA实例。
您可能希望为您的堆栈起一个更有意义的名称。
默认是最小的尺寸。更大的尺寸列出如下;据我所知,它们都拥有相同的存储空间 – 154GB。
KeyName与创建密钥对时指定的名称相同。不要犯我犯过的错误,使用本地保存的密钥文件的完整文件名——这样做是无效的。
最后,您可以审查所有内容,然后再创建堆栈。
如果创建成功,您将在状态中看到“CREATE_COMPLETE”。错误可以在“Outputs”选项卡中检查。通常,任何错误都将与密钥对名称错误或尝试在未设置密钥对的服务器上创建堆栈有关。
您需要设置一个弹性IP地址来关联您的实例。从主控制台页面选择“Elastic IP”链接。
分配一个新的。
选择地址,然后选择“Associate Address”。
然后选择您的实例。
关于在AWS上使用HANA的注意事项。为了降低您的亚马逊费用,当您不使用时,您需要停止任何正在运行的实例。这在AWS控制台中是一个简单的过程。但是,请记住,每次希望连接时,您都必须启动实例并将弹性IP地址与新启动的实例关联。
您可以更改AWS账户的开始页面,显示EC2虚拟机以节省时间。
每次希望连接时,请记住启动实例并将弹性IP地址与之关联。
要启动实例,请勾选它,选择“Instance Actions”,然后选择“Start”。几分钟后——可能一分钟——实例状态将显示“Running”。然后转到“Elastic IP”选项卡,选择IP地址,并将其与现在正在运行的实例关联。
现在您需要在您的工作站上安装SAP HANA Studio软件,以便管理您的数据库。
在SAP社区网络上的SAP HANA开发者中心页面上,有下载HANA客户端和HANA Studio的链接。请确保使用此门户,因为它将提供最新版本。您需要客户端部分主要是为了数据库驱动程序。Studio类似于其他数据库可用的许多数据库管理包。它允许您在图形化环境中创建用户、表、模式等(您也可以在命令提示符下执行这些操作)。
下载完存档文件后,将它们解压到一个临时文件夹,然后运行hdbsetup.exe安装程序。您需要为客户端和Studio都执行此操作。
为了将您的本地HANA Studio连接到AWS上的数据库,您需要修改您机器上的“hosts”文件。在您的hosts文件中创建一个类似以下的条目:
123.45.678.9 imdbhdb
其中“123.45.678.9”是您在AWS上与您的实例关联的弹性IP地址。“hosts”文件通常在Windows的“C:\Windows\System32\drivers\etc\”目录下。在Windows 7中,您需要管理员权限才能写入它。(点击“开始”,搜索“记事本”,在搜索结果中右键单击notepad.exe,选择“以管理员身份运行”)。
现在打开HANA Studio;左侧部分默认是“Navigator”选项卡。右键单击选项卡工具栏下方的空白区域,然后选择“Add System”。
在“System Dialogue”中输入主机名(来自hosts文件)、实例编号(通常是“00”)和描述。
点击“Next”。
将用户设置为“SYSTEM”,密码设置为“manager”(标准默认密码)。别担心,密码稍后可以更改。一旦您设置好了系统,您想创建一个新的用户,以后连接时就使用该用户(即,不要使用SYSTEM)。
点击“Finish”,如果一切顺利且您的AWS实例正在运行,您将在Navigator中看到以下内容。
绿色方框表示您已连接。
要添加用户,请在System中打开Catalog,然后选择New User。
填写用户名、密码信息、角色(使用“Public”),然后点击执行图标。
您现在必须为用户授予SQL权限。点击SQL Privileges选项卡。
输入要授予的Catalog(SCHEMA)的名称 – 在本例中是SYSTEM。匹配的项目列表会自动填充。选择SCHEMA对象。
在左侧,将显示此特权列表。在这个例子中,我选择了Execute、select、insert、update和delete。请注意,当您勾选它们时,授予的能力默认是“No”。务必选择“Yes”。
在执行用户更改以保存它们之后,您需要以新用户的身份“登录”到系统。要做到这一点,请返回“Navigator”选项卡并添加一个新系统。这次使用“SAMPLEUSER”作为系统的用户。连接时,系统会提示您更改密码。在尝试通过PowerBuilder的JDBC连接之前,必须完成此步骤,否则连接将失败。一旦完成密码更改,如果您愿意,您可以删除SAMPLEUSER ID的System。
现在,让我们在PowerBuilder中设置与HANA的连接。首先,您需要在Tools菜单的System Options对话框的Java选项卡中设置您的Classpaths。这应该是通过HANA客户端安装的驱动程序的完整路径和文件名。您必须确保使用32位驱动程序。
此外,您可能需要将机器上的CLASSPATH环境变量更新为与上面相同的值。根据PowerBuilder的文档,您可能不需要这样做,但在我的情况下,除非我这样做,否则我无法让事情正常工作。
现在转到Database Profiles,选择JDB JDBC,然后选择New。
- Profile name: pbhanatest
- Driver Name: com.sap.db.jdbc.Driver
- URL: jdbc:sap://ec2-55-222-56-111.compute-1.amazonaws.com:30015? reconnect=true
(注意这里的标点符号。ec2-55-222-56-111.compute-1.amazonaws.com部分包括数据库的公共DNS,您的情况会有所不同。“00”部分在“30015”中表示实例编号 – 如果您使用的值不是“00”,请更改它。)
Logon ID/Password: 您在HANA中创建的用户(SAMPLEUSER是示例)
保存并连接到您的HANA数据库。
现在您可以创建并加载数据到表中。我选择下载一些与飞机动物撞击有关的样本数据,以模拟一个足够大的表。在这种情况下,数据集包含了超过18万行数据。
一旦加载了数据,您就可以通过SQL语句或存储过程创建标准的PowerBuilder datawindow。
在我的应用程序中,我在PowerBuilder的(open event)中使用了以下连接字符串:
SQLCA.DBMS = "JDBC" SQLCA.LogPass = <password> SQLCA.LogId = "MB" SQLCA.AutoCommit = False SQLCA.DBParm = "Driver='com.sap.db.jdbc.Driver',URL='jdbc:sap://ec2-55-222-56-111.compute-1.amazonaws.com:30015? reconnect=true',PBCatalogOwner='SYSTEM',OJSyntax='ANSI'"
我设置了两个简单的数据窗口来分组数据,一个按动物统计撞击次数,另一个按机场统计撞击次数。
这两个数据窗口执行简单的分组查询,并在几秒钟内返回结果。将来我将探索存储过程数据窗口。
结论
一旦准备好所有组件,通过JDBC设置并连接到SAP HANA数据库是相当简单的。利用Amazon Web Services是一种低成本的方式,可以在PowerBuilder内部调查HANA数据库的功能。