管理、更新和卸载 Snowflake Connector for ServiceNow®

本主题及其中的各节介绍了安装和配置连接器后可能需要执行的常见任务。

暂停和恢复 Snowflake Connector for ServiceNow®

以下各节介绍如何暂停和恢复连接器。

暂停 Snowflake Connector for ServiceNow®

要停止连接器启动的所有任务,请调用 PAUSE_CONNECTOR 存储过程:

CALL PAUSE_CONNECTOR();
Copy

暂停连接器后,将无法再与它进行交互(例如启用/禁用表或配置连接器),直到通过调用 RESUME_CONNECTOR 存储过程恢复连接器。

暂停连接器的同时也会停止该连接器产生的任何费用。

恢复 Snowflake Connector for ServiceNow®

要恢复 PAUSE_CONNECTOR 存储过程停止的所有任务,请调用 RESUME_CONNECTOR 存储过程:

CALL RESUME_CONNECTOR();
Copy

更改连接器使用的仓库

如果要更改连接器使用的仓库或添加专用仓库,请通过调用以下命令执行此操作:

CALL UPDATE_WAREHOUSE('<warehouse_name>');
Copy

其中:

warehouse_name

指定连接器应使用的仓库的名称。

备注

在将连接器配置为使用其他仓库之前,请验证 连接器应用程序 是否对新仓库具有 USAGE 权限。

此外,连接器必须处于 paused 状态。请参阅 暂停连接器

删除表

要删除表状态数据(包括配置、统计信息、内部连接器数据、相关任务),并且不在 用于监控连接器的视图 中显示该表,请执行以下步骤:

CALL DELETE_TABLE('<table_name>', <drop_related_objects>);
Copy

其中:

table_name

指定要删除的表的名称。该表必须 已禁用,并且未在 重新加载

drop_related_objects (可选)

指定是否删除相关对象。如果设置为 true,则该过程还会删除目标数据库中为此表创建的所有对象,包括视图、原始数据和事件日志表。如果设置为 false,则表状态将被删除,但相关对象保持不变。

备注

默认情况下,DELETE_TABLE 过程不会移除在目标数据库中为此表创建的对象,这些对象包含 Snowflake 中的 ServiceNow® 数据(例如 原始数据表事件日志表展平视图)。您可以提供 drop_related_objects 参数,也可以手动删除这些对象。

要手动删除这些元素,必须首先使用具有 MANAGE GRANTS 权限的角色从连接器转移这些元素的所有权。例如:

USE ROLE ACCOUNTADMIN;
GRANT OWNERSHIP ON TABLE <destination_database>.<destination_schema>.<table_name> TO ROLE ACCOUNTADMIN REVOKE CURRENT GRANTS;
DROP TABLE <destination_database>.<destination_schema>.<table_name>;
Copy

更新连接器使用的刷新令牌

如果您使用 OAuth 身份验证设置连接器,必须定期更新刷新令牌。否则,一旦令牌过期,连接器将无法再访问 ServiceNow®。默认情况下,令牌在生成 90 天后过期。

如果您为连接器配置 电子邮件警报,会在每月的第一天收到更新刷新令牌的提醒。如果令牌过期,当连接器无法访问 ServiceNow® 时,您会收到一封电子邮件。

更新使用 Snowsight 安装的连接器的刷新令牌

如需在连接器是 使用 Snowsight 安装 的情况下更新刷新令牌,请执行下列操作:

  1. Sign in to Snowsight as a user with the ACCOUNTADMIN role.

    备注

    请确保您使用的 Snowsight URL 与配置 URL 重定向 OAuth 时使用的 Snowsight URL 匹配。也就是说,如果在 OAuth® 中设置的 URL 重定向 ServiceNow 是由通过专用链接访问的 Snowsight 提供的,则您应通过专用链接登录到 Snowsight 以刷新令牌。同样,如果使用可公开访问的 Snowsight URL 配置了重定向 URL,则应由可通过公共 URL 访问的 Snowsight 进行刷新。

  2. In the navigation menu, select Catalog » Apps.

  3. 搜索 Snowflake Connector for ServiceNow,然后选择连接器的磁贴。

  4. In the top navigation menu select Settings » Authentication » Reauthenticate.

    备注

    确保您以最初配置连接器的用户的身份登录 ServiceNow®。您可以在对话框的右上角查看当前登录的用户。

  5. 要确认允许连接器连接到您的 ServiceNow® 账户,请在对话框中选择 Allow。刷新令牌现已更新。

