Carregar dados do ServiceNow no BigQuery

É possível carregar dados do ServiceNow para o BigQuery usando o conector do serviço de transferência de dados do BigQuery para o ServiceNow. Com o serviço de transferência de dados do BigQuery, é possível programar jobs de transferência recorrentes que adicionam seus dados mais recentes do ServiceNow ao BigQuery.

Limitações

As transferências de dados do Salesforce estão sujeitas às seguintes limitações:

  • O conector do ServiceNow é compatível apenas com a API ServiceNow Table.
  • Não recomendamos executar transferências de dados simultâneas na mesma instância do ServiceNow. Isso pode causar atrasos ou falhas devido à carga na instância do ServiceNow.
    • Recomendamos que você programe os horários de início da transferência com antecedência para evitar execuções de transferência sobrepostas.
  • Para melhorar o desempenho da transferência de dados, recomendamos limitar o número de recursos a 20 itens por transferência.
  • O intervalo mínimo entre as transferências de dados recorrentes é de 15 minutos. O intervalo padrão para uma transferência recorrente é 24 horas.
  • Uma única configuração de transferência só pode oferecer suporte a uma execução de transferência de dados por vez. Se uma segunda transferência de dados for programada para ser executada antes da conclusão da primeira, apenas a primeira transferência de dados será concluída. Todas as outras transferências de dados que se sobrepõem à primeira serão ignoradas.
    • Para evitar transferências ignoradas em uma única configuração, recomendamos aumentar a duração entre grandes transferências de dados configurando a Frequência de repetição.
  • Para usar um anexo de rede com essa transferência de dados, primeiro crie um anexo de rede definindo um endereço IP estático.

Limitações da transferência incremental

As transferências incrementais do ServiceNow estão sujeitas às seguintes limitações:

  • Só é possível escolher DATETIME colunas como marca d'água.
  • A ingestão incremental só é compatível com recursos que têm colunas de marca d'água válidas.
  • Os valores em uma coluna de marca-d'água precisam aumentar monotonicamente.
  • As transferências incrementais não podem sincronizar operações de exclusão na tabela de origem.
  • Uma única configuração de transferência só pode oferecer suporte à ingestão incremental ou completa.
  • Não é possível atualizar objetos na lista asset após a primeira execução de ingestão incremental.
  • Não é possível mudar o modo de gravação em uma configuração de transferência após a primeira execução de ingestão incremental.
  • Não é possível mudar a coluna de marca d'água ou a chave primária após a primeira execução de ingestão incremental.
  • A tabela de destino do BigQuery é agrupada usando a chave primária fornecida e está sujeita às limitações de tabelas em cluster.
  • Quando você atualiza uma configuração de transferência para o modo de ingestão incremental pela primeira vez, a primeira transferência de dados após essa atualização transfere todos os dados disponíveis da sua fonte. As transferências incrementais de dados subsequentes vão transferir apenas as linhas novas e atualizadas da sua fonte de dados.

Opções de ingestão de dados

Estas seções descrevem as opções de ingestão de dados para configurar uma transferência de dados do ServiceNow.

Transferências completas ou incrementais

Você especifica como os dados são carregados no BigQuery selecionando a preferência de gravação Completa ou Incremental na configuração da transferência ao configurar uma transferência do ServiceNow. As transferências incrementais são compatíveis com o pré-lançamento.

Você pode configurar uma transferência de dados completa para transferir todos os dados dos seus conjuntos de dados do ServiceNow com cada transferência.

Como alternativa, configure uma transferência de dados incremental (prévia) para transferir apenas os dados que foram alterados desde a última transferência, em vez de carregar todo o conjunto de dados a cada transferência. Se você selecionar Incremental para a transferência de dados, especifique os modos de gravação Adicionar ou Upsert para definir como os dados são gravados no BigQuery durante uma transferência incremental de dados. As seções a seguir descrevem os modos de gravação disponíveis.

Modo de gravação de upsert

O modo de gravação upsert atualiza uma linha ou insere uma nova linha na tabela de destino verificando uma chave primária. Você pode especificar uma chave primária para permitir que o conector do ServiceNow determine quais mudanças são necessárias para manter a tabela de destino atualizada com a tabela de origem. Se a chave primária especificada estiver presente na tabela do BigQuery de destino durante uma transferência de dados, o conector do ServiceNow vai atualizar essa linha com novos dados da tabela de origem. Se uma chave primária não estiver presente durante uma transferência de dados, o conector do ServiceNow vai inserir uma nova linha.

