从 ArcGIS 连接到 SAP HANA

要从 ArcGIS 客户端连接到 SAP HANA 数据库,请在 ArcGIS 客户端计算机上安装和配置 SAP HANA 客户端 ODBC 驱动程序。

注:

SAP HANA 客户端可供“软件下载”下 SAP 支持门户中的现有 SAP 用户使用。

在所有 ArcGIS 客户端计算机上配置了 ODBC 驱动程序之后,请创建数据库连接文件。 如需发布引用 SAP HANA 数据库中数据的 ArcGIS Server web 服务,请将数据库连接文件注册到您的 ArcGIS Server 站点。

安装并配置 SAP HANA 客户端

软件下载下的 SAP 支持门户中下载受支持的 64 位 SAP HANA 客户端,并将其安装在所有 ArcGIS Pro 计算机和 ArcGIS Server 站点中的计算机上,您将在其中注册与 SAP HANA 数据库的连接。

请按照 SAP HANA 提供的说明来安装和配置 ODBC 客户端。

ArcGIS Pro 进行连接

要从 ArcGIS Pro 工程连接到 SAP HANA,请在 ArcGIS Pro 计算机上安装 SAP HANA 客户端 ODBC 驱动程序,并创建数据库连接。

使用数据库连接对话框或创建数据库连接地理处理工具来创建数据库连接。

如果您的站点满足以下所有条件,则可以使用 SAP HANA 服务器名称和 SQL 端口号来连接到数据库:

  • 您正在连接到 SAP HANA 的本地安装程序。
  • 您正在从常规发行版本的 ArcGIS Pro 进行连接。
  • SAP HANA 服务器名称和 SAP HANA 服务器的 SQL 端口号的字符数少于 31。

如果不满足以上任意条件,则必须为 SAP HANA 客户端 ODBC 驱动程序配置系统数据源名称 (DSN),然后完成以下步骤,才能连接到数据库。 有关配置数据源名称的说明,请参阅 SAP HANA 文档。

要使用数据库连接对话框连接到 SAP HANA,请按照以下步骤进行操作:

“数据库连接”对话框

  1. ArcGIS Pro 中打开目录窗格。
  2. 右键单击数据库文件夹下的文件夹,然后单击新建数据库连接
  3. 数据库平台下拉列表中选择 SAP HANA
  4. 数据源文本框中,输入以下内容之一:
    • 用于与数据库进行通信的 SAP HANA 服务器名称和 SQL 端口号使用冒号 (:) 进行分隔。 例如,如果 SAP HANA 服务器的完全限定名称为 myserver.network.com,并且 SAP HANA 通过端口 98765 通信,则可以输入 myserver.network.com:98765。 或者,可以在附加属性下设置端口号。 (请参阅以下步骤 9。)
    • 您为 ODBC 驱动程序配置的数据源名称。
  5. 使用数据库身份验证作为身份验证类型。

    不支持操作系统身份验证。

  6. 用户名密码文本框中分别输入有效的数据库用户名和密码。
  7. 如果您不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码

    这样做有助于维护数据库的安全性。 但是,如果执行此操作,则系统会在每次从 ArcGIS Pro 连接时提示您提供用户名和密码。

    注:

    对于您注册到 ArcGIS Server 站点的连接文件,或如果您希望通过搜索来找到通过此连接文件访问的数据,都必须选中保存用户名和密码

  8. 连接文件名称字段中键入连接文件的名称。

    当提供连接信息后,系统将创建一个默认名称。 您可以使用默认值,或者键入更具描述性的文件名。

    这是将显示在目录窗格和视图中的名称,也是存储在磁盘上的 .sde 文件的名称。

  9. 或者,展开附加属性部分以键入连接参数和值。

    有关附加和可选连接参数的信息,请参阅 SAP HANA 文档。

  10. 单击验证以确认连接信息有效并且数据库可访问。

    如果数据库包含地理数据库并且连接有效,则地理数据库属性选项卡现在处于活动状态。

  11. 单击确定创建连接文件。

数据库连接将显示在目录窗格中的数据库下,同时将在 .sde 工程目录中创建连接文件 (ArcGIS Pro)。

ArcGIS Server 进行连接

要将 SAP HANA 数据发布到联合或独立 ArcGIS Server 站点并使数据保留在 SAP HANA 中,请在 ArcGIS Server 站点的每台计算机上安装 64 位 SAP HANA 客户端 ODBC 驱动程序,并将地理数据库连接文件注册到站点。 请遵照特定于操作系统(安装有 ArcGIS Server)的说明进行操作。