如需了解如何使用 SQL 命令更新刷新令牌,请参阅 使用 SQL 命令更新刷新令牌

使用 SQL 命令更新刷新令牌

如需使用 SQL 命令更新刷新令牌,请执行以下操作:

  1. 获取新的 OAuth 刷新令牌。确保您使用连接器当前正在使用的 client_idclient_secret 以及用户凭据。

  2. 通过查询 CONNECTOR_CONFIGURATION 视图 来找出密钥对象的完全限定名称:

    SELECT value FROM connector_configuration WHERE config_key = 'secret';
    
    Copy
  3. 通过运行 ALTER SECRET 命令、更改以下参数,来更新密钥对象:

    • OAUTH_REFRESH_TOKEN 设置为您在第一步中检索到的 OAuth 刷新令牌。

    • OAUTH_REFRESH_TOKEN_EXPIRY_TIME 设置为 UTC 时区的刷新令牌过期时间戳。您可以通过将来自 ServiceNow® 的刷新令牌有效期与令牌发布日期相加,计算出有效期。默认情况下,令牌有效期为 100 天。

    例如,如需更新 secretsdb.apiauth.servicenow_creds_oauth_code 密钥,请运行以下命令:

    ALTER SECRET secretsdb.apiauth.servicenow_creds_oauth_code SET OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH', OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00';
    
    Copy

    备注

    如需更新密钥,您必须使用具有 OWNERSHIP 权限的角色。

更新基本身份验证的 ServiceNow® 密码

要更新密码,您需要找到一个现有的密钥并使用 ALTER SECRET 命令进行修改。

  1. 使用 Snowsight 或 SQL 命令确定密钥对象的完全限定名称。

    1. 要使用 Snowsight 获取密钥,请执行以下操作:

      1. Sign in to Snowsight as a user with the ACCOUNTADMIN role.

      2. In the navigation menu, select Catalog » Apps.

      3. 搜索 Snowflake Connector for ServiceNow,然后选择连接器的磁贴。

      4. In the top navigation menu select Settings » Authentication.

        Authentication 部分显示了密钥对象,例如:CONNECTORS_UI.SERVICENOW_GZSTZTP0KHD.SECRET

    2. 要使用 SQL 命令获取密钥对象的完整限定名称,请查询 CONNECTOR_CONFIGURATION 视图

      SELECT value FROM connector_configuration WHERE config_key = 'secret';
      
      Copy
  2. 暂停 连接器。

  3. 通过运行 ALTER SECRET 命令、更改 PASSWORD 参数来更新密钥对象。

  4. 恢复 连接器。

    密码现已更新并由连接器使用。

备注

与更改密码类似,您可以选择使用 ALTER SECRET 命令更新用户名。只需将 USERNAME 参数设置为新用户名即可。在更改用户名之前,请确保新用户名至少具有与之前用户名相同的权限,否则,连接器可能无法正常运行。

更新与 ServiceNow® 实例的连接

您可以更新与 ServiceNow® 实例的连接。它允许更改连接器使用的外部访问集成和密钥。它还可以解决密钥从连接器中的外部访问 UDF 分离的问题。

可通过以下步骤更新连接配置:

CALL UPDATE_CONNECTION_CONFIGURATION({
  'service_now_url': '<servicenow_base_url>',
  'secret': '<secret_name>',
  'external_access_integration': '<external_access_integration_name>'
});
Copy

其中:

servicenow_base_url

指定连接器应使用的 URL® 实例的 ServiceNow。URL 必须设置为与安装连接器时相同的值,格式如下:

https://<servicenow_instance_name>.service-now.com
Copy

不支持更改 ServiceNow® 实例 URL。

secret_name

指定 密钥对象的完整限定名称,该对象包含用于向 ServiceNow® 验证身份的凭证。

您必须按以下格式指定密钥对象的完称:

<database_name>.<schema_name>.<secret_name>
Copy

数据库、架构和密钥的名称必须是有效的 对象标识符

external_access_integration_name

为该 :ref:`外部访问集成 ServiceNow® <label-servicenow_connector_prereqs_external_access_integration_v2>`制定名称.

集成的名称必须是有效的 对象标识符

例如,要更新与 ServiceNow® 实例的连接,请执行以下操作:

  • 包含 URL https://myinstance.service-now.com

  • 使用存储在 secretsdb.apiauth.servicenow_creds_oauth_code 中的密钥。

  • 使用名为 servicenow_external_access_integration 的外部访问集成。