Ao selecionar o modo de upsert, você precisa escolher uma coluna de marca d'água e uma chave primária:

  • Uma coluna de marca-d'água é necessária para que o conector do ServiceNow rastreie as mudanças na tabela de origem.

    Selecione uma coluna de marca d'água que seja atualizada sempre que uma linha for modificada. Recomendamos colunas semelhantes à UPDATED_AT ou LAST_MODIFIED.

  • A chave primária pode ser uma ou mais colunas na sua tabela necessárias para que o conector do ServiceNow determine se precisa inserir ou atualizar uma linha.

    Selecione colunas que contenham valores não nulos e exclusivos em todas as linhas da tabela. Recomendamos colunas que incluem identificadores gerados pelo sistema, códigos de referência exclusivos (por exemplo, IDs de incremento automático) ou IDs de sequência imutáveis baseados em tempo.

    Para evitar possíveis perda de dados ou corrupção de dados, as colunas de chave primária selecionadas precisam ter valores exclusivos. Se você tiver dúvidas sobre a exclusividade da coluna de chave primária escolhida, recomendamos usar a ingestão completa.

Comportamento de ingestão incremental

Quando você faz mudanças no esquema da tabela na sua fonte de dados, as transferências incrementais de dados dessas tabelas são refletidas no BigQuery das seguintes maneiras:

Mudanças na fonte de dados Comportamento de ingestão incremental
Adicionar uma nova coluna Uma nova coluna é adicionada à tabela do BigQuery de destino. Todos os registros anteriores dessa coluna terão valores nulos.
excluir uma coluna. A coluna excluída permanece na tabela de destino do BigQuery. Novas entradas nessa coluna excluída são preenchidas com valores nulos.
Como mudar o tipo de dados em uma coluna O conector só é compatível com conversões de tipos de dados que são compatíveis com a instrução DDL ALTER COLUMN. Qualquer outra conversão de tipo de dados causa falha na transferência.

Se você tiver problemas, recomendamos criar uma nova configuração de transferência.

Como renomear uma coluna A coluna original permanece na tabela de destino do BigQuery no estado em que se encontra, enquanto uma nova coluna é adicionada à tabela de destino com o nome atualizado.

Antes de começar

Antes de criar uma transferência de dados do ServiceNow, faça o seguinte para o ServiceNow e o BigQuery.

Pré-requisitos do ServiceNow

  • Para acessar as APIs ServiceNow, crie credenciais do OAuth.
  • Todos os aplicativos do ServiceNow a seguir precisam estar ativados na instância do serviço:

  • Para iniciar uma transferência do ServiceNow, você precisa ter as credenciais corretas para se conectar à instância do ServiceNow.

    • Para receber suas credenciais de uma instância de desenvolvedor do ServiceNow, faça login no portal de desenvolvedores do ServiceNow. Use o nome de usuário e a senha listados na página Gerenciar senha da instância. Para informações sobre como redefinir sua senha do ServiceNow, consulte Redefinição de senha
    • Para receber suas credenciais de uma instância de produção ou subprodução do ServiceNow, entre em contato com o administrador do cliente do ServiceNow e peça o nome de usuário e a senha.

Pré-requisitos do BigQuery

Papéis obrigatórios do BigQuery

Para receber as permissões necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery, peça ao administrador para conceder a você o papel do IAM de Administrador do BigQuery (roles/bigquery.admin) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery:

  • Permissões do serviço de transferência de dados do BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Permissões do BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações, consulte Conceder acesso ao bigquery.admin.

Configurar uma transferência de dados do ServiceNow

Adicione dados do ServiceNow ao BigQuery configurando uma configuração de transferência usando uma das seguintes opções:

