Pular para o conteúdo principal

Cotas do conector do Zerobus Ingest

Esta página descreve as cotas default para o conector Zerobus Ingest no Lakeflow Connect, juntamente com a forma como ele funciona com suas tabelas Delta, esquema e tipos de dados.

Disponibilidade

O conector Zerobus Ingest está disponível apenas em algumas regiões. Para ver uma lista de regiões compatíveis, consulte Disponibilidade de ingestão.

Latência

A latência reflete tanto a confirmação de durabilidade quanto o tempo para materializar registros na tabela Delta de destino. Os tempos reais variam com base no alinhamento da região e nas características da carga de trabalho.

  • Tempo até a durabilidade

    • P50 ≤ 150 ms
  • Tempo para a tabela

    • P50 ≤ 5 seg

Cotas

A tabela a seguir lista as cotas default para o conector Zerobus Ingest.

Item

Cota default

Precisa de mais?

throughput por transmissão (gRPC)

100 MB/segundo (avaliado com mensagens de 1 KB)

Ajustável

Throughput por tabela de destino (gRPC)

10 GB/segundo

Ajustável

Registros por segundo por transmissão

100.000 (benchmarked com mensagens de 1 KB)

Ajustável

Solicitações REST por segundo

10.000

Ajustável

Item

Cota default

Precisa de mais?

throughput por transmissão (gRPC)

100 MB/segundo (avaliado com mensagens de 1 KB)

Ajustável

Throughput por tabela de destino (gRPC)

10 GB/segundo

Ajustável

Registros por segundo por transmissão

100.000 (benchmarked com mensagens de 1 KB)

Ajustável

Solicitações REST por segundo

10.000

Ajustável

Estes são os throughputs default com os quais o conector é provisionado, e eles escalam para atender a cargas de trabalho maiores. Para aumentar qualquer um deles, entre em contato com seu representante de account do Databricks. Para obter o throughput máximo, mantenha seu aplicativo cliente e o endpoint na mesma região geográfica.

Garantias de entrega

O conector Zerobus Ingest oferece garantias de entrega pelo menos uma vez.

Retenção de dados em buffer

Se o serviço Zerobus Ingest não conseguir liberar os dados em buffer para sua tabela Delta, ele manterá os dados em um armazenamento durável gerenciado pelo serviço e emitirá ocasionalmente eventos de aviso por transmissão.

Se os dados permanecerem sem descarga por 28 dias, o serviço excluirá os dados em buffer e emitirá um evento de descarte por transmissão, registrando o número de registros e bytes descartados. Não é possível recuperar os dados após a exclusão.

Comportamento da tabela

Como o Zerobus Ingest funciona com suas tabelas Delta.

Tabelas particionadas

Ao gravar em tabelas particionadas, o Zerobus Ingest não oferece suporte à gravação em mais de 100 partições em qualquer intervalo de 5 segundos. Para obter o melhor throughput, minimize o número de partições em cada intervalo de 5 segundos.

O Databricks recomenda o uso de tabelas com cluster líquido com o Zerobus Ingest em vez de particionamento.

Workspace e tabela de destino

A ingestão funciona com a seguinte configuração de workspace e tabela de destino.

  • O conector oferece suporte à gravação em tabelas Delta gerenciadas.
  • O conector não oferece suporte à recriação de uma tabela de destino.
  • O conector suporta apenas nomes de tabela com letras ASCII, dígitos e underscores.
  • Tanto o workspace quanto a tabela de destino precisam estar em uma das regiões disponíveis.

Tabelas com liquid clustering

Ao usar o conector Zerobus Ingest com tabelas liquid clustered, recomenda-se manter a otimização preditiva habilitada para a tabela de destino. O conector grava dados na tabela, mas o clustering de dados ideal é aplicado de forma assíncrona pelo serviço de otimização preditiva. Desabilitar a otimização preditiva pode resultar em um desempenho de query abaixo do ideal nos dados ingeridos.

Esquema e tipos de dados

As seções a seguir explicam como definir seu esquema e os tipos de dados compatíveis com o Zerobus Ingest.

