Baixar 10 GB para achar uma linha: como consultar um arquivo do R2 pedindo só os blocos certos
Um arquivo de 10 GB no bucket não precisa sair inteiro para responder uma pergunta pequena. Veja como o wremoto do jsonW lê só os blocos necessários no Cloudflare R2 e no S3, com os preços oficiais e os limites do projeto.

A página de preços do Cloudflare R2, atualizada em 30 de outubro de 2026, informa que não há cobrança de saída de dados para a internet em nenhuma classe de armazenamento. Isso muda o que pesa na conta de quem consulta um arquivo guardado na nuvem: a leitura deixa de crescer com o tamanho do arquivo e passa a crescer com o pedaço lido e com o número de requisições. O jsonW foi desenhado para ler só esse pedaço. Este texto mostra como isso funciona, o que muda em custo e em tempo e o que o projeto ainda não mediu. Para o formato completo, veja o site do jsonW e o repositório no GitHub.
Por que baixar o arquivo inteiro é o problema
Quando o dado está num bucket e a pergunta é pequena, a rotina mais simples baixa o arquivo inteiro, descompacta e só depois filtra. Quem decide tecnologia precisa perguntar outra coisa: quanto do arquivo precisa mesmo sair do bucket para responder ao negócio. A resposta costuma ser uma fração pequena.
O projeto também aponta um risco à parte. Cada passagem de um formato para outro pode desfazer informação, como um preço que vira texto ou um CPF que perde o zero à esquerda. Por isso, ler só o pedaço certo do arquivo original ajuda duas vezes: gasta menos e preserva o dado.
Como o jsonW decide o que baixar
Um arquivo .jsw é guardado em blocos. O cabeçalho traz o esquema. O rodapé traz a lista dos blocos e as zonas, que anotam o menor e o maior valor de cada coluna em cada bloco. Com essas anotações, o wremoto descobre quais blocos não podem ter a linha procurada, e esses blocos nunca são baixados.
Na prática, a primeira leitura é pequena, da ordem de poucos kilobytes. Só depois vêm os blocos que podem responder à pergunta.
flowchart LR
A[Pergunta: preco > 100] --> B[Cabeçalho e rodapé: esquema, blocos e zonas]
B --> C{Zona do bloco pode ter a resposta?}
C -->|não| D[Bloco fica no R2]
C -->|sim| E[Range: baixa só esse bloco]
E --> F[Linhas que passam]
Passo a passo com o wremoto
Os comandos seguem a documentação do projeto. Troque o nome do bucket e do arquivo pelos seus.
Guarde a chave do R2 num arquivo, nunca na linha de comando, e restrinja a leitura desse arquivo:
printf 'chave:segredo\n' > ~/.cred/r2 && chmod 600 ~/.cred/r2Aponte o wremoto para esse arquivo:
export WJSW_R2_CRED=~/.cred/r2Veja quantas linhas e blocos existem e quanto foi baixado só para abrir o arquivo:
wremoto info r2://meu-bucket/vendas.jswPeça um trecho, por exemplo 5 linhas a partir da linha 1000000:
wremoto ver r2://meu-bucket/vendas.jsw 1000000 5Filtre pela condição:
wremoto filtrar r2://meu-bucket/vendas.jsw "preco > 100"
Se o arquivo estiver num servidor HTTP com suporte a Range, o comando é o mesmo, com a URL no lugar do endereço r2://.
Como testar no seu caso
- Escolha uma pergunta que a equipe faz todo mês, por exemplo, as vendas de um SKU acima de um valor.
- Rode
wremoto infoe anote quanto foi baixado para abrir o arquivo. - Compare esse número com o tamanho total do arquivo e com o tempo da rotina atual.
- Confira o número de leituras no painel de métricas do R2 e aplique os preços da Classe B.
O que muda em custo e em tempo
Os valores abaixo estão na página de preços do R2, na classe Standard, salvo quando indicado:
- Armazenamento: US$ 0,015 por GB-mês, com 10 GB-mês gratuitos por mês.
- Leituras (Classe B, que incluem o GetObject): US$ 0,36 por milhão, com 10 milhões gratuitos por mês.
- Classe Infrequent Access: US$ 0,01 por GB recuperado, com duração mínima de 30 dias.
Daí saem três consequências práticas:
- No R2, a economia em dinheiro vem menos da transferência, que é gratuita, e mais do volume lido e do número de leituras. Quanto menos blocos a consulta toca, menos Classe B ela gera.
- Na API do S3, uma requisição GET não traz vários intervalos de dados. Uma consulta que toca muitos blocos espalhados faz várias chamadas. A página de preços da AWS lista a transferência de dados como um componente de custo, então o pedaço lido pesa mais em serviços que cobram por ela.
- O arquivo ocupa menos espaço. O README mede 4,9 vezes menos que o JSONL, em 100 mil registros. Como o armazenamento é cobrado por GB-mês, o efeito aparece na conta de guardar. Isso vale para o seu dado só depois de um teste com ele.
No tempo, o README mede leituras de um campo em uma linha 3.281 vezes mais rápidas que o leitor JSON do próprio projeto. A medição é local. O projeto não publicou o mesmo teste com o R2.
Onde o dado continua exato
- Valores monetários e decimais: o decimal exato nunca passa por ponto flutuante, então 12,50 continua 12,50.
- Códigos, como CNPJ e SKU: os bytes são guardados como foram escritos, sem normalização nem corte, e o zero da frente não some.
- Datas e horas: o tipo tempo guarda microssegundos em UTC.
Liberdade funcional e licença
O mesmo arquivo pode ser servido pelo próprio R2, por um Worker ou por qualquer CDN, porque o leitor só precisa de Range. Para filtrar no servidor, o wjsw-cgi roda em Apache, nginx, LiteSpeed, Caddy e IIS, com a visão por permissão obrigatória. Há SDKs em dez linguagens.
A licença permite o uso livre dentro do próprio produto, em quantos servidores forem necessários. Não é permitido revender o jsonW como serviço nem fazer engenharia reversa do núcleo.
Limites que valem saber
- O wremoto roda nativamente em macOS e Linux. No Windows, ele funciona pelo WSL.
- O README não traz medição de leitura remota no R2 nem de custo final. Os números de 4,9 vezes e 3.281 vezes são de teste local contra JSONL.
- O README mostra a ida e volta com bancos de dados, não com o R2. A leitura remota é descrita como leitura parcial, e a integridade do arquivo continua sendo conferida pelo comando conferir.
- Na classe Infrequent Access, cada leitura paga recuperação, então consultas repetidas em pedaços podem custar mais.
- Os preços mudam. Confira a página do R2 antes de dimensionar.
Perguntas frequentes
O Cloudflare R2 cobra para ler um arquivo?
Não cobra saída de dados para a internet. Cobra as leituras (Classe B) e, na classe Infrequent Access, a recuperação por GB. A página de preços do R2 traz os valores atualizados.
Preciso baixar o arquivo .jsw inteiro para consultar?
Não. O wremoto lê o cabeçalho e o rodapé e baixa só os blocos que a pergunta pode precisar. Os blocos que o rodapé descarta nunca saem do bucket.
Funciona com S3 e não só com R2?
Sim. O README cita R2, S3 e qualquer servidor HTTP com suporte a Range. Cada pedido ao R2 ou ao S3 vai assinado em AWS SigV4.
Onde guardo a chave de acesso com segurança?
Num arquivo com permissão restrita, apontado pela variável WJSW_R2_CRED. A chave não deve aparecer na linha de comando.
O jsonW substitui o meu banco de dados?
Não. O projeto não exige troca de banco. O wcon leva os dados de um banco para um .jsw e os devolve sem perda.
Quanto dá para economizar com isso?
O projeto não publicou essa conta para o R2. Para estimar, rode wremoto info no seu arquivo, compare o que foi baixado com o tamanho total e aplique os preços da página do R2 ao seu caso.
Posso usar em produto comercial?
Sim, dentro do seu produto, pela licença de uso sustentável. Revender o jsonW como serviço não é permitido. Para outros acordos, o projeto indica o contato da Wortic.
O wremoto funciona no Windows?
Não diretamente. No Windows ele roda pelo WSL. Em macOS e Linux, roda nativamente.
Fontes
- README do jsonW (português)
- AGENTS.md do jsonW
- Site do jsonW
- Preços do Cloudflare R2, atualizados em 30/10/2026
- GetObject, referência da API do Amazon S3
- Preços do Amazon S3
Perguntas frequentes
O Cloudflare R2 cobra para ler um arquivo?
Não cobra saída de dados para a internet em nenhuma classe. Cobra as leituras (Classe B) e, na classe Infrequent Access, a recuperação por GB. A página de preços do R2 traz os valores atualizados.
Preciso baixar o arquivo .jsw inteiro para consultar?
Não. O wremoto lê o cabeçalho e o rodapé e baixa só os blocos que a pergunta pode precisar. Os blocos que o rodapé descarta nunca saem do bucket.
Funciona com S3 e não só com R2?
Sim. O README cita R2, S3 e qualquer servidor HTTP com suporte a Range. Cada pedido ao R2 ou ao S3 vai assinado em AWS SigV4.
Onde guardo a chave de acesso com segurança?
Num arquivo com permissão restrita, apontado pela variável WJSW_R2_CRED. A chave não deve aparecer na linha de comando.
O jsonW substitui o meu banco de dados?
Não. O projeto não exige troca de banco. O wcon leva os dados de um banco para um .jsw e os devolve sem perda.
Quanto dá para economizar com isso?
O projeto não publicou essa conta para o R2. Para estimar, rode wremoto info no seu arquivo, compare o que foi baixado com o tamanho total e aplique os preços da página do R2 ao seu caso.
Posso usar em produto comercial?
Sim, dentro do seu produto, pela licença de uso sustentável. Revender o jsonW como serviço não é permitido. Para outros acordos, o projeto indica o contato da Wortic.
O wremoto funciona no Windows?
Não diretamente. No Windows ele roda pelo WSL. Em macOS e Linux, roda nativamente.
Fontes
- README do jsonW (português)
- AGENTS.md do jsonW
- Site do jsonW
- Preços do Cloudflare R2 (atualizado em 30/10/2026)
- GetObject, referência da API do Amazon S3
- Preços do Amazon S3
Conheça: jsonW no Cloudflare R2 e no S3: consultar sem baixar o arquivo.
Quer isso funcionando na sua empresa?
Um consultor da Wortic olha o seu caso e mostra o caminho, sem compromisso.
Falar com um consultorEquipe editorial
Equipe editorial da Wortic especializada em automacao, IA, ERP, CRM e crescimento operacional.
- Automacao com IA
- Gestao empresarial
- CRM
- ERP
- Marketing digital


