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
| Campo | Apache Arrow IPC | Zarr |
|---|---|---|
| Extensão | .arrow, .feather, .arrows | .zarr |
| Tipo MIME | application/vnd.apache.arrow.file, application/vnd.apache.arrow.stream | |
| Usos comuns | Trocar dados tabulares colunares entre programas e linguagens compatíveis · Transferir conjuntos de dados analíticos entre ferramentas com suporte a Arrow | Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem |
| Como abrir | Leia 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 converter | Parquet 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 IPCAcessar 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 IPCLer regiões selecionadas de matrizes
Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem
ZarrCompartilhar dados fragmentados entre ferramentas compatíveis
Guardar grandes matrizes multidimensionais em blocos · Trabalhar com dados científicos em armazenamento de objetos na nuvem
ZarrPonto 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çasPonto 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çasMais 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.