Ingerir dados do QuickBooks
Beta
Este recurso está em Beta. Para usá-lo, um administrador de workspace precisa ativar o Lakeflow Connect para QuickBooks na página Prévias . Consulte Gerenciar prévias do Databricks.
Esta página mostra como criar um pipeline de ingestão gerenciado do QuickBooks usando o Lakeflow Connect.
Requisitos
-
Para criar um pipeline de ingestão, primeiro cumpra os seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
O compute serverless deve estar habilitado para seu workspace. Consulte Requisitos de compute Serverless.
-
Para criar uma nova conexão, você deve ter privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector suportar a criação de pipeline baseada na interface do usuário, um administrador pode criar a conexão e o pipeline ao mesmo tempo seguindo os passos nesta página. No entanto, se os usuários que criam pipelines usarem a criação de pipeline baseada em API ou forem usuários não administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente, você deve ter privilégios de
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 ingerir do QuickBooks, primeiro configure a autenticação do Databricks e crie uma conexão. Consulte Configurar autenticação para QuickBooks e Criar uma conexão com QuickBooks.
Opções do conector
Defina opções com escopo de pipeline em source_configurations. Consulte Exemplos para obter informações sobre o uso.
Opção | Escopo | Obrigatório | Aplica-se a | Descrição |
|---|---|---|---|---|
| Pipeline | Não | Todas as tabelas incrementais | Data e hora mais antigas a partir das quais ingerir dados, no formato |
Criar um pipeline de ingestão
Para a lista de tabelas de origem compatíveis, consulte Tabelas de origem compatíveis.
- Databricks UI
- Declarative Automation Bundles
- Databricks notebook
- Na barra lateral do workspace do Databricks, clique em Ingestão de dados .
- Na página Adicionar dados , em Conectores do Databricks , clique em QuickBooks .
- Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais do QuickBooks. Se você tiver o privilégio
CREATE CONNECTIONno metastore, clique emCriar conexão para criar uma conexão com as credenciais de Configurar autenticação para o QuickBooks.
- Clique em Avançar .
- Na página Configuração de ingestão , insira um nome para o pipeline.
- Selecione um catálogo e um esquema para gravar os logs de eventos. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, clique emCriar esquema no menu suspenso para criar um esquema.
- Clique em Criar pipeline e continuar .
- Na página Source , selecione as tabelas para ingestão.
- Clique em Salvar e continuar .
- Na página Destino , selecione um catálogo e um esquema para carregar dados. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, clique emCriar esquema no menu suspenso para criar um esquema.
- Clique em Salvar e continuar .
- (Opcional) Na página programar e notificações , clique em
Criar programar . Defina a frequência para refresh das tabelas de destino.
- (Opcional) Clique em
Adicionar notificação para definir notificações por email para o sucesso ou falha da operação do pipeline e, em seguida, clique em Salvar e execução pipeline .
Use os Pacotes de Automação Declarativa para gerenciar pipelines do QuickBooks como código. Os pacotes podem conter definições YAML de Jobs e tarefas, são gerenciados usando a CLI do Databricks e podem ser compartilhados e ter execução em diferentes Workspace de destino (como desenvolvimento, staging e produção). Para obter mais informações, consulte O que são os Pacotes de Automação Declarativa?.
-
Crie um pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recurso ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/quickbooks_pipeline.yml). Consulte pipeline.ingestion_definition e Exemplos. - Um arquivo de definição de job que controla a frequência da ingestão de dados (por exemplo,
resources/quickbooks_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implante o pipeline usando a CLI do Databricks:
Bashdatabricks bundle deploy
- Importe o seguinte notebook para o seu workspace Databricks:
-
Deixe as células um e dois como estão. Não modifique.
-
Modifique a célula três com os detalhes de configuração do seu pipeline. Veja pipeline.ingestion_definition e Exemplos.
-
Opcionalmente, configure as configurações avançadas do pipeline. Consulte Padrões comuns para pipelines de ingestão gerenciados.
-
Clique em Executar tudo .
Exemplos
O conector QuickBooks disponibiliza 37 tabelas de origem no esquema de origem default. Especifique cada tabela que você deseja ingerir.
Ingerir tabelas específicas
Use esta opção para ingerir um subconjunto específico de tabelas ou para personalizar a nomeação de destino por tabela.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere tabelas individuais do QuickBooks:
resources:
pipelines:
quickbooks_pipeline:
name: quickbooks_pipeline
catalog: 'main'
target: 'quickbooks_data'
ingestion_definition:
connection_name: quickbooks_connection
objects:
- table:
source_schema: 'default'
source_table: 'invoice'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'invoice'
- table:
source_schema: 'default'
source_table: 'customer'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'customer'
- table:
source_schema: 'default'
source_table: 'payment'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'payment'
A seguinte especificação de pipeline ingere tabelas individuais do QuickBooks:
pipeline_name = "quickbooks_pipeline"
connection_name = "<quickbooks-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "invoice",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "invoice"
}
},
{
"table": {
"source_schema": "default",
"source_table": "customer",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "customer"
}
},
{
"table": {
"source_schema": "default",
"source_table": "payment",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "payment"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir a partir de uma data de início específica
Use a opção start_datetime para controlar até onde as tabelas incrementais leem na primeira sincronização.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere tabelas do QuickBooks a partir de uma data de começar específica:
resources:
pipelines:
quickbooks_pipeline:
name: quickbooks_pipeline
catalog: 'main'
target: 'quickbooks_data'
ingestion_definition:
connection_name: quickbooks_connection
source_configurations:
- api_source_connector_config:
configs:
start_datetime: '<start-datetime>'
objects:
- table:
source_schema: 'default'
source_table: 'invoice'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'invoice'
- table:
source_schema: 'default'
source_table: 'customer'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'customer'
- table:
source_schema: 'default'
source_table: 'payment'
destination_catalog: 'main'
destination_schema: 'quickbooks_data'
destination_table: 'payment'
A seguinte especificação de pipeline ingere tabelas do QuickBooks a partir de uma data de começar específica:
pipeline_name = "quickbooks_pipeline"
connection_name = "<quickbooks-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_datetime": "<start-datetime>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "invoice",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "invoice"
}
},
{
"table": {
"source_schema": "default",
"source_table": "customer",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "customer"
}
},
{
"table": {
"source_schema": "default",
"source_table": "payment",
"destination_catalog": "main",
"destination_schema": "quickbooks_data",
"destination_table": "payment"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de job de Pacotes de Automação Declarativa
O seguinte é um ficheiro de definição de job de exemplo para utilização com Pacotes de Automatização Declarativos. O Job é execução diariamente.
- Declarative Automation Bundles
resources:
jobs:
quickbooks_job:
name: quickbooks_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: quickbooks_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.quickbooks_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Próximos os passos
Comece, programe e defina alertas em seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.