Console

  1. Acesse a página "Transferências de dados" no console Google Cloud .

    Acesse Transferências de dados

  2. Clique em Criar transferência.

  3. Na seção Tipo de origem, em Origem, selecione ServiceNow.

  4. Na seção Detalhes da fonte de dados, faça o seguinte:

    • (Opcional) Em Anexo de rede, selecione um anexo de rede no menu suspenso ou clique em Criar anexo de rede.
      • Selecione um anexo de rede para configurar essa transferência de dados e usar um endereço IP único e consistente. Use essa opção se a instância do ServiceNow estiver configurada para aceitar apenas tráfego de endereços IP específicos.
      • Para mais informações sobre como criar um anexo de rede, consulte Configurar conexões com anexos de rede.
      • Para mais informações sobre como definir endereços IP no ServiceNow, consulte Definir endereços IP internos permitidos do ServiceNow.
    • Em ID da instância, digite o ID da instância do ServiceNow. É possível ter acesso a ele no URL da ServiceNow, por exemplo, https://INSTANCE_ID.service-now.com.
    • (Opcional) Em Tipo de nuvem do ServiceNow, selecione o tipo de nuvem da sua conta do ServiceNow:
      • Selecione Comercial se o URL da sua instância do ServiceNow seguir o padrão https://INSTANCE_ID.service-now.com. Esse é o valor padrão.
      • Selecione Government Community Cloud (GCC) se o URL da sua instância do ServiceNow seguir o padrão https://INSTANCE_ID.servicenowservices.com.
    • Em Nome de usuário, digite o nome de usuário da ServiceNow que será usado na conexão.
    • Em Senha, digite a senha do ServiceNow.
    • Em ID do cliente, digite o ID que aparece nas suas credenciais do OAuth. Para gerar credenciais, consulte Criar credenciais do OAuth.
    • Em Chave secreta do cliente, insira a chave das suas credenciais do OAuth.
    • Em Ativar mapeamento legado, selecione true (padrão) para usar o mapeamento legado do tipo de dados. Selecione false para usar o mapeamento de tipo de dados atualizado. Para mais informações sobre as atualizações de mapeamento de tipo de dados, consulte 16 de março de 2027.
    • Em Tipo de ingestão, selecione Completa ou Incremental.
    • Em Tabelas do ServiceNow para transferência, clique em Procurar:
      • Selecione os objetos a serem transferidos para o conjunto de dados de destino do BigQuery. Nesse campo, também é possível inserir manualmente qualquer objeto para incluir na transferência de dados.
      • Se você tiver selecionado Upsert como modo de gravação incremental, selecione uma coluna como marca d'água e uma ou mais colunas como chave primária.
    • Em Tipo de valor, escolha uma destas opções:
      • Para transferir os valores armazenados no banco de dados, escolha Real.
      • Para transferir os valores de exibição das colunas, selecione Exibição.
  5. Na seção Configurações de destino, em Conjunto de dados, selecione o conjunto de dados que você criou para armazenar seus dados.

  6. No campo Nome de exibição da seção Nome de configuração da transferência, insira um nome para a transferência de dados.

  7. Na seção Opções de programação, realize estas ações:

    • Na lista Frequência de repetição, selecione uma opção para especificar com que frequência essa transferência de dados é executada. Para especificar uma frequência de repetição personalizada, selecione Personalizada. Se você selecionar On demand, a transferência de dados vai ser executada quando você acioná-la manualmente.
    • Se aplicável, selecione Começar agora ou Começar no horário definido e escolha uma data de início e hora de execução.
  8. Opcional: na seção Opções de notificação, faça o seguinte:

    • Para ativar as notificações por e-mail, clique no botão que ativa as Notificações por e-mail. Quando essa opção está ativada, o administrador da transferência recebe uma notificação por e-mail quando uma execução da transferência falha.
    • Para ativar as notificações de execução de transferência do Pub/Sub para essa transferência de dados, clique no botão de alternância Notificações do Pub/Sub. Selecione o nome do tópico ou clique em Criar tópico.
  9. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da transferência --transfer_config: .

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Substitua:

  • PROJECT_ID (opcional): o ID do projeto do Google Cloud . Se um ID de projeto não for especificado, o projeto padrão será usado.
  • DATA_SOURCE: a fonte de dados (por exemplo, servicenow).
  • DISPLAY_NAME: o nome de exibição da configuração da transferência. O nome da transferência de dados pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.
  • DATASET: o conjunto de dados de destino na configuração da transferência.
  • PARAMETERS é o parâmetro da configuração de transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Veja a seguir os parâmetros de uma transferência do ServiceNow:

    Parâmetro ServiceNow Obrigatório ou opcional Descrição
    connector.networkAttachment Opcional Nome do anexo de rede a ser usado para garantir a conectividade com a instância do ServiceNow.
    connector.instanceId Obrigatório ID da instância do ServiceNow
    connector.authentication.username Obrigatório Nome de usuário da instância do ServiceNow do usuário.
    connector.authentication.password Obrigatório Senha da instância do ServiceNow do usuário.
    connector.authentication.oauth.clientId Obrigatório ID do cliente para autenticação OAuth com a instância do ServiceNow.
    connector.authentication.oauth.clientSecret Obrigatório Chave secreta do cliente para autenticação OAuth com a instância do ServiceNow.
    connector.instanceCloudType Opcional Especifique o tipo de nuvem da sua conta do ServiceNow. Os valores aceitos são:
    • COMMERCIAL_CLOUD, se o URL da sua instância do ServiceNow seguir o padrão https://INSTANCE_ID.service-now.com
    • GOVERNMENT_COMMUNITY_CLOUD se o URL da sua instância do ServiceNow seguir o padrão https://INSTANCE_ID.servicenowservices.com
    ingestionType Opcional Define o método de transferência de dados do ServiceNow de origem para o destino, determinando se uma recarga completa do conjunto de dados ou uma atualização incremental eficiente será realizada.
    writeMode Opcional Se estiver usando a ingestão incremental, determina a estratégia de sincronização para ela. Esse campo é obrigatório para transferências incrementais. O valor compatível é WRITE_MODE_UPSERT.
    assets Obrigatório Lista dos nomes das tabelas do ServiceNow que serão transferidas do ServiceNow como parte da transferência.
    watermarkColumns Opcional Se você estiver usando a ingestão incremental, o campo da tabela de origem (geralmente data/hora) usado para rastrear o último ponto de sincronização bem-sucedido, permitindo que o conector consulte e transfira com eficiência apenas os registros criados ou modificados desde esse horário específico. Esse campo é obrigatório para transferências incrementais.
    primaryKeys Opcional Se você estiver usando a ingestão incremental, a coluna ou combinação exclusiva de colunas usadas para identificar cada linha na tabela de origem. Esse campo é obrigatório para transferências incrementais.
    valueType Opcional Controla como tipos de dados específicos do ServiceNow são mapeados para tipos de dados do BigQuery.
    connector.legacyMapping Obrigatório Defina como true (padrão) para usar o mapeamento legado do tipo de dados. Defina como false para usar o mapeamento de tipo de dados atualizado. Se você estiver fazendo uma transferência incremental, esse valor precisará ser false. Para mais informações sobre as atualizações de mapeamento de tipo de dados, consulte 16 de março de 2027.

    Ao especificar vários recursos durante uma transferência incremental, os valores dos campos watermarkColumns e primaryKeys correspondem à posição dos valores no campo assets. Mantenha a ordem das tabelas e das respectivas colunas de forma consistente em todas as listas de configuração relacionadas.

    Por exemplo, o comando a seguir cria uma transferência de dados do ServiceNow no projeto padrão com todos os parâmetros necessários:

      bq mk
        --transfer_config
        --target_dataset=mydataset
        --data_source=servicenow
        --display_name='My Transfer'
        --params='{"connector.authentication.oauth.clientId": "1234567890",
            "connector.authentication.oauth.clientSecret":"ABC12345",
            "connector.authentication.username":"user1",
            "connector.authentication.password":"abcdef1234",
            "connector.instanceId":"dev-instance",
            "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1"}'
    

    O comando a seguir cria uma transferência de dados incremental do ServiceNow no projeto padrão e usa o modo de gravação UPSERT.

      bq mk
          --transfer_config
          --target_dataset=mydataset
          --data_source=servicenow
          --display_name='My Transfer'
          --params='{"assets": ["incident", "change_request"],
              "connector.authentication.oauth.clientId": "1234567890",
              "connector.authentication.oauth.clientSecret":"ABC12345",
              "connector.authentication.username":"user1",
              "connector.authentication.password":"abcdef1234",
              "connector.instanceId":"dev-instance",
              "ingestionType":"incremental",
              "writeMode":"WRITE_MODE_UPSERT",
              "watermarkColumns":["sys_updated_on","sys_updated_on"],
              "primaryKeys":[["sys_id"], ["sys_id"]]}'
    

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Quando você salva a configuração de transferência, o conector do ServiceNow aciona automaticamente uma execução de transferência de acordo com a opção de programação. A cada execução de transferência, o conector do ServiceNow transfere todos os dados disponíveis do ServiceNow para o BigQuery.

