Visão geral do conector Zerobus Ingest

O Zerobus Ingest é uma API de ingestão baseada em push que grava dados diretamente em tabelas Delta do Unity Catalog. É um conector sem servidor que escala automaticamente para lidar com as ligações recebidas. Não requer configurar partições ou gerir intermediários.

Com o Zerobus Ingest, a sua "estratégia de escalabilidade" é abrir mais ligações. Isto simplifica os fluxos de trabalho de ingestão ao eliminar a necessidade de infraestrutura de barramento de mensagens.

Qualquer aplicação que consiga integrar-se com SDKs Zerobus Ingest ou comunicar através de APIs suportadas (gRPC, REST e OpenTelemetry) pode usar o Zerobus Ingest para enviar dados de forma eficiente para as tabelas Delta.

Os buffers Zerobus Ingest transmitem dados antes de os adicionar a uma tabela Delta. Esse armazenamento temporário cria um mecanismo de ingestão eficiente e durável que suporta um alto volume de clientes através de uma taxa de transferência variável.

Uma vez materializados em formato Delta, os dados tornam-se totalmente compatíveis com a abrangente Plataforma de Inteligência de Dados Databricks, permitindo aos utilizadores utilizar ferramentas e capacidades familiares para análise e processamento de dados adicionais.

Conceitos

Um produtor de dados abre primeiro um fluxo para a API Zerobus Ingest e especifica uma tabela Delta alvo, constrói uma mensagem que corresponde ao seu esquema e depois envia a mensagem através do fluxo aberto. O serviço torna os dados duráveis, reconhece a mensagem do cliente e materializa os dados na tabela Delta de forma otimizada.

Como funciona o Zerobus Ingest

Fluxos

Um stream é uma ligação direta entre o seu cliente e o servidor Zerobus Ingest. Os SDKs utilizam fluxos para facilitar ligações duradouras e de alto rendimento.

  • Os fluxos são usados apenas na API gRPC com os SDKs.
  • Um fluxo ingere dados para uma única tabela alvo.
  • O ordenamento de entrega de eventos é garantido a nível de cada fluxo.
  • Podem ser abertos fluxos adicionais para escrever dados em diferentes tabelas.
  • Podem ser abertos fluxos adicionais para aumentar a capacidade de processamento do cliente.
    • Nota: Se o seu cliente enviar mensagens em modo round-robin para diferentes streams, a ordem deixará de estar garantida.

Server

O serviço Zerobus Ingest não cria nem manipula automaticamente tabelas. Os utilizadores devem criar a tabela eles próprios. As tabelas e os seus esquemas são as fontes de referência para as expectativas dos dados recebidos.

O servidor Zerobus Ingest aceita os dados enviados pelos clientes, valida que se enquadram no esquema da tabela de destino e depois escreve-os na tabela. Se os dados caberem na tabela, serão duráveis. Um reconhecimento é então enviado de volta ao cliente.

As responsabilidades do serviço incluem:

  • Validação de esquema da mensagem para a tabela.
  • Materializar os dados oportunamente na tabela de destino.
  • Enviar uma confirmação ao cliente de que os dados são duráveis.

Client

A integração com o cliente envolve:

  • Seleção de uma tabela de destino.
  • Estabelecer uma transmissão com o serviço Zerobus Ingest.
  • Construindo uma mensagem compatível com o esquema.
  • Enviar a mensagem.
  • Gestão de confirmações de mensagens.
  • Implementação de mecanismos de recuperação no caso de falhas do cliente, fluxo ou servidor (por exemplo, problemas de conexão, incompatibilidades de esquema)

Os SDKs Zerobus Ingest fornecem métodos fáceis de usar para conseguir integração com clientes, e a documentação apresenta exemplos de diferentes padrões de desenvolvimento. Para integrações personalizadas, os SDKs podem servir de referência para a estrutura de integração e o tratamento da recuperação.

Introdução ao Zerobus Ingest

  1. Obtenha um URL de Zerobus para ingestão.
  2. Crie ou identifique a tabela na qual você deseja ingerir dados.
  3. Crie um principal de serviço e conceda privilégios à tabela.
  4. Ligue um cliente ou exportador para começar a enviar dados.

Escolha o guia para o seu caso de uso:

  • Ingere os seus próprios dados: Use os SDKs de Ingesta Zerobus ou a API REST com um esquema que defina. Para obter instruções completas, consulte Usar o conector Zerobus Ingest.

  • Ingerir dados OpenTelemetry: Use SDKs ou coletores OpenTelemetry padrão para enviar traços, registos e métricas para esquemas de tabela pré-definidos. Para instruções completas, consulte Ingest OpenTelemetry data with Zerobus Ingest.

Localização de Retaguarda Durável

Se for feita uma alteração disruptiva na sua tabela alvo depois de o Zerobus Ingest tornar os seus dados duráveis, mas antes que ele tenha a oportunidade de publicar (transferir o ficheiro para armazenamento), o conector tornará os dados disponíveis numa pasta separada dentro do local de armazenamento da sua tabela.

Os dados são armazenados em ficheiros Parquet no seguinte caminho relativo ao diretório raiz da tabela: _zerobus/table_rejected_parquets/

Este diretório é criado diretamente sob a localização física de armazenamento raiz da tabela, e todos os ficheiros Parquet gerados pelo serviço são escritos aí. Isto assegura que todos os dados persistentes permanecem dentro do limite de armazenamento da tabela e seguem os mesmos controlos de acesso e políticas de ciclo de vida que a própria tabela.

Custo

As cobranças pelo Zerobus Ingest serão faturadas no SKU "Automated Serverless". Os preços estão disponíveis na página de preços do Lakeflow Connect.

Monitorizar a sua utilização

Existem dois métodos para monitorizar a utilização do seu conector Zerobus Ingest.

Tabelas do sistema Zerobus Ingest

Pode monitorizar o seu uso através das tabelas do sistema Zerobus Ingest. Consulte a referência da tabela do sistema Zerobus Ingest.

Tabela do sistema de faturação

Pode monitorizar os seus gastos através da tabela do sistema de utilização faturável. Consulte Tabela de referência do sistema de uso faturável. Filtrar o uso de ingestão do Zerobus com:

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type = 'GRPC' ou 'HTTP'

Importante

A ingestão do OpenTelemetry (OTLP) está em Beta e não é faturada neste momento.