Preparação de sua instância do ServiceNow®¶
O Snowflake Connector para ServiceNow® V2 está sujeito aos Termos do Snowflake Connector.
Antes de instalar o Snowflake Connector for ServiceNow®V2, você deve configurar sua instância do ServiceNow®. Complete as seguintes etapas:
Acesso à instância ServiceNow® – certifique-se de que sua instância do ServiceNow® está pronta para uso
Usuário ServiceNow® – Certifique-se de que o usuário necessário esteja configurado corretamente
Defina índices de coluna para desempenho otimizado – Configure índices de coluna para melhor desempenho
Etapas opcionais – revisar e executar configurações opcionais, se necessário
Acesso à instância ServiceNow®¶
Certifique-se de que a instância do ServiceNow® esteja disponível ao público. O conector não funciona com instâncias escondidas atrás de um VPN.
Se você estiver usando Controle de acesso de endereço IP para seu ServiceNow®, você não conseguirá instalar o conector com sucesso. Para obter mais informações, consulte o artigo da comunidade.
Usuário ServiceNow®¶
Identifique ou crie o usuário do ServiceNow® para o conector.
Para se conectar à instância do ServiceNow®, o conector deve se autenticar na instância como um usuário do ServiceNow®. Escolha um usuário do ServiceNow® que atenda aos seguintes requisitos:
O nome de usuário não pode conter dois pontos (
:
).O usuário deve ter acesso de leitura a todos os registros das tabelas do ServiceNow® que você planeja ingerir. As listas de controle de acesso (ACLs) não devem esconder nenhum registro nestas tabelas deste usuário.
O usuário deve ter acesso de leitura a todas as linhas nas tabelas a seguir para habilitar a detecção de esquema:
sys_db_object
(com os camposname
,super_class
,sys_id
),sys_glide_object
(com os camposname
,scalar_type
,sys_id
),sys_dictionary
(com os camposelement
,internal_type
,name
,sys_id
).
O usuário deve ter acesso de leitura a todas as linhas na tabela a seguir para usar a estratégia de ingestão adequada:
sys_table_rotation
(com os camposname
esys_id
).
O usuário deve ter acesso de leitura ao campo
sys_updated_on
nas tabelas abaixo para não usar o modo de ingestão “truncar e carregar” menos econômico:sys_db_object
,sys_glide_object
,sys_dictionary
,sys_table_rotation
,tabela de diário (geralmente
sys_audit_delete
).
Nota
Configurando a conexão no Snowsight usando a autenticação OAuth para ServiceNow® só é possível com usuário interativo. O usuário ServiceNow® é interativo se a configuração Web service access only estiver desativada para o usuário.
Você pode usar a autenticação OAuth com usuários não interativos somente se você configurar a conexão com comandos SQL. Nesse caso, você não pode fazer login no ServiceNow® ou obter o token de atualização OAuth usando o Snowsight.
Configuração de índices de coluna para desempenho otimizado¶
Se você planeja ingerir e sincronizar uma tabela do ServiceNow® que tenha um campo sys_updated_on
, recomendamos configurar um índice nessa coluna. Para obter mais informações sobre a criação de índices, consulte a documentação Criação de índice de tabela na documentação do ServiceNow®.
Após criar o índice através da interface do usuário, pode levar algum tempo para que o índice seja construído. O processo de indexação é executado como uma tarefa de fundo.
Se sua instância tiver tabelas grandes, a Snowflake recomenda entrar em contato com o suporte ao cliente do ServiceNow® para perguntar sobre a melhor abordagem de indexação de tabelas grandes.
Etapas opcionais¶
Se você planeja usar o método de autenticação OAuth, e tiver a função somente leitura atribuída ao seu usuário ServiceNow®, certifique-se de que a propriedade do sistema
glide.security.snc_read_only_role.tables.exempt_create
tenha a tabelaoauth_credential
em sua lista de valores.Crie ou edite a propriedade
glide.security.snc_read_only_role.tables.exempt_create
na tabelasys_properties
. Para obter mais detalhes sobre como editar esta propriedade, consulte a Base de conhecimento do ServiceNow.Para saber como adicionar uma nova propriedade do sistema, consulte Como adicionar uma propriedade do sistema na documentação do ServiceNow®.
Para permitir a propagação de registros excluídos, use a tabela
sys_audit_delete
ou uma tabela de diário personalizada como fonte de informações sobre registros excluídos.Nota
Observe que o conector deve ter acesso a todos os registros da tabela de diário ou a instalação poderá falhar. Caso contrário, as exclusões de registros em outras tabelas poderão não estar corretas.
Se as linhas da tabela de diário estiverem ocultas por ACLs, o comportamento do conector será imprevisível. Mesmo que a instalação seja bem-sucedida, algumas exclusões podem não ser sincronizadas corretamente em momentos posteriores do processo.
Para usar
sys_audit_delete
:Defina o
no_audit_delete
atributo de dicionário comofalse
.Certifique-se de que o usuário do ServiceNow® para o conector tenha acesso à tabela
sys_audit_delete
e aos camposdocumentkey
,tablename
,sys_id
esys_created_on
nesta tabela.
Para usar uma tabela de diário personalizada:
Crie uma tabela de diário com o nome
snowflake_connector_journal
e campos de cadeia de caracteres com o nomedocumentkey
etablename
.Certifique-se de que o usuário do ServiceNow® para o conector tenha acesso à tabela
snowflake_connector_journal
e aos camposu_documentkey
,u_tablename
,sys_id
,sys_created_on
nesta tabela.Crie um script include chamado
RecordChange
com o seguinte código:var RecordChange = Class.create(); RecordChange.prototype= { initialize :function() {}, captureChange :function(tableName, docID) { var changeCapture = new GlideRecord('u_snowflake_connector_journal'); changeCapture.initialize(); changeCapture.setValue('u_documentkey', docID); changeCapture.setValue('u_tablename', tableName); changeCapture.insert(); }, type :'RecordChange' };
Defina uma regra comercial para capturar a eliminação do registro:
(function executeRule(current, previous /*null when async*/) { new RecordChange().captureChange(current.getTableName(), current.getUniqueValue()); })(current, previous);
Para cada tabela para a qual você deseja propagar registros excluídos, configure esta regra comercial para ser executada depois que um registro for excluído.
Nota
O conector só poderá sincronizar registros excluídos se eles forem auditados. As operações de exclusão que não chamam
DBDelete.setWorkflow()
não são ingeridas no Snowflake.Consulte a documentação do produto ServiceNow® para obter mais informações sobre o uso de
DBDelete.setWorkflow()
.Além disso, observe o seguinte sobre registros excluídos:
As exclusões de registros não são rastreadas para tabelas com o atributo de dicionário
no_audit_delete=true
.As exclusões de registros de tabelas com o prefixo
sys
não são rastreadas por padrão.O conector só poderá ingerir registros excluídos com a exclusão de registros em cascata se o campo de referência estiver em uma tabela auditada. Consulte a documentação do produto ServiceNow® para obter mais informações sobre a exclusão de registros em cascata.
Próximos passos¶
Após completar estes procedimentos, siga os passos em Instalação e configuração do conector com Snowsight ou Instalação e configuração do conector usando comandos SQL.