配置 ArcGIS Server 站点中的计算机后,创建 SAP HANA 数据库的数据库连接,并将连接文件注册到 ArcGIS Server 站点。

ArcGIS Server 计算机(Microsoft Windows)上安装 SAP HANA

下载 SAP HANA 客户端 ODBC 驱动程序,并安装在 ArcGIS Server 站点中的每台计算机上。

在每台 ArcGIS Server Windows 计算机上安装 SAP HANA 客户端 ODBC 驱动程序。

  1. SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在 ArcGIS Server 站点中的每台计算机上。
  2. 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 会对所发布数据的连接字符串和注册数据库的连接字符串进行比较。

  1. 打开 ODBC 数据源管理器(64 位)。
  2. 在 ODBC 数据源管理器(64 位)中单击系统 DSN 选项卡,然后单击添加

    将显示创建新数据源对话框。

  3. 选择 SAP HANA ODBC 客户端,然后单击完成
  4. 针对您的数据库,填充数据源名称描述服务器:端口信息。
  5. 在 TLS/SSL 部分中,选中使用 TLS/SSL 连接到数据库验证 TLS/SSL 证书
  6. 打开高级 ODBC 设置对话框,并向特殊属性设置部分添加以下键值:SPATIALTYPES=1。 单击确定以应用更改,然后关闭 ODBC 高级设置对话框。

    注:

    如果您将 ArcGIS Server 与受支持的 SAP HANA 2.0 或更高版本搭配使用,则可以跳过此步骤。

  7. 在 ODBC 客户端设置和 ODBC 数据源管理器上,单击确定以将它们关闭。

ArcGIS Server 计算机(Linux)上安装 SAP HANA

下载 SAP HANA 客户端 ODBC 驱动程序。 将客户端放在 ArcGIS Server 站点中的每台计算机上进行安装,然后编辑每台 ArcGIS Server Linux 计算机上的 ArcGIS Server init_user_param.sh 脚本。

  1. SAP 支持门户下载受支持的 64 位 SAP HANA 客户端,然后将其安装在 ArcGIS Server 站点中的每台计算机上。
  2. 请在每个 ArcGIS Server 计算机上安装 Linux ODBC 驱动程序管理器(如未安装)。
  3. 在安装数据库客户端文件后,更改与 ArcGIS Server 一同安装的 init_user_param.sh 脚本以引用客户端文件。 可通过浏览至 <ArcGIS Server installation directory>/arcgis/server/usr 目录访问该脚本。

    您必须更新 ArcGIS Server 站点中每台计算机上的 init_user_param.sh

  4. 请确保 ArcGIS Server 每台计算机的安装程序所有者至少具有在数据库客户端库中读取和执行的权限。
  5. 在文本编辑器中打开 init_user_param.sh 脚本。
  6. 移除这些行中以 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

  7. 保存并关闭脚本。
  8. 要使在 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 会对所发布数据的连接字符串和注册数据库的连接字符串进行比较。

  1. 要配置 ODBC 数据源名称,请编辑 SAP HANA ODBC 连接文件,.odbc.ini.odbcinst.ini

    文件必须命名为 .odbc.ini.odbcinst.ini

  2. 在文本编辑器中打开 .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

  3. 要连接到 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 CERTIFCATEEND 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
  4. 保存并关闭 .odbc.ini 文件。
  5. 打开并编辑 .odbcinst.ini 文件以包含 ODBC 驱动程序路径。

    .odbcinst.ini 文件中,无需保留本示例中所示的空格:

    Description  =SAP HANA ODBC
    Driver64         = /<usr>/sap/hdbclient/libodbcHDB.so

  6. 保存并关闭 .odbcinst.ini 文件。

连接到数据库

您可以在 ArcGIS Pro 中使用数据库连接对话框连接到数据库,如上所述

或者,您可以在 ArcGIS Pro 中运行创建数据库连接工具或通过 ArcGIS Server 计算机使用 Python 运行创建数据库连接命令,以创建可连接到数据库的数据库连接文件 (.sde)。

您必须将用户信息与连接文件一起保存,才能将数据库连接文件用于 ArcGIS Server

注册数据库

要使用 SAP HANA 中的数据发布 web 服务,请创建数据库连接并将其注册到您的 ArcGIS Server 站点。

要允许 ArcGIS Server 站点访问数据,使用您创建的数据库连接文件在 ArcGIS Pro添加注册的数据存储在门户中添加数据存储项目