Para executar manualmente uma transferência de dados fora da sua programação regular, inicie uma execução de preenchimento.

Mapeamento de tipo de dados

A tabela a seguir mostra como os tipos de dados são mapeados em uma transferência de dados do ServiceNow:

Tipo de dados do ServiceNow Tipo de dados do BigQuery Tipo de dados do BigQuery atualizado
decimal FLOAT64
integer INTEGER
boolean BOOLEAN
glide_date DATE
glide_date_time DATETIME
glide_list STRING ARRAY
glide_time INT64
reference STRING
currency STRING
sys_class_name STRING
domain_id STRING
domain_path STRING
guid STRING
translated_html STRING
journal STRING
string STRING
list STRING ARRAY

Resolver problemas com a transferência

As seções a seguir detalham problemas comuns ao configurar uma transferência de dados do ServiceNow.

Para mais informações, consulte Resolver problemas nas configurações de transferência.

A transferência falha devido à ativação do ServiceNow

Um problema ocorre e causa falha nas transferências de dados quando os aplicativos de aquisição, catálogo de produtos ou gerenciamento de contratos não estão ativados no ServiceNow. Para corrigir isso, ative os três aplicativos:

O problema ocorre durante a execução da transferência

Ocorre um problema fazendo com que a execução da transferência não seja criada conforme o esperado. Para resolver o problema, faça o seguinte:

  • Verifique se as credenciais da conta do ServiceNow, como Nome de usuário, Senha, ID do cliente e Chave secreta do cliente , são válidos.
  • Verifique se o ID da instância é válido para sua instância do ServiceNow.

Outros erros

Para informações sobre outros erros que ocorreram durante uma transferência de dados da ServiceNow, consulte Problemas de transferência da ServiceNow.

Preços

Para informações sobre preços de transferências do ServiceNow, consulte Preços do serviço de transferência de dados.

A seguir