要从 ArcGIS 客户端连接到 SAP HANA 数据库,请在 ArcGIS 客户端计算机上安装和配置 SAP HANA 客户端 ODBC 驱动程序。
注:
SAP HANA 客户端可用于“软件下载”下 SAP 支持门户中的现有 SAP 用户。
请在单独的计算机上安装 32 位和 64 位应用程序以及客户端,从而避免由于在同一计算机上安装相同驱动程序的不同版本而产生的问题。
在所有 ArcGIS 客户端计算机上配置了 ODBC 驱动程序之后,请创建数据库连接文件。如需发布引用 SAP HANA 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。
从 ArcGIS Pro 进行连接
要从 ArcGIS Pro 工程连接到 SAP HANA,请在 ArcGIS Pro 计算机上安装 SAP HANA 客户端 ODBC 驱动程序,并创建数据库连接。
安装 SAP HANA 客户端
请按照以下步骤下载 SAP HANA 客户端 ODBC 驱动程序并在客户端计算机上配置路径变量:
- 从软件下载下的 SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在所有 ArcGIS Pro 计算机上。
- 将 SAP HANA 客户端安装目录添加到 Windows 系统 PATH 环境变量。
例如,如果将 SAP HANA 客户端 ODBC 驱动程序安装到 C:\Program Files\sap\hdbclient,请将其添加到 PATH 环境变量。
连接到数据库
如果您的站点满足以下所有条件,则可以使用 SAP HANA 服务器名称和 SQL 端口号来连接到数据库:
- 您的 SAP HANA 数据库为受支持的 2.0 SPS2 或更高版本。
- 您正在连接到 SAP HANA 的本地安装程序。
- 您正在从 ArcGIS Pro 2.2 或更高版本进行连接。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数少于 31。
如果不满足以上任意条件,则必须为 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN),然后完成以下步骤,才能从 ArcGIS Pro 进行连接。
使用数据库连接对话框或创建数据库连接地理处理工具来添加数据库连接。使用数据库连接对话框的步骤如下所述。
- 右键单击目录窗格中的数据库,然后单击新建数据库连接。
- 从数据库平台下拉列表中选择 SAP HANA。
- 在数据源文本框中,输入以下内容之一:
- 用于与数据库进行通信的 SAP HANA 服务器名称和 SQL 端口号使用冒号 (:) 进行分隔。例如,如果 SAP HANA 服务器的完全限定名称为 myserver.network.com,并且 SAP HANA 通过端口 98765 通信,则可以输入 myserver.network.com:98765。
- 您为 ODBC 驱动程序配置的数据源名称。
- 在身份验证类型中选择数据库身份验证。
- 在用户名和密码文本框中分别输入有效的数据库用户名和密码。
- 如果您不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做有助于维护数据库的安全性。但是,如果执行此操作,则系统会在每次从桌面客户端连接时提示您提供用户名和密码。
注:
对于您注册到 ArcGIS Server 站点的连接文件,或如果您希望通过搜索来找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
- 单击确定进行连接。
配置数据源名称(如果需要)
如果满足以下任意条件,则必须为 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN) 才能连接到数据库:
- 您正在使用 SAP HANA 1.0(任何受支持的补丁包版本)。
- 您正在连接到 SAP HANA Cloud。
- 您正在使用 ArcGIS Pro 2.1 或较早版本。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数超过 31。
如果您的站点上不存在这些条件,您仍可配置数据源名称以连接到 SAP HANA,但这不是必要条件。
请按照以下步骤为您的 SAP HANA 数据库配置数据源名称:
- 在客户端计算机上打开 ODBC 数据源管理器(64 位)。
注:
配置所有连接到相同数据库的 SAP HANA ODBC 客户端时,要使用相同的名称。例如,在 ArcGIS Pro 计算机上配置 SAP HANA 客户端 ODBC 驱动程序时所使用的数据源名称应该与在 ArcGIS Server 计算机上为 ODBC 驱动程序配置数据源名称时所相同的数据源名称相同。如果您不使用相同的名称,那么在发布时将会遇到问题,因为 ArcGIS 会对所发布数据的连接字符串和注册数据库的连接字符串进行比较。
- 在 ODBC 数据源管理器(64 位)中单击系统 DSN 选项卡,然后单击添加。
- 选择 SAP HANA ODBC 客户端,然后单击完成。
- 输入数据源的名称、描述和 SQL 端口号。
- 在 TLS/SSL 部分中,选中使用 TLS/SSL 连接到数据库和验证 TLS/SSL 证书。
- 打开 ODBC 客户端的高级设置并添加属性 SPATIALTYPES,然后将其值设置为 1。
注:
如果您将 ArcGIS Pro 2.2 或更新版本与受支持版本的 SAP HANA 2.0 搭配使用,则可以跳过此步骤。
- 在 ODBC 客户端设置和 ODBC 数据源管理器上,单击确定以将它们关闭。
从 ArcGIS Server 进行连接
如果要将 SAP HANA 数据发布到联合或独立 ArcGIS Server 站点,并希望生成的服务使用 SAP HANA 中的数据,则需要在 ArcGIS Server 站点中的每台计算机上安装 64 位 SAP HANA 客户端 ODBC 驱动程序。请遵照特定于操作系统(安装有 ArcGIS Server)的说明进行操作。
配置 ArcGIS Server 站点中的计算机后,创建数据库的数据库连接,并将连接文件注册到 ArcGIS Server 站点。
在 ArcGIS Server 计算机 (Microsoft Windows) 上安装 SAP HANA
下载 SAP HANA 客户端 ODBC 驱动程序,并安装在 ArcGIS Server 站点中的每台计算机上。
在每台 ArcGIS Server Windows 计算机上安装 SAP HANA 客户端 ODBC 驱动程序。
- 从 SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在 ArcGIS Server 站点中的每台计算机上。
- 将 SAP HANA 客户端安装目录添加到 Windows 系统 PATH 环境变量。
例如,如果将 SAP HANA 客户端 ODBC 驱动程序安装到 C:\Program Files\sap\hdbclient,请将其添加到 PATH 环境变量。
安装 SAP HANA 客户端 ODBC 驱动程序后,您可以继续将数据库连接注册到 ArcGIS Server 站点。但是,如果存在以下情况,则必须为 ODBC 驱动程序配置数据源名称,然后才能注册数据库连接。
- 您正在使用 SAP HANA 1.0(任何受支持的补丁包版本)。
- 您正在连接到 SAP HANA Cloud。
- 您正在从 ArcGIS Server 10.6 或更早版本连接到数据库。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数超过 31。
在 Windows 上配置 ODBC 数据源名称(如果需要)
如果需要数据源名称,请按照以下步骤为每台 ArcGIS Server Windows 计算机上的 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN):
注:
使用该数据源名称从 ArcGIS 连接到数据库。配置所有连接到相同数据库的 SAP HANA ODBC 客户端时,要使用相同的名称。例如,在 ArcGIS Pro 和 ArcMap 计算机上配置 SAP HANA 客户端 ODBC 驱动程序时所使用的数据源名称应该与在 ArcGIS Server 计算机上为 ODBC 驱动程序配置数据源名称时所相同的数据源名称相同。如果您不使用相同的名称,那么在发布时将会遇到问题,因为 ArcGIS 会对所发布数据的连接字符串和注册数据库的连接字符串进行比较。
- 打开 ODBC 数据源管理器(64 位)。
- 在 ODBC 数据源管理器(64 位)中单击系统 DSN 选项卡,然后单击添加。
将显示创建新数据源对话框。
- 选择 SAP HANA ODBC 客户端,然后单击完成。
- 针对您的数据库,填充数据源名称、描述和服务器:端口信息。
- 在 TLS/SSL 部分中,选中使用 TLS/SSL 连接到数据库和验证 TLS/SSL 证书。
- 打开高级 ODBC 设置对话框,并向特殊属性设置部分添加以下键值:SPATIALTYPES=1。单击确定以应用更改,然后关闭 ODBC 高级设置对话框。
注:
如果您将 ArcGIS Server 与受支持的 SAP HANA 2.0 或更高版本搭配使用,则可以跳过此步骤。
- 在 ODBC 客户端设置和 ODBC 数据源管理器上,单击确定以将它们关闭。
在 ArcGIS Server 计算机 (Linux) 上安装 SAP HANA
下载 SAP HANA 客户端 ODBC 驱动程序。将客户端放在 ArcGIS Server 站点中的每台计算机上进行安装,然后编辑每台 ArcGIS Server ArcGIS Server 计算机上的 Linux init_user_param.sh 脚本。
- 从 SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在 ArcGIS Server 站点中的每台计算机上。
- 请在每个 Linux 计算机上安装 ArcGIS Server ODBC 驱动程序管理器(如未安装)。
- 请确保 ArcGIS Server 每台计算机的安装程序所有者至少具有在数据库客户端库中读取和执行的权限。
- 在文本编辑器中打开 init_user_param.sh 脚本。
- 移除这些行中的注释标记 (#) 并将 <SAPHANA_InstallDir> 信息替换为安装 SAP HANA 客户端的目录路径:
export SAPHANADIR=<SAPHANA_InstallDir>/sap/hdbclient export LD_LIBRARY_PATH==$SAPHANADIR:$LD_LIBRARY_PATH
- 保存并关闭脚本。
- 在您为 ArcGIS Server 站点的每台计算机配置 init_user_param.sh 之后,在每台计算机上运行 startserver.sh 脚本来重启 ArcGIS Server。
./startserver.sh
安装数据库客户端文件后,更改与 ArcGIS Server 一同安装的 init_user_param.sh 脚本以引用客户端文件。可通过浏览至 <ArcGIS Server installation directory>/arcgis/server/usr 目录访问该脚本。
安装 SAP HANA 客户端 ODBC 驱动程序后,您可以继续将数据库连接注册到 ArcGIS Server 站点。但是,如果存在以下情况,则必须为 ODBC 驱动程序配置数据源名称,然后才能注册数据库连接。
- 您正在使用 SAP HANA 1.0(任何受支持的补丁包版本)。
- 您正在连接到 SAP HANA Cloud。
- 您正在从 ArcGIS Server 10.6 或更早版本连接到数据库。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数超过 31。
在 Linux 上配置 ODBC 数据源名称(如果需要)
如果需要数据源名称,请按照以下步骤为每台 ArcGIS Server Linux 计算机上的 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称:
注:
配置所有连接到此数据库的 SAP HANA ODBC 客户端时,请使用相同的 ODBC 数据源名称。例如,在 ArcGIS Pro 和 ArcMap 计算机上配置的数据源名称要与在您的 ArcGIS Server 站点中的计算机上为 SAP HANA 客户端 ODBC 驱动程序设置的数据源名称相同。如果您不使用相同的名称,那么在发布时将会遇到问题,因为 ArcGIS 会对所发布数据的连接字符串和注册数据库的连接字符串进行比较。
- 要配置 ODBC 数据源名称,请编辑 SAP HANA ODBC 连接文件,.odbc.ini 和 .odbcinst.ini。
文件必须命名为 .odbc.ini 和 .odbcinst.ini。
- 在文本编辑器中打开 .odbc.ini 文件,然后提供连接到数据库所需的信息。
确保 .odbc.ini 文件中的等号 (=) 左右没有空格。
例如,此条目的等号左右没有空格。包含 SPATIALTYPES=1 条目。连接到受支持版本的 SAP HANA 2.0 或更高版本不需要此条目。
[<HANA_DNS>] Driver=/<usr>/sap/hdbclient/libodbcHDB.so Description=SAP Hana ODBC ServerNode=<HANA_Server_IP>:<SAP_HANA_port> UID=<user_name> Password=<user_password> SPATIALTYPES=1 [ODBC] IANAAppCodePage=4 InstallDir=/<usr>/sap/hdbclient Trace=0 TraceDll=/opt/odbc64v51/lib/odbctrac.so TraceFile=/tmp/odbctrace.out UseCursorLib=0
- 要连接到 SAP HANA Cloud,必须使用加密连接。由此要求 ArcGIS Server 站点中的每台计算机都能够引用 DigiCertGlobalRootCA.crt.pem 文件以验证签发 SAP HANA Cloud 证书的证书颁发机构 (CA)。请从 SAP 帮助门户下载此文件并将其放置在站点中每台计算机上的目录中。设置 Encrypt=Yes 并将 sslTrustStore 参数设置为以下选项之一:
- 在本地计算机上指定 DigiCertGlobalRootCA.crt.pem 文件的位置,如以下条目中所示:
[<HANA_DNS>] Driver=/<usr>/sap/hdbclient/libodbcHDB.so Description=SAP Hana ODBC ServerNode=<HANA_Server_IP>:<SAP_HANA_port> UID=<user_name> Password=<user_password> ENCRYPT=Yes sslTrustStore=<path to DigiCertGlobalRootCA.crt.pem> [ODBC] IANAAppCodePage=4 InstallDir=/<usr>/sap/hdbclient Trace=0 TraceDll=/opt/odbc64v51/lib/odbctrac.so TraceFile=/tmp/odbctrace.out UseCursorLib=0
- 提供来自 DigiCertGlobalRootCA.crt.pem 文件的证书字符串。打开 DigiCertGlobalRootCA.crt.pem 文件,复制内容,然后将其粘贴到 .odbc.ini 文件中 BEGIN CERTIFCATE 和 END CERTIFCATE 注记之间,如下图所示:
[<HANA_DNS>] Driver=/<usr>/sap/hdbclient/libodbcHDB.so Description=SAP Hana ODBC ServerNode=<HANA_Server_IP>:<SAP_HANA_port> UID=<user_name> Password=<user_password> ENCRYPT=Yes sslTrustStore=-----BEGIN CERTIFICATE-----<contents of the DigiCertGlobalRootCA.crt.pem file>-----END CERTIFICATE----- [ODBC] IANAAppCodePage=4 InstallDir=/<usr>/sap/hdbclient Trace=0 TraceDll=/opt/odbc64v51/lib/odbctrac.so TraceFile=/tmp/odbctrace.out UseCursorLib=0
- 在本地计算机上指定 DigiCertGlobalRootCA.crt.pem 文件的位置,如以下条目中所示:
- 保存并关闭 .odbc.ini 文件。
- 打开并编辑 .odbcinst.ini 文件以包含 ODBC 驱动程序路径。
在 .odbcinst.ini 文件中,无需保留本示例中所示的空格:
Description =SAP HANA ODBC Driver64 = /<usr>/sap/hdbclient/libodbcHDB.so
- 保存并关闭 .odbcinst.ini 文件。
注册数据库
如果要使用 SAP HANA 中的数据发布 web 服务,请创建数据库连接并将其注册到您的 ArcGIS Server 站点。有关说明,请参阅管理注册的数据存储。