从 ArcGIS 连接到 SAP HANA
要发布引用 SAP HANA 数据库中数据的 ArcGIS Server web 服务,请在 ArcGIS Server 站点中的所有计算机上安装并配置 SAP HANA 客户端 ODBC 驱动程序。
注:
SAP HANA 客户端可供“软件下载”下 SAP 支持门户中的现有 SAP 用户使用。
在所有 ArcGIS 客户端计算机上配置了 ODBC 驱动程序之后,请创建数据库连接文件并将该文件注册到 ArcGIS Server 站点。
安装并配置 SAP HANA 客户端
从软件下载下的 SAP 支持门户中下载受支持的 64 位 SAP HANA 客户端,并将其安装在所有 ArcGIS Pro 计算机和 ArcGIS Server 站点中的计算机上,您将在其中注册与 SAP HANA 数据库的连接。
请按照 SAP HANA 提供的说明来安装和配置 ODBC 客户端。
在 ArcGIS Server 计算机上安装 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脚本以引用客户端文件。 可通过浏览至<ArcGIS Server installation directory>/arcgis/server/usr目录访问该脚本。您必须更新 ArcGIS Server 站点中每台计算机上的
init_user_param.sh。请确保每台计算机的 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
安装 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
保存并关闭
.odbc.ini文件。打开并编辑
.odbcinst.ini文件以包含 ODBC 驱动程序路径。在
.odbcinst.ini文件中,无需保留本示例中所示的空格:Description =SAP HANA ODBC Driver64 = /<usr>/sap/hdbclient/libodbcHDB.so保存并关闭
.odbcinst.ini文件。
在 ArcGIS Server 计算机上安装 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 计算机上配置 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 数据源管理器上,单击确定以将它们关闭。
创建数据库连接
您必须有数据库连接(.sde 文件),用于对数据库的连接进行身份验证。
可以在需要连接数据库的 ArcGIS Server 站点中的某台计算机上调用 ArcPy CreateDatabaseConnection 函数。 有关运行此函数的信息,请参阅 ArcGIS Pro 帮助中的创建数据库连接。
您必须将用户信息与连接文件一起保存,才能将数据库连接文件用于 ArcGIS Server。
注册连接文件
要允许 ArcGIS Server 站点访问数据,请使用已创建的数据库连接文件在 ArcGIS Pro 中添加已注册的数据存储或在门户中添加数据存储项目。