Pular para o conteúdo principal

Ingerir dados do ServiceNow

Aprenda como criar um pipeline de ingestão do ServiceNow usando Databricks LakeFlow Connect.

Requisitos

Para criar um pipeline de ingestão, você deve primeiro atender aos seguintes requisitos:

  • Seu workspace deve estar habilitado para o Unity Catalog.

  • O compute sem servidor deve estar habilitado para o seu workspace. Consulte os requisitos do compute sem servidor.

  • Se você planeja criar uma nova conexão: você deve ter privilégios CREATE CONNECTION na metastore.

    Se o conector oferecer suporte à criação pipeline baseada em interface de usuário, um administrador poderá criar a conexão e o pipeline ao mesmo tempo, concluindo os passos nesta página. No entanto, se os usuários que criam o pipeline usarem a criação pipeline baseada em API ou não forem usuários administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Veja Conectar às fontes de ingestão de gerenciar.

  • Se você planeja usar uma conexão existente: você deve ter privilégios USE CONNECTION ou ALL PRIVILEGES no objeto de conexão.

  • Você deve ter privilégios USE CATALOG no catálogo de destino.

  • Você deve ter privilégios USE SCHEMA e CREATE TABLE em um esquema existente ou privilégios CREATE SCHEMA no catálogo de destino.

Para importar dados do ServiceNow, primeiro você precisa concluir os passos descritos em Configurar o ServiceNow para importação de dados do Databricks.

Crie um pipeline de ingestão.

Cada tabela ingerida é gravada em uma tabela de transmissão.

info

Beta

Você pode filtrar linhas durante a ingestão para melhorar o desempenho e reduzir a duplicação de dados. Consulte Selecionar linhas para ingestão.

Interface do usuário do Databricks

  1. Na barra lateral do site Databricks workspace, clique em ingestão de dados .
  2. Na página Adicionar dados , em Conectores do Databricks , clique em ServiceNow .
  3. Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais de acesso ao ServiceNow. Se você tiver o privilégio CREATE CONNECTION no metastore, poderá clicar. Ícone de mais (+). Crie uma conexão para estabelecer uma nova conexão com os detalhes de autenticação em Configurar a ingestão do ServiceNow para Databricks.
  4. Clique em Avançar .
  5. Na página de configuração de ingestão , insira um nome exclusivo para o pipeline.
  6. Selecione um catálogo e um esquema para gravar logs de eventos. Se você tiver privilégios USE CATALOG e CREATE SCHEMA no catálogo, poderá clicar. Ícone de mais (+). Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
  7. Clique em Create pipeline (Criar pipeline) e continue .
  8. Na página Origem , selecione as tabelas que deseja importar. Se você selecionar Todas as tabelas , o conector gravará todas as tabelas existentes e futuras do esquema de origem no esquema de destino. Existe um limite máximo de 250 tabelas por pipeline.
  9. Clique em Salvar e continuar .
  10. Na página Destino , selecione um catálogo e um esquema para carregar os dados. Se você tiver privilégios USE CATALOG e CREATE SCHEMA no catálogo, poderá clicar. Ícone de mais (+). Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
  11. Clique em Salvar e continuar .
  12. (Opcional) Na página de programação e notificações , clique em Ícone de mais (+). Criar programar . Defina a frequência de refresh das tabelas de destino.
  13. (Opcional) Clique Ícone de mais (+). Adicione uma notificação para configurar notificações email para operações pipeline bem-sucedidas ou com falha e, em seguida, clique em Salvar e execute pipeline .

Databricks Asset Bundles

Use Databricks ativos Bundles para gerenciar o pipeline do ServiceNow como código. Os pacotes podem conter definições YAML de Job e tarefa, são gerenciados usando a CLI Databricks e podem ser compartilhados e executados em diferentes espaços de trabalho de destino (como desenvolvimento, teste e produção). Para mais informações, consulte O que são pacotes Databricks ativos?.

  1. Crie um novo pacote usando a CLI do Databricks:

    Bash
    databricks bundle init
  2. Adicione dois novos arquivos de recursos ao pacote:

  3. Implante o pipeline usando a CLI Databricks :

    Bash
    databricks bundle deploy

Notebook Databricks

  1. Importe o seguinte Notebook para o seu workspace Databricks :
Abrir notebook em uma nova aba
  1. Deixe a célula um como está.

  2. Modifique a célula dois ou três com os detalhes da configuração do seu pipeline. Consulte as propriedades de configuração do pipeline e os exemplos.

  3. Clique em Executar tudo .

Propriedades de configuração do pipeline

Aplica-se a : Sim, marcado como certo Pacotes Databricks Ativo Sim, marcado como certo Notebook Databricks

Defina as seguintes propriedades no arquivo de definição de pipeline do seu pacote:

Valor

Descrição

name

Um nome único para o pipeline.

connection_name

O nome da conexão que armazena os detalhes de autenticação do ServiceNow.

source_schema

O nome do esquema que contém os dados que você deseja importar.

source_table

O nome da tabela que você deseja importar.

destination_catalog

O nome do catálogo no qual você deseja escrever no Databricks.

destination_schema

O nome do esquema no qual você deseja gravar no Databricks.

destination_table (opcional)

Um nome único para a tabela na qual você deseja gravar dados no Databricks. Caso você não forneça essa informação, o conector usará automaticamente o nome da tabela de origem.

Configurações avançadas

Para configurações avançadas pipeline , consulte Padrões comuns para gerenciar pipeline de ingestão.

Exemplos

Aplica-se a : Sim, marcado como certo Pacotes Databricks Ativo Sim, marcado como certo Notebook Databricks

Utilize esses exemplos para configurar seu pipeline.

Ingerir uma única tabela de origem

O seguinte arquivo resources/servicenow_pipeline.yml ingere uma única tabela de origem:

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

# The main pipeline for servicenow_dab
resources:
pipelines:
pipeline_servicenow:
name: servicenow_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <servicenow-connection>
objects:
# An array of objects to ingest from ServiceNow. This example ingests the incident table.
- table:
source_schema: default
source_table: incident
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

Notebook Databricks

A seguir, um exemplo de especificação de pipeline que ingere uma única tabela de origem:

Python
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<servicenow-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "incident",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
"""
create_pipeline(pipeline_spec)

Ingerir várias tabelas de origem

O seguinte arquivo resources/servicenow_pipeline.yml ingere várias tabelas de origem:

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

# The main pipeline for servicenow_dab
resources:
pipelines:
pipeline_servicenow:
name: servicenow_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <servicenow-connection>
objects:
# An array of objects to ingest from ServiceNow. This example ingests the incident and problem tables.
- table:
source_schema: default
source_table: incident
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: problem
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

Notebook Databricks

Segue abaixo um exemplo de especificação de pipeline que ingere várias tabelas de origem:

Python
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<servicenow-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "incident",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "default",
"source_table": "problem",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
"""
create_pipeline(pipeline_spec)

Arquivo de fluxo de trabalho do pacote

Aplica-se a : Sim, marcado como certo Pacotes Databricks Ativo

Segue abaixo um exemplo de arquivo resources/servicenow_job.yml . A execução do trabalho ocorre todos os dias, exatamente um dia após a última execução.

YAML
resources:
jobs:
servicenow_dab_job:
name: servicenow_dab_job

trigger:
periodic:
interval: 1
unit: DAYS

email_notifications:
on_failure:
- <email-address>

tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.pipeline_servicenow.id}

Próximos passos

começar, programar e definir alerta em seu pipeline. Consulte Tarefa comum de manutenção pipeline.

Recurso adicional