Ingerir dados do HubSpot
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
Aprenda como criar um pipeline de ingestão gerenciado do HubSpot 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.
-
compute sem servidor (serverless compute) deve estar habilitado para seu workspace. Consulte os requisitos compute sem servidor.
-
Se você planeja criar uma nova conexão: Você deve ter privilégios
CREATE CONNECTIONno metastore.Se o conector suportar a criação pipeline baseada em interface de usuário, um administrador poderá criar a conexão e o pipeline simultaneamente, concluindo os passos desta página. No entanto, se os usuários que criam pipelines utilizarem a criação pipeline baseada em API ou não forem administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar para gerenciar fontes de ingestão.
-
Se você planeja usar uma conexão existente: Você deve ter privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
Você deve ter privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou privilégiosCREATE SCHEMAno catálogo de destino.
Para importar dados do HubSpot, você deve primeiro concluir os passos descritos em Configurar OAuth para importação de dados do HubSpot.
Crie um pipeline de ingestão.
Cada tabela de origem é inserida em uma tabela de transmissão.
Interface do usuário do Databricks
- Na barra lateral do workspace do Databricks , clique em ingestão de dados .
- Na página Adicionar dados , em Conectores do Databricks , clique em HubSpot .
- Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais de acesso ao HubSpot. Se você tiver o privilégio
CREATE CONNECTIONno metastore, poderá clicar.Crie uma conexão para criar uma nova conexão com os detalhes de autenticação em Configurar OAuth para ingestão no HubSpot.
- Clique em Avançar .
- Na página de configuração de ingestão , insira um nome exclusivo para o pipeline.
- Selecione um catálogo e um esquema para gravar logs de eventos. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Criar pipeline e continue .
- Na página Origem , selecione as tabelas que deseja importar.
- Clique em Salvar e continuar .
- Na página Destino , selecione um catálogo e um esquema para carregar os dados. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Salvar e continuar .
- (Opcional) Na página de programação e notificações , clique em
Criar programar . Defina a frequência de refresh das tabelas de destino.
- (Opcional) Clique
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 ativo Bundles para gerenciar o pipeline do HubSpot 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?.
-
Crie um novo pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recursos ao pacote:
- Um arquivo de definição de pipeline (
resources/hubspot_pipeline.yml). Consulte as propriedades de configuração do pipeline e os exemplos. - Um arquivo de fluxo de trabalho que controla a frequência de ingestão de dados (
resources/hubspot_job.yml).
- Um arquivo de definição de pipeline (
-
Implante o pipeline usando a CLI Databricks :
Bashdatabricks bundle deploy
Notebook Databricks
- Importe o seguinte Notebook para o seu workspace Databricks :
-
Deixe a célula um como está.
-
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.
-
Clique em Executar tudo .
Propriedades de configuração do pipeline
Aplica-se a : Pacotes Databricks Ativo
Notebook Databricks
Defina as seguintes propriedades no arquivo de definição de pipeline do seu pacote:
Valor | Descrição |
|---|---|
| Um nome único para o pipeline. |
| O nome da conexão do Unity Catalog que armazena os detalhes de autenticação do HubSpot. |
| O nome do esquema que contém os dados que você deseja importar. |
| O nome da tabela que você deseja importar. |
| O nome do catálogo no qual você deseja escrever no Databricks. |
| O nome do esquema no qual você deseja gravar no Databricks. |
| 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 : Pacotes Databricks Ativo
Notebook Databricks
Utilize esses exemplos para configurar seu pipeline.
Ingerir uma única tabela de origem
O seguinte arquivo resources/hubspot_pipeline.yml ingere uma única tabela de origem:
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for hubspot_dab
resources:
pipelines:
pipeline_hubspot:
name: hubspot_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <hubspot-connection>
objects:
# An array of objects to ingest from HubSpot. This example ingests the contacts table.
- table:
source_schema: default
source_table: contacts
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:
pipeline_name = "hubspot_pipeline"
connection_name = "<hubspot-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "contacts",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir várias tabelas de origem
O seguinte arquivo resources/hubspot_pipeline.yml ingere várias tabelas de origem:
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
# The main pipeline for hubspot_dab
resources:
pipelines:
pipeline_hubspot:
name: hubspot_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <hubspot-connection>
objects:
# An array of objects to ingest from HubSpot. This example ingests the contacts and companies tables.
- table:
source_schema: default
source_table: contacts
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: companies
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:
pipeline_name = "hubspot_pipeline"
connection_name = "<hubspot-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "contacts",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
},
{
"table": {
"source_schema": "default",
"source_table": "companies",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de fluxo de trabalho do pacote
Aplica-se a : Pacotes Databricks Ativo
Segue abaixo um exemplo de arquivo resources/hubspot_job.yml . A execução do trabalho ocorre todos os dias, exatamente um dia após a última execução.
resources:
jobs:
hubspot_dab_job:
name: hubspot_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_hubspot.id}
Próximos passos
começar, programar e definir alerta em seu pipeline. Consulte Tarefa comum de manutenção pipeline.