Shared design for DataTree tables with duckdb-zarr: one schema per node
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 12/100
Piste de recherche
This is an open design proposal, not a task with a defined change. Read the proposal and the linked #82 and xqlsystems/duckdb-zarr#52, then the existing default_table_name and resolve_table_names helpers the design reuses per node. The open questions (catalog-per-tree versus flat names, root node as default schema, table_names keys) need a maintainer decision in the thread before any code. Done means that decision is recorded, not that a patch exists.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
duckdb-zarr is adding support for Zarr stores with nested groups, such as those written by xarray.DataTree.to_zarr(). We'd like both projects to turn the same store into the same tables, with the same names, so this issue proposes a shared design. It builds on #82.
The duckdb-zarr version is decision 8 in xqlsystems/duckdb-zarr#52 (design only, no code yet).
Proposal
- A table is one dimension group in one node. It's identified by (node path, dims). Arrays in different nodes never share a table, even when their dimension names match. This is the
DataTreemodel:simulation/coarseandsimulation/finecan both havefoo(x, y)with different lengths ofx. - Tables inside a node are named with the existing rules.
default_table_name("_".join(dims)in dimension order,scalarfor none) andresolve_table_names(overrides keyed by the dims tuple, case-insensitive collision check), applied per node. - A node maps to a schema. Tree → catalog, node path → schema, dimension group → table:
- The root node is the default schema:
mainin DuckDB,publicin DataFusion. - A nested path is one quoted schema name:
sim."simulation/fine".x_y. - In DataFusion this is a
CatalogProviderwhoseSchemaProviders are the nodes, as suggested in #82.
- The root node is the default schema:
- Coordinates are inherited like xarray. A node's tables include coordinates from its ancestors for dimensions the node shares with them, the same view
dt["simulation/fine"].to_dataset()gives. - Opening one node uses xarray's word. duckdb-zarr adds
read_zarr(store, group := 'simulation/fine'), matchingxr.open_zarr(store, group=...). With nogroup, only the root node is read.
Questions for xarray-sql
- Does a catalog per tree and a schema per node fit the planned
from_datatreeAPI? Or would you rather have flat table names in one schema (for examplesimulation_fine__x_y)? - How should the root node look? Is it the default schema, or a schema named after the tree?
- Should
table_namesoverrides for a tree be keyed by(node_path, dims), with the per-nodedimskeys kept as they are? - Is anything in xarray-sql's pivot tied to one flat
Datasetthat would make inherited coordinates hard?
Why now
The immediate user is AnnData (xqlsystems/duckdb-zarr#40). An AnnData store is a tree: obs and var are nodes, and X, layers and obsm share their axes. The AnnData-specific parts come after this: naming its axes and decoding its categorical, nullable and sparse groups. Agreeing on the tree mapping first means both projects expose AnnData the same way.
- Langage dominant
- Python
- Étoiles
- 142
- Forks
- 19
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 9
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de xqlsystems/xarray-sql
-
documentation
Difficulté 1/5 1-3 heures Accessibilité débutants 85/100
xqlsystems/xarray-sql#268 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
xqlsystems/xarray-sql#267 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 74/100
xqlsystems/xarray-sql#243 ·
Les mainteneurs répondent en général sous 1 jour
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
xqlsystems/xarray-sql#242 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
xqlsystems/xarray-sql#237 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de xqlsystems/xarray-sql
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
521xueweihan/HelloGitHub#4063 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Vanilla-OS/apx-gui#112 ·
-
Devstral and Voxtral: section 5 fails in us-east-1 with 400 "Model does not support audio modality"Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
aws-samples/sample-per-model-bedrock#409 ·
Les mainteneurs répondent en général sous 1 jour
-
DuckDB 2.0 breaks to_pyarrow_batchesPeut-être pris @DG47 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
ibis-project/ibis#12196 ·
Les mainteneurs répondent en général sous 1 jour