运行以下命令:

CALL UPDATE_CONNECTION_CONFIGURATION({
  'service_now_url': 'https://myinstance.service-now.com',
  'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE',
  'external_access_integration': 'SERVICENOW_API_INTEGRATION'
});
Copy

更新配置只能由具有 ADMIN 应用程序角色授予权限的用户执行。此外,要运行过程,连接器必须处于 paused 状态。请参阅 暂停连接器

导出连接器状态

可以导出当前连接器状态和配置的快照。在重新安装连接器以保留已启用的表和引入状态时,或者在将目标架构复制到故障转移区域以帮助进行灾难恢复时,具有导出的连接器状态的快照非常有用。

可以通过以下过程导出状态:

CALL EXPORT_CONNECTOR_STATE();
Copy

此过程会在目标架构中创建一个具有导出状态的新 __CONNECTOR_STATE_EXPORT 表。要执行导出,必须满足以下条件:

  • 导出只能由具有 ADMIN 应用程序角色授予权限的用户执行。

  • 没有正在进行的表 重新加载

备注

__CONNECTOR_STATE_EXPORT 表包含在重新安装期间恢复连接器状态所需的所有信息,但值得注意的是,缺少一些信息:

  • 目标数据库和目标架构、仓库、数据阅读者角色、ServiceNow URL、密钥对象、外部访问集成和日志表的名称(如果已配置)不会导出。重新安装连接器时必须再次提供此信息。如果重新安装后将使用相同的 ServiceNow 实例和目标架构,则可借此机会更改连接器使用的密钥对象或日志表的名称。

  • 对于每个引入的表和引入模式,仅导出最新的引入状态。因此,在连接器状态导入之后,历史记录数据和统计数据将不可用。

只要满足以下条件,每次连接器根据 配置的时间表 触发引入时,配置也会自动导出:

  • 至少有一个表已启用引入功能。

  • 没有正在进行的表重新加载。

卸载应用程序

本节介绍如何使用 Snowsight 和工作表卸载应用程序,以及如何移除由连接器创建但需要由用户有意移除的对象。

使用 Snowsight 卸载应用程序

  1. Sign in to Snowsight as a user with the ACCOUNTADMIN role.

  2. In the navigation menu, select Catalog » Apps.

  3. 搜索 Snowflake Connector for ServiceNow,选择三个点的菜单以打开上下文视图,然后选择 Uninstall

  4. 如果应保留目标数据库中的所有引入数据,请选择 Transfer object ownership to another role,并选择应被授予对应用程序拥有的所有对象的所有权的角色。否则,请选择 Delete all objects 以移除所有数据。

    备注

    要查看哪些对象将被转移到选定的角色(或被移除),请展开 Show objects 菜单。

  5. 选择 Uninstall 以确认更改。连接器的应用程序现在已卸载。

使用工作表卸载应用程序

连接器引入的数据将保留在选定的目标数据库和架构中,这些数据库和架构由用于安装连接器的角色拥有(通常是 ACCOUNTADMIN)。但是,目标架构中包含 ServiceNow® 数据的所有接收器表和视图都归 Snowflake Connector for ServiceNow® 应用程序所有。因此,如果您在将这些表和视图的所有权转让给账户角色之前卸载连接器,这些表和视图也会被删除

备注

如果您不想将数据与连接器一起删除,请将目标架构中所有表和视图的所有权转让给账户角色,并撤销应用程序的当前授权。

为防止使用引入数据的现有管道发生中断,我们建议所有管道使用专用的数据所有者角色来访问数据,并将所有权临时转移给该角色。

如果已对管道所依赖的目标架构中的表和视图授予了额外权限,则可以使用 COPY CURRENT GRANTS 子句而不是 REVOKE CURRENT GRANTS 运行下面的所有权转移查询,以保留这些授权。

要将目标架构中所有表和视图的所有权转移给账户角色,请运行以下查询:

USE ROLE ACCOUNTADMIN;

GRANT OWNERSHIP ON ALL TABLES IN SCHEMA <destination_database>.<destination_schema>
TO ROLE <account_role>
REVOKE CURRENT GRANTS;

GRANT OWNERSHIP ON ALL VIEWS IN SCHEMA <destination_database>.<destination_schema>
TO ROLE <account_role>
REVOKE CURRENT GRANTS;
Copy

