从 ArcGIS 连接到 Google BigQuery

要连接到 Google BigQuery,您必须安装和配置客户端文件以实现 ArcGIS 与 BigQuery 之间的通信,并从 ArcGIS Pro 创建数据库连接文件。 要发布 web 图层,必须将数据库连接文件注册到 ArcGIS Enterprise 门户的托管服务器站点。 为了实现最佳性能,请将 ArcGIS 客户端部署在 Google Cloud 中。

通常,IT 专业人员会安装连接数据仓库所需的 ArcGIS 软件和驱动程序。 他们还会配置允许在 ArcGIS 和云数据仓库之间进行通信所需的网络、防火墙和其他通信通道。

接下来,云数据仓库管理员会创建账户并授予这些账户访问云数据仓库中特定表的权限。 管理员可以创建从 ArcGIS Pro 到云数据仓库的连接,并与发布者共享连接文件,或者管理员可以为发布者提供必需的凭据,以允许他们自行创建连接文件。

要发布引用云数据仓库中的数据的 ArcGIS Server web 服务,发布者必需将数据库连接文件注册到充当 ArcGIS Enterprise 门户托管服务器的 ArcGIS GIS Server 站点。

安装和配置驱动程序

要从 ArcGIS Pro 连接到 BigQuery,您必须在 ArcGIS Pro 计算机上安装最新的 Magnitude Simba 开放式数据库连通性 (ODBC) 驱动程序。 要发布包含 BigQuery 中数据的地图影像图层或要素图层,您必须在 ArcGIS Enterprise 门户的托管服务器站点中安装驱动程序并配置计算机以连接到 BigQuery

有关详细信息以及用于下载和安装 64 位 ODBC 驱动程序的链接,请参阅 Google BigQuery 文档

Microsoft Windows 计算机

在每台 ArcGIS Pro 计算机上以及使用 Windows 操作系统的托管服务器中的每台计算机上安装 Magnitude Simba ODBC 驱动程序。

确认 Windows PATH 系统环境变量中存在 Magnitude Simba ODBC 驱动程序的路径。 如果不存在,则添加该路径。

Linux 计算机

如果门户的托管服务器在 Linux 计算机上运行,则必须在 GIS Server 站点中的每台计算机上安装 Magnitude Simba ODBC 驱动程序。

当您编辑 Magnitude Simba /etc/odbcinst.ini 文件以引用 Simba ODBC 驱动程序的位置时,必须将章节标题更改为 Simba ODBC Driver for Google BigQuery。 文本必须与之完全一致。 例如,如果该标题为 Simba ODBC Driver for Google BigQuery 64bit 或其他任何内容,ArcGIS 连接将失败。

在配置 /etc/odbcinst.ini 文件后,请配置 ArcGIS Server init_user_param.sh 文件以访问驱动程序。

更改 init_user_param.sh 脚本

将随 ArcGIS Server 一起安装的 init_user_param.sh 脚本更改为引用驱动程序。 可通过浏览至 <ArcGIS Server installation directory>/arcgis/server/usr 目录访问该脚本。

  1. 请确保 ArcGIS Server 每台计算机的安装程序所有者至少具有在数据仓库客户端库中读取和执行的权限。
  2. 在文本编辑器中打开 init_user_param.sh 脚本。
  3. 移除以 export 为开头的行中的注释标记 (#),并将驱动程序位置替换为您计算机上的路径。

    # -----------------------------------------------------------------------
    # Modify this section to configure an ODBC connection to Google BigQuery Data 
    # Warehouse.
    #
    # To make a connection, copy GoogleBigQueryODBC.did to the lib folder under the 
    # extracted directory for Google BigQuery ODBC driver. Edit 
    # simba.googlebigqueryodbc.ini and set DriverManagerEncoding=UTF-16. Configure and 
    # store the odbcinst.ini in the /etc folder. 
    #
    # -----------------------------------------------------------------------
    export LIB_ODBC_DRIVER_MANAGER=<Location_to_ODBC_driver_manager_libraries>/libodbc.so.2
    export SIMBAGOOGLEBIGQUERYODBCINI=<Location_to_simba.googlebigqueryodbc.ini>/simba.googlebigqueryodbc.ini

  4. 保存并关闭脚本。
  5. 要使在 init_user_param.sh 文件中进行的更改生效,必须重新启动 ArcGIS Server

    为此,先后在 ArcGIS Server 站点的每台计算机上运行 stopserver.sh 脚本和 startserver.sh 脚本。

    ./stopserver.sh

    ./startserver.sh

创建数据库连接文件

ArcGIS Pro 中,使用新建数据库连接对话框来创建与 BigQuery 的连接。

  1. ArcGIS Pro 中打开目录窗格。
  2. 右键单击数据库文件夹下的文件夹,然后单击新建数据库连接
  3. 数据库平台下拉列表中选择 BigQuery
  4. 身份验证类型下拉列表中,选择连接时要使用的身份验证类型。
    • 用户身份验证 - 使用刷新令牌进行身份验证。
    • 服务身份验证 - 使用服务帐户密钥文件进行身份验证。

    请参阅有关身份验证的 Google BigQuery 文档以帮助您决定要使用的身份验证类型。

  5. 如果您选择用户身份验证,请提供刷新令牌。

    连接到 BigQuery 的用户身份验证

  6. 如果您选择服务身份验证,请浏览到包含连接到 BigQuery 所需凭据的密钥文件的位置,选择该文件,然后单击打开

    连接到 BigQuery 的服务身份验证

  7. 键入或选择工程 ID,然后选择您要进行连接时的用户身份相关联的默认数据集。

    定义连接的工程和数据集。

    注:

    请勿使用任何 BigQuery 公共数据工程作为默认工程进行连接。 您无法启用要素图格化,也无法直接在公共数据工程的数据集中的任何表上创建物化视图。

    如果您打算使用此连接文件创建物化视图,请确保为连接分配默认数据集,可以在其中创建数据库对象。 将在该数据集中创建视图,该数据集可能与参与物化视图的数据不在同一数据集中。

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

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

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

  9. 或者,展开其他属性部分并指定要连接的参数(除了之前步骤中所需参数之外)。
    • AdditionalProjects
    • Timeout
    • Tracing
    • LogLevel
    • LogPath

    如果您需要下拉菜单中未提供的属性,则可以在属性字段中键入该属性并为其提供适当的值。

    有关高级连接参数的信息,请参阅 Google BigQuery 文档。

    例如,要将 ODBC 连接器配置为在 200 秒内重试失败的 API 调用,请从属性下拉菜单中选择超时,然后在字段中键入 200

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

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

确保用于连接的帐户具有访问数据仓库中内容的所需权限

注册到托管服务器

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

接下来的步骤

在将 ArcGIS 客户端配置为连接和创建数据库连接文件后,您和其他组织成员可以执行以下操作: