Preparação de sua instância do ServiceNow®¶
O conector Snowflake para ServiceNow® está sujeito aos Termos do conector.
Antes de instalar o Snowflake Connector for ServiceNow®, você deve configurar sua instância do ServiceNow.
Pré-requisitos¶
Complete as seguintes etapas para configurar sua instância do 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.
Identifique as tabelas do ServiceNow que contêm os dados que você planeja ingerir no Snowflake.
Identifique ou crie o usuário ServiceNow para o conector.
Para se conectar à instância do ServiceNow, o conector deve se autenticar na instância como um usuário ServiceNow. Escolha um usuário 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 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
sys_db_object
(com os camposname
,super_class
,sys_id
),sys_glide_object
(com os camposname
,scalar_type
,sys_id
) esys_dictionary
(com os camposelement
,internal_type
,name
,sys_id
) para ativar a detecção de esquema.O usuário deve ter acesso de leitura a todas as linhas na tabela
sys_table_rotation
(com os camposname
esys_id
), para que o conector possa usar a estratégia de ingestão adequada.O usuário deve ter acesso ao campo
sys_updated_on
nas tabelassys_db_object
,sys_glide_object
,sys_dictionary
,sys_table_rotation
e tabelas de diário. Caso contrário, as tabelas são carregadas usando um modo de truncamento e ingestão de carga menos econômico.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.
Se você planeja ingerir e sincronizar uma tabela ServiceNow que tenha uma coluna
sys_updated_on
, configure um índice nessa coluna. Para obter mais informações sobre a criação dos índices, consulte a documentação Criar um índice de tabela na documentação ServiceNow.Depois de criar o índice através da interface do usuário, pode levar 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.
(Opcional) Se você planeja usar o método de autenticação OAuth, e você 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 Adicionar uma propriedade do sistema na documentação do ServiceNow.
(Opcional) Alguns procedimentos do conector que não são essenciais para a funcionalidade principal usam o ponto de extremidade do ServiceNow
<instância_service_now>/<nome_da_tabela>.do?SCHEMA
para recuperar esquemas de tabela. Este ponto de extremidade requer a funçãoadmin
. Para obter mais informações sobre essa função, consulte Funções básicas do sistema na documentação do ServiceNow. Configurar o conector com um usuário sem essa função impedirá a execução de procedimentos baseados nesse ponto de extremidade. Os procedimentos afetados possuem notas apropriadas em relação a este requisito.(Opcional) 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 colunas 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 do 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.