为确保连接器不拥有任何您不想移除的对象,请运行以下查询:

SHOW OBJECTS OWNED BY APPLICATION <application_name>;
Copy

最后,要删除连接器应用程序,请运行以下查询:

DROP APPLICATION <application_name>;
Copy

警告

如果您决定不将目标架构中表和视图的所有权从连接器转移,您可以运行以下查询,以便在删除连接器时一并删除它们:

DROP APPLICATION <application_name> CASCADE;
Copy

删除在安装过程中创建的对象

移除连接器数据库不会删除存储在单独数据库中的引入数据或在使用 Snowsight 执行的安装期间创建的对象。

如需查看安装期间创建的对象,请执行以下操作:

  1. Sign in to Snowsight as a user with the ACCOUNTADMIN role.

  2. In the navigation menu, select Catalog » Apps.

  3. 搜索 Snowflake Connector for ServiceNow,然后选择它。

  4. In the top navigation menu select Settings » Authentication.

    SecretExternal Access IntegrationSecurity Integration 是需要手动移除的对象。除了这些对象之外,可能还有一个 Network Rule 对象与密钥位于同一架构中(如果应用程序是使用 Snowsight 安装的)。

    警告

    密钥和网络规则的数据库和架构也可以删除。但是,如果您还在使用其他 Snowflake 连接器,例如 Snowflake Connector for Google Analytics Raw Data,请谨慎操作。此类应用程序的对象也可能位于同一数据库中。

如需删除这些对象,请运行 DROP <object> 命令。

例如,如需删除密钥,请运行 DROP SECRET 语句。

升级连接器

连接器会自动升级,这意味着用户无需执行任何操作即可获得最新的应用程序。

缩放连接器

如果需要引入许多 ServiceNow® 表,并且您希望增加并发引入的表数量,可以通过以下方式更改参数:

CALL CONFIGURE_CONCURRENCY(<number>);
Copy

其中:

number

指定能够同时引入表的最大工作线程数。默认情况下,此值设置为 10。

使用连续计划的表采用单独的专用处理器池,不计入并发限制。

在考虑提高并发性的同时,还应更改用于数据引入的仓库的大小。如果您遇到任何速度变慢的情况,请尝试调整仓库的大小。有关更多信息,请参阅 使用仓库

警告

提高并发性可能会导致 ServiceNow® 实例过载,从而导致整体性能降低和产生引入错误。请将缩放更改前后的连接器的性能和稳定性进行对比,从而找到最佳参数。

使用与 ServiceNow® 数据相同的数据库和架构重新安装连接器

重新安装连接器的步骤如下:

  1. 查询 TABLES_STATE 视图并验证当前没有表处于 RELOADING 状态:

    SELECT TABLE_NAME FROM TABLES_STATE WHERE STATUS = 'RELOADING';
    
    Copy
  2. 如果当前正在重新加载任何表,请等待重新加载完成或将其 取消

  3. 调用以下存储过程以停止连接器:

    CALL PAUSE_CONNECTOR();
    
    Copy
  4. 导出连接器的状态和配置。有关详细信息,请参阅 本节

    重要

    建议在删除连接器应用程序 之前 导出连接器的状态和配置。这样就可以在新安装中保留所有自定义选项(例如,已启用同步功能的表及其时间表)和状态及其最新更改。

    如果您已经删除了连接器,但包含引入数据的数据库和架构保持完好,您仍然可以依靠自动导出的状态重新安装连接器,但重新安装的连接器可能会重复引入某些记录。

  5. 移除连接器转移目标架构中表和视图的所有权

  6. 通过以下步骤安装连接器:

在安装过程中:

  • 提供以前使用的数据库和架构。

    安装后,连接器将检测到数据库和架构包含引入的数据,并从重新安装前所处的位置继续引入。如果导出了连接器状态,并且在安装过程中成功导入了该状态,则先前引入的表将自动启用,并使用相同的计划和配置。否则,您需要手动启用所有表,并执行配置其计划等操作,以恢复引入。

    使用 SQL 命令重新安装时,请务必按照 SQL 安装指南中的说明,将目标架构中的视图和表的所有权转移到连接器。否则,连接器将无法访问这些表和视图,从而无法恢复引入。

  • 提供相同的 ServiceNow® 实例名称。

  • 对于其他实参,您可以再次使用 安装连接器时创建的对象,或者您也可以使用新对象。

语言: 中文