Todos os produtos do AWS Marketplace
FerroDruid
Observabilidade

FerroDruid

OLAP nativo em Rust compatível com Apache Druid

Inicialização sub-segundo, <200 MB de RAM Serviço da AWS que substitui: Cluster Apache Druid
Obter no AWS Marketplace

Um banco de dados OLAP em tempo real nativo em Rust e compatível com a especificação do Apache Druid. Ele fala a Druid REST API, JSON de consulta nativa e Druid SQL, e lê/grava binários de segmento Druid v9/v10 — sem JVM, sem ZooKeeper e sem um control plane de seis processos. O binário único inicia em menos de um segundo usando menos de 200 MB de RAM.

Um cluster clássico de Apache Druid precisa de seis ou mais processos JVM, mais ZooKeeper, mais um banco de dados externo de metadados e 16 GB+ de RAM antes de servir uma única consulta; o modo de binário único do FerroDruid substitui tudo isso por um processo distribuído como uma AMI autocontida. A v0.2.0 atende todos os oito tipos de consulta nativa (timeseries, topN, groupBy, scan, search, segmentMetadata, dataSourceMetadata, timeBoundary); executa Druid SQL (SELECT, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, 30+ funções, EXPLAIN PLAN FOR, um endpoint de tarefa MSQ, ~95% de paridade com o core SQL); expõe 40+ endpoints REST compatíveis com Druid; lê/grava segmentos Druid v9/v10; e ingere a partir de supervisores Kafka e Kinesis e batch nativo. Basic auth (Argon2id) + RBAC vêm ativados por padrão, TLS via rustls, com uma senha administrativa aleatória única gerada no primeiro boot.

O problema

O Apache Druid é uma poderosa engine OLAP em tempo real, mas um cluster clássico precisa de seis ou mais processos JVM, além do ZooKeeper, de um banco de dados de metadados externo e de 16 GB ou mais de RAM antes de servir uma única consulta. Implantar, operar e monitorar esse control plane de seis processos é pesado e exagerado para ambientes de avaliação e implantações menores. Você quer a API e o formato de segmento do Druid, mas sem o fardo de gerenciar uma frota de JVM e ZooKeeper.

Como funciona

  1. 1

    Inicializa como um único binário

    O modo single-binary executa um único processo — sem JVM, sem ZooKeeper, sem banco de dados de metadados externo — que inicia em menos de um segundo e usa menos de 200 MB de RAM. Ele usa SQLite para metadados e o sistema de arquivos local para deep storage, sendo entregue como uma AMI autocontida.

  2. 2

    Comunica-se via protocolo wire do Druid

    Ele interpreta a Druid REST API, JSON de consulta nativa e Druid SQL, e lê e grava arquivos binários de segmento v9/v10 do Druid. Atende a todos os oito tipos de consulta nativa e expõe mais de 40 endpoints REST compatíveis com o Druid, para que você possa apontar clientes Druid existentes ou um conector do Apache Superset diretamente para ele.

  3. 3

    Inicia bloqueado, com alteração de senha no primeiro login

    A autenticação básica (Argon2id) e o RBAC vêm ativados por padrão, com TLS via rustls. No primeiro boot, gera-se uma nova senha de admin aleatória exclusiva para aquela instância (nunca uma senha padrão ou compartilhada) que é gravada uma única vez no log do sistema da instância. A conta admin é sinalizada como 'must-change', de modo que todos os endpoints de API retornam HTTP 403 até que o operador faça o POST de uma nova senha, forçando a alteração no primeiro login.

Destaques

Compatível no wire protocol com a especificação Druid (REST + JSON nativo + Druid SQL, segmento v9/v10) — clientes e consultas Druid existentes funcionam.

Um binário, sem JVM / ZooKeeper / control plane de seis processos; boot sub-segundo com menos de 200 MB RAM.

8 tipos de consulta nativa + Druid SQL (~95% de paridade core) + ingestão Kafka / Kinesis; autenticação + RBAC ativados por padrão.

