要从 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 的步骤如下所述:
- 打开 ArcGIS Pro 中的目录窗格。
- 右键单击数据库,然后单击新建数据库连接。
- 从数据库平台下拉列表中选择 SAP HANA。
- 在数据源文本框中,输入以下内容之一:
- 用于与数据库进行通信的 SAP HANA 服务器名称和 SQL 端口号使用冒号 (:) 进行分隔。 例如,如果 SAP HANA 服务器的完全限定名称为 myserver.network.com,并且 SAP HANA 通过端口 98765 通信,则可以输入 myserver.network.com:98765。
- 您为 ODBC 驱动程序配置的数据源名称。
- 在身份验证类型中选择数据库身份验证。
不支持操作系统身份验证。
- 在用户名和密码文本框中分别输入有效的数据库用户名和密码。
- 如果您不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做有助于维护数据库的安全性。 但是,如果执行此操作,则系统会在每次从 ArcGIS Pro 连接时提示您提供用户名和密码。
注:
对于您注册到 ArcGIS Server 站点的连接文件,或如果您希望通过搜索来找到通过此连接文件访问的数据,都必须选中保存用户名和密码。
- 单击确定创建连接文件。
数据库连接将显示在目录窗格中的数据库下,同时将在 ArcGIS Pro 工程目录中创建连接文件 (.sde)。
可通过在目录窗格中输入新名称并按 Enter 键对文件进行重命名。
配置数据源名称(如果需要)
如果满足以下任意条件,则必须为 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 站点中的计算机后,创建 SAP HANA 数据库的数据库连接,并将连接文件注册到 ArcGIS Server 站点。
在 ArcGIS Server 计算机(Linux)上安装 SAP HANA。
下载 SAP HANA 客户端 ODBC 驱动程序。 将客户端放在 ArcGIS Server 站点中的每台计算机上进行安装,然后编辑每台 ArcGIS Server Linux 计算机上的 ArcGIS Server init_user_param.sh 脚本。
- 从 SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在 ArcGIS Server 站点中的每台计算机上。
- 请在每个 ArcGIS Server 计算机上安装 Linux ODBC 驱动程序管理器(如未安装)。
- 请确保 ArcGIS Server 每台计算机的安装程序所有者至少具有在数据库客户端库中读取和执行的权限。
- 在文本编辑器中打开 init_user_param.sh 脚本。
- 移除这些行中以 export 为开头的注释标记 (#) 并将 <SAPHANA_InstallDir> 信息替换为安装 SAP HANA 客户端的目录路径:
# ----------------------------------------------------------------------- # Modify this section to configure a connection to SAP HANA. # # To make a connection, name the SAP HANA ODBC configuration files as .odbcinst.ini # and .odbc.ini and store them in the ArcGIS Server user $HOME directory. # # ----------------------------------------------------------------------- export SAPHANADIR=<SAPHANA_InstallDir>/sap/hdbclient export LD_LIBRARY_PATH=$SAPHANADIR:$LD_LIBRARY_PATH
- 保存并关闭脚本。
- 要使在 init_user_param.sh 文件中进行的更改生效,必须重新启动 ArcGIS Server。
为此,先后在 ArcGIS Server 站点的每台计算机上运行 stopserver.sh 脚本和 startserver.sh 脚本。
./stopserver.sh
./startserver.sh
在安装数据库客户端文件后,更改与 ArcGIS Server 一同安装的 init_user_param.sh 脚本以引用客户端文件。 可通过浏览至 <ArcGIS Server installation directory>/arcgis/server/usr 目录访问该脚本。
您必须更新 ArcGIS Server 站点中每台计算机上的 init_user_param.sh。
安装 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 计算机上的数据源名称配置为与在 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 文件。
连接到数据库
您可以在 ArcGIS Pro 中使用数据库连接对话框连接到数据库,如上所述。
或者,您可以在 ArcGIS Pro 中运行创建数据库连接工具或通过 ArcGIS Server 计算机使用 Python 运行创建数据库连接命令,以创建可连接到数据库的数据库连接文件 (.sde)。
您必须将用户信息与连接文件一起保存,才能将数据库连接文件用于 ArcGIS Server。
注册数据库
要使用 SAP HANA 中的数据发布 web 服务,请创建数据库连接并将其注册到您的 ArcGIS Server 站点。
要允许 ArcGIS Server 站点访问数据,使用您创建的数据库连接文件在 ArcGIS Pro 中添加注册的数据存储或在门户中添加数据存储项目。