Ingerir dados do RabbitMQ
Beta
Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Esta página mostra como criar um pipeline de ingestão RabbitMQ gerenciado usando o 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 serverless deve ser habilitado para seu workspace. Consulte Requisitos de computação serverless.
-
Para criar uma nova conexão, é preciso ter os privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector suportar a criação de pipelines baseada na IU, um administrador poderá criar a conexão e o pipeline simultaneamente, ao concluir os passos nesta página. No entanto, se os usuários que criam pipelines usam a autoria de pipeline baseada em API ou são usuários não administradores, um administrador deve primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente: é preciso ter os privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
É necessário ter os privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou os privilégiosCREATE SCHEMAno catálogo de destino.
-
-
Para ingerir do RabbitMQ, você deve primeiro concluir os passos em Conectar ao RabbitMQ.
Criar pipeline de ingestão
Cada fila clássica do RabbitMQ é ingerida em uma tabela de transmissão. Para obter uma lista de dados compatíveis e limitações, consulte Dados compatíveis.
A criação de pipelines baseada na IU não é compatível para o conector RabbitMQ em Beta. Use Pacotes de Automação Declarativa ou um Notebook Databricks para criar seu pipeline.
- Declarative Automation Bundles
- Databricks notebook
Use Pacotes de Automação Declarativa para gerenciar pipelines do RabbitMQ 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 executados em diferentes workspaces de destino (como desenvolvimento, preparo e produção). Para obter mais informações, consulte O que são Pacotes de Automação Declarativa?.
-
Crie um novo pacote utilizando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione um arquivo de definição de pipeline ao pacote (por exemplo,
resources/rabbitmq_pipeline.yml). Veja pipeline.definição_de_ingestão e Exemplos. -
Implante o pacote usando a CLI do Databricks:
Bashdatabricks bundle deploy
- Importe o seguinte notebook em seu workspace do Databricks:
-
Manter a célula um como está. Não modifique o campo
channel— ele deve permanecerPREVIEW. -
Modifique a célula com os detalhes de configuração do seu pipeline, incluindo o nome da sua fila. Veja pipeline.ingestion_definition e Exemplos.
-
Clique em Executar tudo .
Exemplos
Use estes exemplos para configurar seu pipeline.
Pipeline com única fila
Este exemplo ingere uma única fila clássica do RabbitMQ em uma tabela de transmissão:
- Declarative Automation Bundles
variables:
connection_name:
default: my-rabbitmq-connection
dest_catalog:
default: main
dest_schema:
default: rabbitmq_ingest
resources:
pipelines:
rabbitmq_pipeline:
name: rabbitmq-ingestion-pipeline
serverless: true
continuous: true
channel: PREVIEW
catalog: ${var.dest_catalog}
target: ${var.dest_schema}
ingestion_definition:
connection_name: ${var.connection_name}
objects:
- table:
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
destination_table: orders
connector_options:
rabbitmq_options:
queue: orders
Pipeline com múltiplas filas
Este exemplo ingere duas filas clássicas do RabbitMQ, cada uma em sua própria tabela de destino. Definir uma entrada de tabela por fila:
- Declarative Automation Bundles
variables:
connection_name:
default: my-rabbitmq-connection
dest_catalog:
default: main
dest_schema:
default: rabbitmq_ingest
resources:
pipelines:
rabbitmq_pipeline:
name: rabbitmq-ingestion-pipeline
serverless: true
continuous: true
channel: PREVIEW
catalog: ${var.dest_catalog}
target: ${var.dest_schema}
ingestion_definition:
connection_name: ${var.connection_name}
objects:
- table:
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
destination_table: orders
connector_options:
rabbitmq_options:
queue: orders
- table:
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
destination_table: shipments
connector_options:
rabbitmq_options:
queue: shipments
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Passos seguintes
O Conector RabbitMQ executa pipelines contínuos. Em seguida, comece seu pipeline e defina alertas nele. Veja Tarefas comuns de manutenção de pipelines.