Instalação e configuração do conector usando comandos SQL¶
O conector Snowflake para ServiceNow® está sujeito aos Termos do conector.
Este tópico descreve como usar os comandos SQL para instalar e configurar o conector. Ele considera que você já tenha realizado os procedimentos descritos em Preparação de sua instância do ServiceNow®.
Neste tópico:
Configuração do OAuth¶
Nota
Se você planeja usar autenticação básica em vez de OAuth, você pode pular esta seção e continuar em Criação de um objeto secreto
Você pode configurar o Snowflake Connector for ServiceNow® para usar OAuth para autenticar na instância do ServiceNow:
No ServiceNow, você deve configurar a instância para suporte usando OAuth com o fluxo de concessão de código.
No Snowflake Connector for ServiceNow®:
O conector usa uma integração de segurança com
TYPE = API_AUTHENTICATION
para conectar o Snowflake à instância do ServiceNow.A integração de segurança especifica o ID do cliente do OAuth ServiceNow, o segredo do cliente e a URL do ponto de extremidade para autenticar na instância do ServiceNow.
O conector usa um objeto secreto Snowflake para gerenciar informações sensíveis, incluindo as credenciais de autenticação.
No caso de usar OAuth para autenticação, o conector armazena o token de atualização do ServiceNow OAuth, o tempo de validade do token de expiração e o nome da integração de segurança no objeto secreto Snowflake.
Para configurar o Snowflake Connector for ServiceNow® para usar OAuth, siga estes passos:
Configure sua instância do ServiceNow para usar o OAuth com o fluxo de concessão de código.
Se sua instância do ServiceNow já usar o fluxo de concessão de código do OAuth e você gostaria de usar essa instância com o Snowflake Connector for ServiceNow®, anote o ID do cliente, segredo do cliente e URL do ponto de extremidade que corresponde ao token de OAuth.
Para obter mais informações, consulte Gerenciamento de tokens do OAuth. Depois de anotar estas informações, crie uma integração de segurança na próxima etapa.
Se você quiser usar uma instância diferente do ServiceNow, acesse ou crie a instância e configure a instância para usar OAuth com o fluxo de concessão de código como mostrado em Configuração de OAuth e Criação de um ponto de extremidade para clientes para acessar a instância.
Crie um registro do aplicativo no ServiceNow e use-o para configurar o conector.
Faça o login em sua instância do ServiceNow, depois selecione Homepage.
Procure o OAuth, depois selecione Application Registry.
Selecione New e depois selecione Create an OAuth API endpoint for external clients.
Isto exibe uma página de configuração para o registro do aplicativo, como mostrado na imagem a seguir:
No ServiceNow, digite um nome para o registro do aplicativo do OAuth no campo Name.
No ServiceNow, em Redirect URL field, digite o seguinte:
https://apps-api.c1.<cloud_region_id>.<cloud>.app.snowflake.com/oauth/complete-secret
Onde:
cloud_region_id
Especifica o identificador da região da nuvem de sua conta Snowflake.
cloud
Especifica o identificador da plataforma de nuvem (por exemplo,
aws
,azure
ougcp
).
Se necessário, no ServiceNow, atualize os valores nos campos Refresh Token Lifespan e Access Token Lifespan.
Snowflake recomenda ajustar a vida útil do token de acesso para pelo menos 600 segundos.
Para a vida útil do token de atualização, especifique um valor que seja 7776000 (90 dias).
No ServiceNow, selecione Submit.
O registro do aplicativo do OAuth aparece na lista de registros do aplicativo.
No ServiceNow, selecione o registro do aplicativo que você acabou de criar.
Observe que o ServiceNow gerou valores para os campos Client ID e Client Secret. Você usa estes valores na próxima seção quando cria uma integração de segurança.
Como gerar o token de atualização do OAuth¶
Para gerar o token de atualização do OAuth:
Certifique-se de ter realizado as tarefas descritas em Configuração do OAuth.
Envie uma solicitação HTTP para o ponto de extremidade
/oauth_token.do
de sua instância do ServiceNow, como explicado no exemplo do REST OAuth na documentação do ServiceNow.Por exemplo, se você estiver usando curl para enviar a solicitação HTTP:
curl -d "grant_type=password" --data-urlencode "client_id=<client_id>" --data-urlencode "client_secret=<client_secret>" --data-urlencode "username=<username>" --data-urlencode "password=<password>" -X POST https://<instance_name>.service-now.com/oauth_token.do
Onde
instance_name
Especifica o nome de sua instância do ServiceNow.
client_id
eclient_secret
Especifique os valores obtidos ao configurar o ponto de extremidade do ServiceNow.
username
epassword
Especifique as credenciais para sua instância do ServiceNow.
Nota
O exemplo acima usa o sinalizador
data-urlencode
de linha de comando em curl para codificação do URL do segredo do cliente, nome de usuário e senha na solicitação HTTP enviada para o ServiceNow.Se você estiver usando uma ferramenta diferente para enviar a solicitação HTTP, certifique-se de que você faça a codificação URL destes valores na solicitação.
O corpo da resposta HTTP contém um objeto JSON. Obtenha o token de atualização do campo
refresh_token
neste objeto:{"access_token":"abcd1234","refresh_token":"cdef567","scope":"useraccount","token_type":"Bearer","expires_in":1799}
Criação de uma integração de segurança¶
Uma integração de segurança é um objeto Snowflake que fornece uma interface entre o Snowflake e um serviço de OAuth 2.0 de terceiros.
Use o comando CREATE SECURITY INTEGRATION para criar uma integração de segurança, como mostrado no exemplo a seguir:
CREATE SECURITY INTEGRATION <name>
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
OAUTH_CLIENT_ID = '<client_id>'
OAUTH_CLIENT_SECRET = '<client_secret>'
OAUTH_TOKEN_ENDPOINT = 'https://<my_instance>.service-now.com/oauth_token.do'
ENABLED = TRUE;
Onde:
name
Especifica o nome da integração de segurança.
client_id
Especifica o valor do campo Client ID que você obteve do ServiceNow na seção anterior.
client_secret
Especifica o valor do campo Client Secret que você obteve do ServiceNow na seção anterior.
my_instance
Especifica o nome de sua instância do ServiceNow. Esta é a primeira parte do nome do host de sua instância do ServiceNow. Por exemplo, se o URL para sua instância do ServiceNow for:
https://myinstance.service-now.comO nome de sua instância seria
myinstance
.
Criação de um objeto secreto¶
Crie o objeto secreto Snowflake que o Snowflake Connector for ServiceNow® usa para autenticação.
Snowflake recomenda o uso de uma função dedicada para gerenciar o objeto secreto, separada da função ACCOUNTADMIN (a função que você usa para instalar, configurar e executar o conector). Snowflake também recomenda o armazenamento do objeto secreto em um banco de dados e esquema dedicado. Observe que você pode escolher qualquer função para administrar o segredo, e pode escolher qualquer banco de dados e esquema para armazenar o segredo.
Para criar uma função personalizada para administrar o segredo, use o comando CREATE ROLE. Para obter mais informações sobre os privilégios que você pode conceder a uma função, consulte Privilégios de controle de acesso.
As próximas seções explicam como criar um objeto secreto que seja armazenado em um banco de dados e esquema separado e que seja gerenciado por uma função personalizada.
Criação de um esquema para os objetos secretos¶
Primeiro, crie um banco de dados e um esquema para armazenar o objeto secreto executando os comandos CREATE DATABASE e CREATE SCHEMA. Os nomes do esquema e do banco de dados devem ser identificadores de objeto válidos.
Por exemplo, para criar o banco de dados secretsdb
e o esquema apiauth
para o objeto secreto, execute os seguintes comandos:
USE ROLE accountadmin; CREATE DATABASE secretsdb; CREATE SCHEMA apiauth;
Criação de uma função personalizada para gerenciar o segredo¶
Em seguida, crie uma função personalizada para administrar o segredo (assumindo que você não queira usar uma função existente) e conceda à função os privilégios necessários para criar o segredo.
Usando a função USERADMIN do sistema, execute o comando CREATE ROLE para criar uma função personalizada para gerenciar o segredo. Por exemplo, para criar a função personalizada
secretadmin
para gerenciar o segredo, execute os seguintes comandos:USE ROLE useradmin; CREATE ROLE secretadmin;
Usando a função SECURITYADMIN do sistema, execute o comando GRANT <privilégios> TO ROLE para conceder os seguintes privilégios à função personalizada:
USAGE e CREATE SECRET no esquema que você criou para o segredo
USAGE na integração de segurança que você criou anteriormente
Por exemplo:
USE ROLE securityadmin; GRANT USAGE ON DATABASE secretsdb TO ROLE secretadmin; GRANT USAGE ON SCHEMA secretsdb.apiauth TO role secretadmin; GRANT CREATE SECRET ON SCHEMA secretsdb.apiauth TO role secretadmin; GRANT USAGE ON INTEGRATION servicenow_oauth TO role secretadmin;
Usando a função USERADMIN do sistema, execute o comando GRANT <privilégios> TO ROLE para conceder a função personalizada ao usuário que cria o segredo. Por exemplo, para conceder a função ao usuário
servicenow_secret_owner
, execute os seguintes comandos:USE ROLE useradmin; GRANT ROLE secretadmin TO user servicenow_secret_owner;
Criação de um segredo¶
Em seguida, crie um segredo para permitir que o Snowflake se autentique na instância do ServiceNow usando OAuth com o fluxo de concessão de código.
Nota
Se você planeja usar autenticação básica em vez de OAuth, consulte a nota abaixo em vez disso.
Para criar um objeto secreto, execute o comando CREATE SECRET com os seguintes parâmetros:
Defina
TYPE
comoOAUTH2
.Defina
OAUTH_REFRESH_TOKEN
como o token de atualização do OAuth que você recuperou em Como gerar o token de atualização do OAuth.Defina
OAUTH_REFRESH_TOKEN_EXPIRY_TIME
como o carimbo de data/hora da expiração do token de atualização no fuso horário UTC. Você pode calcular isto adicionando a vida útil do token do ServiceNow até a data em que o token foi emitido. Por padrão, o token expira em 100 dias.Defina
API_AUTHENTICATION
como o nome da integração de segurança que você criou em Criação de uma integração de segurança:Por exemplo, para criar um segredo chamado
service_now_creds_oauth_code
que usa a integração de segurança chamadaservicenow_oauth
, execute estes comandos:USE ROLE secretadmin; USE SCHEMA secretsdb.apiauth; CREATE SECRET servicenow_creds_oauth_code TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00' API_AUTHENTICATION = servicenow_oauth;
Para modificar as propriedades de um segredo existente (por exemplo, para atualizar o token de atualização do OAuth), use o comando ALTER SECRET.
Nota
Se você planeja usar autenticação básica (em vez de OAuth), execute o comando CREATE SECRET para criar um segredo com
TYPE
definido comoPASSWORD
. DefinaUSERNAME
ePASSWORD
como o nome de usuário e senha do usuário do ServiceNow que você pretende usar para autenticar na instância do ServiceNow. Por exemplo:USE ROLE secretadmin; USE SCHEMA secretsdb.apiauth; CREATE SECRET servicenow_creds_pw TYPE = PASSWORD USERNAME = 'jsmith1' PASSWORD = 'W3dr@fg*7B1c4j';
Se a autenticação multifator estiver habilitada para este usuário, você deve fornecer o token MFA junto com a senha, conforme descrito em REST API na documentação do ServiceNow.
Como criar um warehouse¶
Snowflake recomenda a criação de um warehouse dedicado ao conector. Um warehouse dedicado permite uma melhor gestão de custos e rastreamento de recursos. Para facilitar o rastreamento de recursos, você pode opcionalmente adicionar uma ou mais tags ao warehouse dedicado.
Nota
Para executar o Snowflake Connector for ServiceNow® sem um warehouse dedicado, passe em uma cadeia de caracteres vazia quando solicitado a fornecer um valor para o warehouse.
Para o warehouse do conector, a Snowflake recomenda o uso de um warehouse multicluster de grande porte.
Para criar um warehouse de grande porte chamado servicenow_conn_warehouse
, execute o seguinte comando:
USE ROLE accountadmin; CREATE WAREHOUSE servicenow_conn_warehouse WAREHOUSE_SIZE = LARGE;
Criação de um banco de dados e esquema para os dados do ServiceNow¶
Em seguida, crie um banco de dados e um esquema para os dados do ServiceNow. O Snowflake Connector for ServiceNow® faz a ingestão dos dados do ServiceNow no banco de dados e esquema.
Ao criar o banco de dados e o esquema, observe o seguinte:
Os nomes do esquema e do banco de dados devem ser identificadores de objeto válidos.
Para controlar o acesso aos dados ingeridos do ServiceNow no Snowflake, você pode conceder os privilégios no esquema às funções que devem ser permitidas para acessar os dados.
Para criar o banco de dados e o esquema, execute os comandos CREATE DATABASE e CREATE SCHEMA.
Por exemplo, para criar o banco de dados dest_db
e o esquema dest_schema
para os dados do ServiceNow, execute os seguintes comandos:
USE ROLE accountadmin; CREATE DATABASE dest_db; CREATE SCHEMA dest_schema;
Nota
Se você estiver reinstalando o conector, você pode reutilizar o esquema que criou para a instalação anterior do conector. Isto é possível se a instalação anterior do conector já tiver carregado dados e você quiser continuar carregando dados nas mesmas tabelas.
Para continuar carregando dados, não modifique o esquema antes de reinstalar o conector. Não altere as definições das tabelas criadas pela instalação anterior do conector.
Mais tarde, quando você chamar o procedimento armazenado ENABLE_TABLES, ele verificará que estes objetos necessários já existem e não tenta recriá-los.
Para determinar onde retomar a ingestão de dados, o conector examina a tabela de log de eventos:
Se o conector encontrar qualquer linha do tipo UPDATE ou DELETE na tabela de log de eventos, o conector usará o carimbo de data/hora da linha mais nova (da coluna
sys_updated_on
ousys_created_on
) como ponto de partida para a ingestão.Se não houver linhas do tipo UPDATE ou DELETE na tabela de eventos, o conector usará o valor mais antigo da coluna
event_date
na tabela de log de eventos.
Criação de uma integração de API para a comunicação com a instância do ServiceNow¶
Em seguida, crie uma integração de API para a comunicação com a instância do ServiceNow. Execute o comando CREATE API INTEGRATION com a seguinte sintaxe:
CREATE API INTEGRATION <integration_name> API_ALLOWED_PREFIXES = ('https://<servicenow_instance_name>.service-now.com') ALLOWED_AUTHENTICATION_SECRETS = (<secret_name>) ENABLED = TRUE
Onde:
integration_name
Especifica o nome da integração de API. O nome deve ser um identificador de objeto válido. O nome deve ser obrigatoriamente único entre as integrações de API em sua conta.
API_ALLOWED_PREFIXES = ('https://servicenow_instance_name.service-now.com')
Especifica o URL para sua instância do ServiceNow. Isto limita o uso desta integração de API à instância com o URL especificado.
ALLOWED_AUTHENTICATION_SECRETS = (secret_name)
Especifica a lista dos nomes dos segredos que são permitidos para uso no escopo da integração de API.
Defina isto como o nome do objeto secreto que você criou em Criação de um objeto secreto.
ENABLED = TRUE
Especifica se esta integração de API está habilitada ou desabilitada. Se a integração de API estiver desativada, qualquer função externa que conte com ela não funcionará.
TRUE
Permite que a integração funcione com base nos parâmetros especificados na definição da integração.
FALSE
Suspende a integração para manutenção. Qualquer integração entre o Snowflake e um serviço de terceiro não funciona.
Por exemplo, para criar a integração de API denominada servicenow_api_integration
para a instância do ServiceNow denominada myinstance
, execute o seguinte comando:
USE ROLE accountadmin; CREATE API INTEGRATION servicenow_api_integration API_ALLOWED_PREFIXES = ('https://myinstance.service-now.com') ALLOWED_AUTHENTICATION_SECRETS = (secretsdb.apiauth.servicenow_creds_pw) ENABLED = TRUE
Nota
Você não precisa definir nenhum dos outros parâmetros na instrução CREATE API INTEGRATION.
Configuração do registro do conector¶
O Snowflake Connector for ServiceNow® usa tabelas de eventos para armazenar logs de erros do conector. Para configurar uma tabela de eventos, siga o guia Configuração de uma tabela de eventos. Se a tabela de eventos não estiver configurada, as informações de log e eventos serão descartadas.
Criação de uma função personalizada para o conector¶
Em seguida, crie uma função personalizado para o conector, e conceda os privilégios necessários para executar o conector.
Esta função permite que o conector o faça o seguinte:
Crie e gerencie tarefas para ingerir os dados.
Use o warehouse dedicado.
Acesse o segredo e a integração de API a fim de conectar-se à instância do ServiceNow.
A função também é a proprietária das tabelas e exibições que contêm os dados do ServiceNow ingeridos pelo conector.
Para criar esta função e conceder os privilégios:
Usando a função USERADMIN do sistema, execute o comando CREATE ROLE para criar uma função personalizada para ser proprietária dos dados. Por exemplo, para criar a função personalizada
connector_resources_provider
para ser proprietária dos dados, execute os seguintes comandos:USE ROLE useradmin; CREATE ROLE connector_resources_provider;
Usando a função ACCOUNTADMIN, execute o comando GRANT <privilégios> para ROLE para conceder os seguintes privilégios à função personalizada:
EXECUTE TASK na conta
Uma das seguintes opções, mas não ambas:
EXECUTE MANAGED TASK
Conceda este privilégio se você tiver configurado o conector sem um warehouse dedicado.
USAGE no warehouse que você criou para o segredo
Conceda este privilégio se você estiver usando um warehouse dedicado para o conector.
USAGE no banco de dados que você criou para os dados do ServiceNow.
USAGE, CREATE TABLE e CREATE VIEW no esquema que você criou para os dados do ServiceNow
USAGE no segredo que você criou
Por exemplo, para conceder os seguintes privilégios à função chamada
connector_resources_provider
:EXECUTE TASK na conta
EXECUTE MANAGED TASK na conta
USAGE no warehouse
servicenow_conn_warehouse
USAGE no banco de dados
dest_db
USAGE, CREATE TABLE e CREATE VIEW no esquema
dest_db.dest_schema
USAGE na integração
servicenow_api_integration
USAGE no banco de dados
secretsdb
USAGE no esquema
secretsdb.apiauth
USAGE no segredo
secretsdb.apiauth.servicenow_creds_oauth_code secret
Execute os seguintes comandos:
USE ROLE accountadmin; GRANT EXECUTE TASK ON ACCOUNT TO ROLE connector_resources_provider; GRANT EXECUTE MANAGED TASK ON ACCOUNT TO ROLE connector_resources_provider; GRANT USAGE ON WAREHOUSE servicenow_conn_warehouse TO ROLE connector_resources_provider; GRANT USAGE ON DATABASE dest_db TO ROLE connector_resources_provider; GRANT USAGE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT CREATE TABLE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT CREATE VIEW ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT USAGE ON INTEGRATION servicenow_api_integration TO ROLE connector_resources_provider; GRANT USAGE ON DATABASE secretsdb TO ROLE connector_resources_provider; GRANT USAGE ON SCHEMA secretsdb.apiauth TO ROLE connector_resources_provider; GRANT USAGE ON SECRET secretsdb.apiauth.servicenow_creds_oauth_code TO ROLE connector_resources_provider;
Depois de instalar o Snowflake Connector for ServiceNow®, você concede esta função ao conector.
Embora seja recomendado criar funções separadas e mais refinadas para acessar dados ingeridos após o início da ingestão, você pode usar essa função para consultar dados ingeridos e estendê-los com privilégios adicionais. Por outro lado, a revogação de privilégios de função para objetos exigidos pelo conector ou alterações na propriedade de funções de tabelas e exibições com dados ingeridos não é permitida e interromperá o conector.
Instalação do Snowflake Connector for ServiceNow®¶
Para instalar o conector:
Crie um banco de dados para a instância do conector usando o Snowsight. Para obter mais informações sobre como criar o banco de dados, consulte Instalação e configuração do conector com Snowsight.
Navegue até a planilha SQL.
Entrar como um usuário com a função ACCOUNTADMIN. Por exemplo:
USE ROLE ACCOUNTADMIN;
Conceda a função personalizada para o conector (a função que você criou anteriormente) ao banco de dados que serve como uma instância do conector.
Por exemplo, para conceder a função chamada
connector_resources_provider
ao banco de dadosmy_connector_servicenow
, execute o seguinte comando:GRANT ROLE connector_resources_provider TO DATABASE my_connector_servicenow;
Defina a propriedade
FIREWALL_CONFIGURATION
do banco de dados no banco de dados instalado. Inclua o prefixo do URL para sua instância do ServiceNow.Por exemplo, se seu banco de dados for nomeado
my_connector_servicenow
e o nome da instância do ServiceNow formy-instance
, execute o seguinte comando:ALTER DATABASE my_connector_servicenow SET FIREWALL_CONFIGURATION = ('https://my-instance.service-now.com')
Execute o comando USE DATABASE para usar o banco de dados para o conector. Por exemplo:
USE DATABASE my_connector_servicenow;
Configure a conexão para a instância do ServiceNow usando o comando CALL para chamar o procedimento armazenado chamado
CONFIGURE_CONNECTION
:CALL CONFIGURE_CONNECTION({ 'serviceNowUrl': '<servicenow_base_url>', 'secret': '<secret_name>', 'apiIntegrationName': '<api_integration_name>' })
Onde:
servicenow_base_url
Especifica o URL da instância do ServiceNow que o conector deve usar. O URL deve estar no seguinte formato:
https://<servicenow_instance_name>.service-now.com
secret_name
Especifica o nome totalmente qualificado do objeto secreto contendo as credenciais para autenticação no ServiceNow (o segredo que você criou anteriormente).
Você deve especificar o nome totalmente qualificado do objeto secreto no seguinte formato:
<database_name>.<schema_name>.<secret_name>
Os nomes do banco de dados, do esquema e do segredo devem ser identificadores de objeto válidos.
api_integration_name
Especifica o nome da integração da API como ServiceNow (a integração da API que você criou anteriormente).
O nome da integração deve ser um identificador de objeto válido.
Por exemplo, para configurar a conexão a uma instância do ServiceNow que:
Tenha o URL
https://myinstance.service-now.com
.Utilize o segredo armazenado em
secretsdb.apiauth.servicenow_creds_oauth_code
.Utilize a integração de API denominada
servicenow_api_integration
.
Execute o seguinte comando:
CALL CONFIGURE_CONNECTION({ 'serviceNowUrl': 'https://myinstance.service-now.com', 'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE', 'apiIntegrationName': 'SERVICENOW_API_INTEGRATION' });
Se a conexão foi configurada com sucesso, este procedimento armazenado imprimirá a seguinte mensagem:
Connection configured successfully
Nota
Depois que o conector estiver configurado, não será possível alterar o nome do segredo passado e da integração de API. O conector faz referência a eles por nome. Como resultado, uma tentativa de descartar ou alterar o nome desses objetos quebrará o conector e impedirá seu funcionamento.
Inicie o conector como descrito em Início do Snowflake Connector for ServiceNow®.
O banco de dados recém-criado é uma instância do conector e contém o seguinte:
Procedimentos armazenados que você usa para configurar o conector. Consulte Configuração da ingestão de dados usando instruções SQL para obter mais informações.
Exibições contendo as mensagens registradas e estatísticas para o conector. Consulte Sobre o monitoramento do conector para obter mais informações.
Como iniciar e parar o Snowflake Connector for ServiceNow®¶
As seções a seguir descrevem como iniciar, parar e retomar o conector.
Início do Snowflake Connector for ServiceNow®¶
Inicie o conector chamando o procedimento chamado START_CONNECTOR
. Os argumentos para este procedimento armazenado estão descritos abaixo:
CALL START_CONNECTOR(
'<warehouse_name>',
'<dest_db_schema>',
'<name_of_journal_table>',
'<connector_role>',
);
Onde:
warehouse_name
Especifica o nome do warehouse para o conector.
O nome do warehouse deve ser um identificador de objeto válido.
Para configurar o conector para funcionar sem utilizar um warehouse dedicado, passe em uma cadeia de caracteres vazia para o nome do warehouse.
dest_db_schema
Especifica o nome totalmente qualificado do esquema para os dados do ServiceNow no Snowflake (o esquema que você criou anteriormente).
Você deve especificar o nome totalmente qualificado do esquema no seguinte formato:
<database_name>.<schema_name>Os nomes do banco de dados e do esquema devem ser identificadores de objeto válidos.
name_of_journal_table
Especifica o nome da tabela que contém informações sobre os registros excluídos. Para obter mais informações, consulte Preparação de sua instância do ServiceNow®.
Observe que as informações sobre os registros excluídos estão disponíveis apenas para as tabelas que você configura para propagar os registros excluídos.
Para evitar a propagação de registros apagados, especifique uma cadeia de caracteres vazia para este argumento.
connector_role
Especifica o nome da função personalizada para a função do conector que você criou anteriormente.
O nome da função deve ser um identificador de objeto válido.
Por exemplo, para iniciar o conector chamado
my_connector_servicenow
que usa:
o warehouse chamado
servicenow_conn_warehouse
o esquema chamado
dest_db.dest_schema
para os dados do ServiceNow no Snowflakea tabela ServiceNow chamada
sys_audit_delete
para rastrear registros apagadosa função personalizada chamada
connector_resources_provider
Execute os seguintes comandos:
CALL START_CONNECTOR( 'SERVICENOW_CONN_WAREHOUSE', 'DEST_DB.DEST_SCHEMA', 'sys_audit_delete', 'CONNECTOR_RESOURCES_PROVIDER', );
Se o conector foi iniciado com sucesso, este procedimento armazenado exibe a seguinte mensagem:
Successfully started the |SNC|. The connector can be configured now.
Nota
Depois que o conector for iniciado, não será possível renomear o warehouse passado, o banco de dados de destino, o esquema de destino e a função personalizada do conector. O conector faz referência a eles por nome. Como resultado, uma tentativa de descartar ou alterar o nome desses objetos quebrará o conector e impedirá seu funcionamento.
Em vez de renomear o warehouse, use o procedimento armazenado CONFIGURE_WAREHOUSE para alterar o warehouse usado pelo conector.
Parada do Snowflake Connector for ServiceNow®¶
Para parar todas as tarefas iniciadas pelo conector, chame o procedimento armazenado STOP_CONNECTOR
:
CALL STOP_CONNECTOR();
Nota
O procedimento armazenado STOP_CONNECTOR
não está disponível até que você retome o conector, chamando o procedimento armazenado START_CONNECTOR
.
Parar o conector desativa a interação com ele (por exemplo, habilitando/desabilitando tabelas ou configurando o conector) até que o conector seja retomado chamando o procedimento armazenado RESUME_CONNECTOR
.
A interrupção do conector também interrompe qualquer geração de custos para o conector.
Retomada do Snowflake Connector for ServiceNow®¶
Para retomar todas as tarefas paradas pelo procedimento armazenado STOP_CONNECTOR
, chame o procedimento armazenado RESUME_CONNECTOR
:
CALL RESUME_CONNECTOR();
Nota
O procedimento armazenado RESUME_CONNECTOR
não está disponível até que você retome o conector, chamando o procedimento armazenado START_CONNECTOR
.
Delegação de privilégios para configuração e monitoramento do Snowflake Connector for ServiceNow®¶
Após instalar o conector, somente a função ACCOUNTADMIN poderá executar os procedimentos de configuração e acessar as exibições usadas para monitorar o conector.
Nota
A função personalizada que você criou em Criação de uma função personalizada para o conector não tem os privilégios de executar os procedimentos de configuração ou acessar as exibições de monitoramento.
Para delegar estes privilégios a outra função, execute o comando GRANT IMPORTED PRIVILEGES ON DATABASE ... TO ROLE ...
. Este comando usa a seguinte sintaxe:
GRANT IMPORTED PRIVILEGES ON DATABASE <connector_name> TO ROLE <connector_config_role>;
Onde:
connector_name
Especifica o nome do banco de dados que serve como instância do conector.
connector_config_role
Especifica o nome da função que deve receber os privilégios para configurar e monitorar o conector.
Nota
Isto não concede à função o privilégio de descartar o banco de dados connector_name
ou acessar o esquema que contém os dados do ServiceNow no Snowflake.
Por exemplo, para criar uma função personalizada chamada connector_config_role
e conceder a essa função os privilégios de configurar e monitorar a instância do conector chamada my_connector_servicenow
, execute o seguinte comando:
USE ROLE useradmin;
CREATE ROLE connector_config_role;
USE ROLE securityadmin;
GRANT IMPORTED PRIVILEGES ON DATABASE my_connector_servicenow TO ROLE connector_config_role;
Mudança do warehouse utilizado pelo conector (opcional)¶
Se você quiser mudar o warehouse usado pelo conector ou adicionar um warehouse dedicado, faça isso chamando:
CALL CONFIGURE_WAREHOUSE('<warehouse_name>');
Onde:
warehouse_name
Especifica o nome do warehouse que o conector deve usar.
Para configurar o conector para funcionar sem utilizar um warehouse dedicado, passe em uma cadeia de caracteres vazia para o nome do warehouse.
Nota
Antes de configurar o conector para usar um warehouse diferente, verifique se a função personalizada usada pelo conector tem o privilégio USAGE para o novo warehouse.
Próximos passos¶
Após instalar e configurar o conector, execute as etapas descritas em Configuração da ingestão de dados para seus dados do ServiceNow®.