Criar um pipeline de ingestão do ServiceNow
Visualização
O conector ServiceNow está em versão prévia pública.
Este artigo descreve como criar uma ingestão do ServiceNow pipeline usando Databricks LakeFlow Connect.
Antes de começar
Para criar um pipeline de ingestão, o senhor deve atender aos seguintes requisitos:
- Seu workspace está habilitado para Unity Catalog.
- O compute sem servidor está habilitado para o seu workspace. Consulte Ativar serverless compute .
- Se você planeja criar uma conexão: Você tem privilégios
CREATE CONNECTION
na metastore. - Se você planeja usar uma conexão existente: Você tem privilégios
USE CONNECTION
ouALL PRIVILEGES
no objeto de conexão. - Você tem privilégios
USE CATALOG
no catálogo de destino. - Você tem privilégios
USE SCHEMA
eCREATE TABLE
em um esquema existente ou privilégiosCREATE SCHEMA
no catálogo de destino.
Para ingerir a partir do ServiceNow, consulte Configurar o ServiceNow para ingestão do Databricks.
Criar o pipeline de ingestão
Permissões necessárias: USE CONNECTION
ou ALL PRIVILEGES
em uma conexão.
Esta etapa descreve como criar o pipeline de ingestão. Cada tabela ingerida é gravada em uma tabela de transmissão com o mesmo nome.
- Databricks UI
- Databricks notebook
- Databricks CLI
-
Na barra lateral do site Databricks workspace, clique em ingestão de dados .
-
Na página Adicionar dados , em Conectores do Databricks , clique em ServiceNow .
O assistente de ingestão é aberto.
-
Na página Ingestion pipeline (Pipeline de ingestão ) do assistente, digite um nome exclusivo para o pipeline.
-
No menu suspenso Catálogo de destino , selecione um catálogo. Os dados ingeridos e o evento logs serão gravados nesse catálogo. Você selecionará um esquema de destino posteriormente.
-
Selecione a conexão do Unity Catalog que armazena as credenciais necessárias para acessar os dados de origem.
Se não houver conexões existentes com a origem, clique em Create connection (Criar conexão ) e insira os detalhes de autenticação que o senhor obteve em Configure ServiceNow for Databricks ingestion (Configurar ingestão do ServiceNow para Databricks). Você deve ter privilégios
CREATE CONNECTION
na metastore. -
Clique em Create pipeline (Criar pipeline) e continue .
-
Na página Origem , selecione as tabelas a serem ingeridas e clique em Avançar .
Se você selecionar Todas as tabelas , o conector gravará todas as tabelas existentes e futuras no esquema de origem no esquema de destino. Há um máximo de 250 mesas por pipeline.
-
Na página Destination (Destino ), selecione o catálogo e o esquema do Unity Catalog para gravar.
Se você não quiser usar um esquema existente, clique em Criar esquema . Você deve ter privilégios
USE CATALOG
eCREATE SCHEMA
no catálogo principal. -
Clique em Save pipeline (Salvar pipeline) e continue .
-
(Opcional) Na página Settings (Configurações ), clique em Create programar (Criar programa ). Defina a frequência para refresh as tabelas de destino.
-
(Opcional) Defina as notificações do site email para o sucesso ou fracasso das operações do pipeline.
-
Clique em Save e execute pipeline .
-
Gere tokens de acesso pessoal e copie os tokens para que o senhor possa colá-los em um Notebook posteriormente. Consulte Databricks acesso pessoal tokens para usuários de workspace.
-
Importe o seguinte Notebook para o site workspace:
Criar um pipeline de ingestão do ServiceNow
-
Modifique os seguintes valores no Notebook:
Célula 1:
api_token
: Os tokens de acesso pessoal que o senhor gerou
Célula 3:
-
name
: Um nome para o pipeline -
connection_name
: O nome da conexão do Unity Catalog que o senhor criou no Catalog Explorer (Catalog > External data > Connections ). Se você não tiver uma conexão existente com a fonte, poderá criar uma. Você deve ter o privilégioCREATE CONNECTION
na metastore. -
source_table
: O nome da tabela de origem -
destination_catalog
: um nome para o catálogo de destino que conterá os dados ingeridos -
destination_schema
: um nome para o esquema de destino que conterá os dados ingeridos -
scd_type
: O método SCD a ser usado:SCD_TYPE_1
ouSCD_TYPE_2
. -
include_columns
: opcionalmente, especifique uma lista de colunas a serem incluídas para ingestão. Se o senhor usar essa opção para incluir colunas explicitamente, o pipeline excluirá automaticamente as colunas que forem adicionadas à origem no futuro. Para ingerir as colunas futuras, você precisará adicioná-las à lista. -
exclude_columns
: opcionalmente, especifique uma lista de colunas a serem excluídas da ingestão. Se o senhor usar essa opção para excluir explicitamente as colunas, o pipeline incluirá automaticamente as colunas que forem adicionadas à origem no futuro. Para ingerir as colunas futuras, você precisará adicioná-las à lista.Para obter mais informações, consulte história acompanhamento.
-
Clique em Executar tudo .
O senhor pode usar as seguintes propriedades de configuração de tabela na definição do pipeline para selecionar ou desmarcar colunas específicas para ingestão:
include_columns
: opcionalmente, especifique uma lista de colunas a serem incluídas para ingestão. Se o senhor usar essa opção para incluir colunas explicitamente, o pipeline excluirá automaticamente as colunas que forem adicionadas à origem no futuro. Para ingerir as colunas futuras, você precisará adicioná-las à lista.exclude_columns
: opcionalmente, especifique uma lista de colunas a serem excluídas da ingestão. Se o senhor usar essa opção para excluir explicitamente as colunas, o pipeline incluirá automaticamente as colunas que forem adicionadas à origem no futuro. Para ingerir as colunas futuras, você precisará adicioná-las à lista.
Para criar o pipeline:
databricks pipelines create --json "<pipeline definition or json file path>"
Para editar o pipeline:
databricks pipelines update --json "<pipeline definition or json file path>"
Para obter a definição do pipeline:
databricks pipelines get "<pipeline-id>"
Para excluir o pipeline:
databricks pipelines delete "<pipeline-id>"
Para obter mais informações, execute:
databricks pipelines --help
databricks pipelines <create|update|get|delete|...> --help
Exemplo de definição de pipeline JSON:
"ingestion_definition": {
"connection_name": "<connection-name>",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
"include_columns": ["<column-a>", "<column-b>", "<column-c>"]
}
}
}
]
}