Format Atlas

Comparar

Arrow vs Zarr

Apache Arrow especifica um formato colunar em memória independente de linguagem e sua serialização para intercâmbio. Zarr armazena arrays N-dimensionais como blocos e metadados em um armazenamento.

Qual formato você deve escolher?

Escolha Arrow para passar dados tabulares entre processos analíticos em memória, incluindo uso sem cópia quando compatível. Considere Zarr para persistir arrays grandes e ler somente alguns blocos. Arrow IPC e o formato em memória são conceitos relacionados, mas diferentes.

Indicado para Apache Arrow IPC

Trocar dados tabulares colunares entre programas e linguagens compatíveis · Transferir conjuntos de dados analíticos entre ferramentas com suporte a Arrow

  • Mover dados tipados entre bibliotecas Arrow e mecanismos analíticos
  • Acessar lotes de registros aleatoriamente no formato de arquivo IPC

Indicado para Zarr

Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem

  • Ler regiões selecionadas de matrizes
  • Compartilhar dados fragmentados entre ferramentas compatíveis

Informações básicas

CampoApache Arrow IPCZarr
Extensão.arrow, .feather, .arrows.zarr
Tipo MIMEapplication/vnd.apache.arrow.file, application/vnd.apache.arrow.stream
Usos comunsTrocar dados tabulares colunares entre programas e linguagens compatíveis · Transferir conjuntos de dados analíticos entre ferramentas com suporte a ArrowGuardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem
Como abrirLeia com uma biblioteca Apache Arrow ou uma ferramenta analítica compatível com Arrow IPC. A extensão .arrow costuma indicar o formato de arquivo e .arrows o formato de fluxo, mas confirme o que a ferramenta receptora espera e quais codecs aceita. Para arquivos Feather, verifique a compatibilidade com o antigo Feather V1.Use biblioteca ou ferramenta compatível com Zarr. Confira versão, forma, blocos, codecs e atributos. Preserve todo o diretório local ou as chaves necessárias e consulte a documentação de origem.
Exportar ou converterParquet pode ser adequado para armazenar e distribuir dados analíticos; CSV, para troca simples de tabelas. A conversão pode alterar ou descartar tipos próprios do Arrow, estruturas aninhadas, codificação por dicionário ou configurações de compressão. Confira os tipos e a precisão necessários e mantenha os dados de origem.Ao converter de netCDF ou HDF5, confira dimensões, tipos, blocos, atributos e coordenadas. Guarde o original e valide os valores depois.

Escolha por finalidade

Mover dados tipados entre bibliotecas Arrow e mecanismos analíticos

Trocar dados tabulares colunares entre programas e linguagens compatíveis · Transferir conjuntos de dados analíticos entre ferramentas com suporte a Arrow

Apache Arrow IPC

Acessar lotes de registros aleatoriamente no formato de arquivo IPC

Trocar dados tabulares colunares entre programas e linguagens compatíveis · Transferir conjuntos de dados analíticos entre ferramentas com suporte a Arrow

Apache Arrow IPC

Ler regiões selecionadas de matrizes

Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem

Zarr

Compartilhar dados fragmentados entre ferramentas compatíveis

Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem

Zarr

Ponto principal 1

Arrow define layouts colunares em memória e serialização ou transporte; Zarr define nós de array, metadados, grade, codecs e armazenamento de blocos.

Mais sobre as diferenças

Ponto principal 2

Arrow usa buffers e arrays filhos adequados ao compartilhamento de memória; Zarr guarda blocos codificados independentemente para acesso parcial.

Mais sobre as diferenças

Mais sobre as diferenças

Use Arrow para intercâmbio colunar em memória e fluxos IPC compatíveis. Use Zarr para arrays persistentes em blocos. Escolha explicitamente o contêiner persistente e valide tipos, tempos, dimensões e padrões de acesso.

  • Arrow se concentra em representação em memória e serialização; Zarr descreve metadados de arrays e blocos armazenados separadamente.
  • Arrays Arrow usam buffers e arrays filhos aninhados; blocos Zarr podem ser codificados e lidos de forma independente.
  • Para persistência ou conversão, especifique Arrow IPC ou outro formato de arquivo e confira tipos, nulos, unidade/fuso horário dos timestamps, forma do array e significado dos eixos, codecs e padrões de acesso aos blocos.

Perguntas frequentes

Um array Arrow é por si só um armazenamento persistente como Zarr?

Não. Arrow se concentra em memória e serialização, exigindo um contêiner IPC ou outro para persistência; Zarr guarda blocos e metadados em um armazenamento.

Saiba mais

Referências e especificações