O que está incluído

  • AMI autocontida do Amazon Linux 2023 (Graviton / arm64, compatível com instâncias das classes t4g, c7g, m7g e r7g)
  • Modo single-binary — um processo sem JVM, ZooKeeper ou banco de dados de metadados externo, inicializando em menos de um segundo com menos de 200 MB de RAM (metadados SQLite e deep storage em sistema de arquivos local)
  • Todos os oito tipos de consulta nativa do Druid (timeseries, topN, groupBy, scan, search, segmentMetadata, dataSourceMetadata, timeBoundary) e mais de 40 endpoints REST compatíveis com o Druid
  • Druid SQL (SELECT / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT, mais de 30 funções, EXPLAIN PLAN FOR, um endpoint de tarefa MSQ e aproximadamente 95% de paridade com o SQL core)
  • Lê e grava arquivos binários de segmento v9/v10 do Druid, com ingestão a partir de supervisores Kafka e Kinesis e via native batch
  • Segurança ativada por padrão — autenticação básica (Argon2id) mais RBAC, TLS via rustls e uma senha de administrador aleatória por instância gerada no primeiro boot, que deve ser alterada no primeiro login
  • Template do CloudFormation para implantação atrás de um ALB (marketplace/cloudformation/ami.yaml), com single-binary single-node como a topologia suportada (multi-node falha fechado por padrão)

Casos de uso

Equipes que desejam um OLAP em tempo real compatível com o Druid sem a necessidade de operar um cluster de seis processos JVM e ZooKeeper

Um backend para clientes existentes que utilizam a Druid REST API, JSON de consulta nativa, Druid SQL ou um conector do Apache Superset

Ambientes de avaliação e desenvolvimento para recursos do Druid usando um binário leve que inicializa em menos de um segundo com menos de 200 MB

Análise de séries temporais e streaming single-node com ingestão a partir de supervisores Kafka e Kinesis ou via native batch

FAQ

Qual é a compatibilidade com o Apache Druid real?

O FerroDruid interpreta a Druid REST API, JSON de consulta nativa e Druid SQL, além de ler e gravar segmentos v9/v10. Ele abrange todos os oito tipos de consulta nativa e mais de 40 endpoints REST compatíveis com o Druid, com aproximadamente 95% de paridade com o Druid SQL core (não 100%). A correspondência profunda em nível de rede em tempo real (live wire deep-match) foi de 5 de 5 em relação ao Apache Druid 30.0.1 e de 5 de 5 com um conector do Apache Superset. Escopo sincero: a validação em tempo real é em relação ao Druid 30.0.1 em modo single-binary; do Druid 31 ao 36 é uma meta de projeto baseada em especificações, ainda não validada em um cluster ativo.

Preciso de uma JVM, do ZooKeeper ou de um banco de dados de metadados externo?

Não no modo single-binary. Um único processo inicializa em menos de um segundo e usa menos de 200 MB de RAM — em contraste com um cluster Druid clássico, que precisa de seis ou mais processos JVM, além do ZooKeeper, de um banco de dados de metadados externo e de 16 GB ou mais de RAM. O caminho suportado em single-binary usa SQLite para metadados e o sistema de arquivos local para deep storage.

Posso executar uma configuração multi-node?

A topologia suportada é single-binary single-node; configurações multi-node falham no modo fechado (fail-closed) por padrão. Sinceramente, a validação em tempo real é contra o modo single-binary, e não a validamos como um cluster multi-node ativo no momento. Consulte docs/KNOWN_LIMITATIONS.md para obter detalhes.

Como a segurança é gerenciada e qual é o fluxo de primeiro login?

A autenticação básica (Argon2id) e o RBAC vêm ativados por padrão, com TLS via rustls. No primeiro boot, a AMI gera uma nova senha de admin aleatória exclusiva para essa instância (nunca uma senha padrão ou compartilhada) e a escreve uma vez no log do sistema da instância. A conta admin é sinalizada como 'must-change', de forma que todos os endpoints de API retornam HTTP 403 até que o operador faça um POST com a nova senha para /druid-ext/basic-security/authentication/db/basic/users/admin/credential. A credencial rotacionada é persistida e sobrevive a reinicializações.

Como faço para implantar e como funcionam o licenciamento e o faturamento?

Implante-o com o template do CloudFormation fornecido (marketplace/cloudformation/ami.yaml) atrás de um Application Load Balancer; termine o TLS no ALB e não exponha a porta do serviço diretamente à internet. Aponte seus clientes (REST API, JSON de consulta nativa, Druid SQL ou um conector do Apache Superset) para o endpoint do load balancer. Este anúncio vende uma distribuição protegida, verificada e com suporte, criada a partir do código-fonte Apache-2.0 em uma versão de lançamento fixada; o código em si permanece sob a licença Apache-2.0. A AMI é tarifada automaticamente pela AWS por hora de instância ativa, sem código de tarifação embutido no produto.

Modelo de precificação

Taxa horária de software + EC2 (classe t4g / c7g / m7g / r7g, Arm). Medição por tipo de instância.

Obter no AWS Marketplace