要从 ArcGIS 客户端连接到 SAP HANA 数据库,请在 ArcGIS 客户端计算机上安装和配置 SAP HANA 客户端 ODBC 驱动程序。
在所有 ArcGIS 客户端计算机上配置了 ODBC 驱动程序之后,请创建数据库连接文件。如需发布引用 SAP HANA 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。
从 ArcMap 进行连接
要从 ArcMap 连接到 SAP HANA,请在所有 ArcMap 计算机上安装并配置 SAP HANA 客户端 ODBC 驱动程序,并创建从 ArcMap 到此数据库的连接。
安装 SAP HANA 客户端 ODBC 驱动程序
请按照以下步骤下载 SAP HANA 客户端 ODBC 驱动程序并在客户端计算机上配置路径变量:
- 从 SAP 支持门户下载受支持的 32 位 SAP HANA 客户端,然后将其安装在每台 ArcMap 计算机上。
- 将 SAP HANA 客户端安装目录添加到 Microsoft Windows 系统 PATH 环境变量。
例如,如果将 SAP HANA 客户端 ODBC 驱动程序安装到 C:\Program Files\sap\hdbclient,请将其添加到 PATH 环境变量。
连接到数据库
如果您的站点满足以下所有条件,则可以使用 SAP HANA 服务器名称和 SQL 端口号来连接到数据库:
- 您的 SAP HANA 数据库为受支持的 2.0 SPS2 或更高版本。
- 您正在连接到 SAP HANA 的本地安装程序。
- 您正在从 ArcGIS Desktop 10.6.1 或更高版本进行连接。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数少于 31。
如果不满足以上任意条件,则必须为 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN),然后继续进行以下步骤,才能从 ArcMap 进行连接。
使用数据库连接对话框或创建数据库连接地理处理工具来添加数据库连接。使用数据库连接对话框的步骤如下所述:
- 在 ArcMap 或 ArcCatalog 的目录树中,展开数据库连接,然后双击添加数据库连接。
- 从数据库平台下拉列表中选择 SAP HANA。
- 在数据源文本框中,输入以下内容之一:
- 用于与数据库进行通信的 SAP HANA 服务器名称和 SQL 端口号使用冒号 (:) 进行分隔。例如,如果 SAP HANA 服务器的完全限定名称为 myserver.network.com,并且 SAP HANA 通过端口 98765 通信,则可以输入 myserver.network.com:98765。
- 您为 ODBC 驱动程序配置的数据源名称。
- 在身份验证类型中选择数据库身份验证。
- 在用户名和密码文本框中分别提供有效的用户名和密码。
- 如果您不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做有助于维护数据库的安全性。但是,如果执行此操作,则系统会在每次从桌面客户端连接时提示您提供用户名和密码。
- 单击确定进行连接。
文件的创建位置为 \\<computer_name>\Users\<user_name>\AppData\Roaming\ESRI\Desktop<release#>\ArcCatalog。
可以将连接移动到另一位置;只需确保需要建立连接的用户和应用程序有权读取放置连接文件的目录。
如果需要将此连接文件中的数据用作服务(如地理处理和地理编码服务)源,则可能需要将连接文件置于网络上的某个共享位置。有关共享连接文件的详细信息,请参阅使数据可供 ArcGIS Server 访问。
配置数据源名称(如果需要)
如果满足以下任意条件,则必须为 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN) 才能连接到数据库:
- 您正在使用 SAP HANA 1.0(任何受支持的补丁包版本)。
- 您正在连接到 SAP HANA Cloud。
- 您正在从 ArcGIS Desktop 10.6 或更早版本进行连接。
- SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数超过 31。
如果您的站点上不存在这些条件,您仍可配置数据源名称以连接到 SAP HANA,但这不是必要条件。
请按照以下步骤为您的 SAP HANA 数据库配置数据源名称:
- 在客户端计算机上打开 ODBC 数据源管理器(32 位)。
- 在 ODBC 数据源管理器(64 位)中单击系统 DSN 选项卡,然后单击添加。
- 选择 SAP HANA ODBC 客户端,然后单击完成。
- 输入数据源的名称、描述和 SQL 端口号。
- 在 TLS/SSL 部分中,选中使用 TLS/SSL 连接到数据库和验证 TLS/SSL 证书。
- 在 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):
- 打开 ODBC 数据源管理器(64 位)。
- 在 ODBC 数据源管理器(64 位)中单击系统 DSN 选项卡,然后单击添加。
将显示创建新数据源对话框。
- 选择 SAP HANA ODBC 客户端,然后单击完成。
- 针对您的数据库,填充数据源名称、描述和服务器:端口信息。
- 在 TLS/SSL 部分中,选中使用 TLS/SSL 连接到数据库和验证 TLS/SSL 证书。
- 打开高级 ODBC 设置对话框,并向特殊属性设置部分添加以下键值:SPATIALTYPES=1。单击确定以应用更改,然后关闭 ODBC 高级设置对话框。
- 在 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 驱动程序配置系统数据源名称:
- 要配置 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 站点。可以从 ArcMap 或 SAP HANA 连接到 ArcGIS Server Manager。您无法从 ArcMap 连接到 SAP HANA 中的地理数据库。