evolução do esquema

O Zerobus Ingest nunca fará a autoevolução da sua tabela de destino.

O Zerobus Ingest oferece suporte à ingestão contínua quando colunas Delta anuláveis são adicionadas à tabela de destino. Colunas ausentes são preenchidas com valores NULL, permitindo que você envie registros com campos ausentes.

Esquema Protobuf

A definição de esquema protobuf deve corresponder 1:1 ao esquema da tabela Delta (excluindo colunas Delta anuláveis extras, que são consideradas uma alteração de esquema não disruptiva). Se o esquema não corresponder, a API retornará um erro. Isso inclui:

  • Número diferente de colunas

  • Nomes de coluna diferentes

  • Diferentes opcionalidades de coluna (anulável e não anulável)

  • O conector não é compatível com esquemas proto com mais de 2.000 colunas.

  • O conector só oferece suporte a nomes de tabela e coluna com letras ASCII, dígitos e underscores.

  • O conector não suporta o uso de um esquema proto diferente para operações de "transmissão creation" e "ingest record". [[ ## completed ##]]

Tamanho do registro

Cada mensagem tem um tamanho máximo de 10 MB. O tamanho máximo do registro é de 10.485.760 bytes. Os cabeçalhos necessários para a comunicação ocupam 19 bytes.

Suporte a tipos

A tabela a seguir mostra os tipos Delta compatíveis e seus tipos Protobuf correspondentes para ingestão.

Tipos Delta

Tipos de Protobuf

INTEGER

int32

STRING

string

FLOAT

float

LONG

int64

SHORT

int32

DOUBLE

double

DECIMAL(p, s)

Texto decimal, por exemplo, "123,45", "1e2", etc.

string

BOOLEAN

bool

BINARY

bytes

BYTE (TINYINT)

int32

DATE

Deve ser convertido para int32 (número de dias desde a época).

int32

TIMESTAMP

Deve ser convertido para int64 (tempo de época em microssegundos).

int64

TIMESTAMPNTZ

Deve ser convertido para int64 (tempo de época em microssegundos).

int64

ARRAY<TYPE>

repeated TYPE

MAP<K,V>

map<K,V>

O açúcar sintático map Protobuf está disponível apenas para compiladores Protobuf versão 3 ou acima.

STRUCT<FIELDS>

message Nested { FIELDS }

VARIANT

A variante deve ser ingerida como strings codificadas em JSON com keys do tipo STRING. O conector grava os dados sem fragmentação na coluna.

Formatos compatíveis incluem:

  • Objetos: "{\"id\":0,\"example\":\"this is variant example\"}"
  • Primitivas: "5", "3.14", "\"string\""
  • Matrizes: "[1,2,3]"

string

Tipos Delta

Tipos de Protobuf

INTEGER

int32

STRING

string

FLOAT

float

LONG

int64

SHORT

int32

DOUBLE

double

DECIMAL(p, s)

Texto decimal, por exemplo, "123,45", "1e2", etc.

string

BOOLEAN

bool

BINARY

bytes

BYTE (TINYINT)

int32

DATE

Deve ser convertido para int32 (número de dias desde a época).

int32

TIMESTAMP

Deve ser convertido para int64 (tempo de época em microssegundos).

int64

TIMESTAMPNTZ

Deve ser convertido para int64 (tempo de época em microssegundos).

int64

ARRAY<TYPE>

repeated TYPE

MAP<K,V>

map<K,V>

O açúcar sintático map Protobuf está disponível apenas para compiladores Protobuf versão 3 ou acima.

STRUCT<FIELDS>

message Nested { FIELDS }

VARIANT

A variante deve ser ingerida como strings codificadas em JSON com keys do tipo STRING. O conector grava os dados sem fragmentação na coluna.

Formatos compatíveis incluem:

  • Objetos: "{\"id\":0,\"example\":\"this is variant example\"}"
  • Primitivas: "5", "3.14", "\"string\""
  • Matrizes: "[1,2,3]"

string