Advanced Data Dictionary
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
This is an open design question, not a code task: the issue lists six storage options for qsv statistics and frequency tables and does not choose one. No files or tests are named. Before any work, a maintainer (the issue asks @wardi) needs to pick an option. Done would mean a recorded decision and a scoped first step, not an implementation.
由索引模型根据 Issue 内容生成。
描述
Currently, CKAN's Data Dictionary is limited to data type, label and description.
With qsv stats we collect descriptive statistics when we infer each column's data type during the Analysis phase of a DP+ job.
Currently - sum, min/max, min/max length, mean, stddev, variance, quartiles, median, modes, cardinality & nullcount.
When cardinality = rowcount and nullcount = 0, we can infer that a column can be a primary key and be a unique index, and annotate its data dictionary accordingly (and going further, create a unique index on it after the Copy phase).
When nullcount = rowcount, we can infer that a column is empty, and note it in the data dictionary as well.
And with qsv frequency - we can also compile frequency tables for the top N values of a column, and if the cardinality of a column is below a given N threshold, we can even infer the domain of a column as enumerated values.
Since we paid for compiling the statistics when we inferred the column data types already, we can store these statistics in the data dictionary as well as "schemata" (a term I coined for schema metadata) for "free" ( or nearly free, as running qsv frequency is not currently done by DP+, but even against a large file like the 1m row, 500mb NYC 311 benchmark data, it only takes 2.8 seconds).
We have several options:
- add additional properties to the existing Data Dictionary JSON which is stored as a table comment
- keep the existing Data Dictionary JSON as is, and store
RESOURCE_NAME-stats.csvandRESOURCE_NAME-freq.csvas "system resources", that can be downloaded and queried with the CKAN API. - extend the Data Dictionary with additional properties, and also store the
-statsand-freqCSVs as system resources. - alternatively, instead of using the original Data Dictionary JSON, we can instead insert the jsonschema file produced by the
qsv schemacommand. The added benefit of doing so is that we use the jsonschema file withqsv validateto check if an external file conforms to the schema. And sinceqsv validateaccepts a jsonschema URL, you can even validate an external file against the CKAN hosted jsonschema. - Do 4, and add the "system resources" like 3.
- Store all these schemata data in a "schemata catalog" in the datastore database or a dedicated schemata database as native PostgreSQL objects. Perhaps, by using a resource's ID and adding a special prefix and/or suffix to it (e.g.
RESOURCEID_datadict,RESOURCEID_stats,RESOURCEID_freq). Doing so has the added benefit of being able to query all the data dictionaries - e.g. columns with the same name, infer related resources, suggest joins, etc. and other "Linked Data" like queries and inferences in a performant manner.
@wardi , since you originally implemented the Data Dictionary, would be keen to get your opinion.
- 主要语言
- Python
- 星标
- 47
- 派生
- 33
- 平均合并
- 2 小时 28 分钟
- 30 天内合并 PR
- 10
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
dathere/datapusher-plus 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
dathere/datapusher-plus#359 ·
维护者通常 1 天内回复
-
"Total elapsed time" in the JOB DONE line is ~1.79 billion seconds (perf_counter overwrites the time.time() start)可能已有人在做 @tino097 于 14 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 35/100
dathere/datapusher-plus#355 ·
维护者通常 1 天内回复
-
FormulaProcessing stage always skipped on CKAN 2.10+: ckan.plugins is a list, stage calls .split() on it可能已有人在做 @tino097 于 14 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 25/100
dathere/datapusher-plus#354 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
dathere/datapusher-plus#340 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 53/100
dathere/datapusher-plus#338 ·
维护者通常 1 天内回复
查看 dathere/datapusher-plus 的全部 Issue
相似的 Issue
-
needs-triage
难度 2/5 1-3 小时 新手友好度 78/100
gke-labs/kube-agents#5671 ·
维护者通常 1 天内回复
-
documentation next-release v0.9.6
难度 1/5 1 小时以内 新手友好度 88/100
khuisman/mcp-gee-sweet#1446 ·
维护者通常 1 天内回复
-
model:sonnet runtime:claude security size:S
难度 2/5 1-3 小时 新手友好度 75/100
FootprintAI/Containarium#3671 ·
维护者通常 1 天内回复
-
HolidayBase: reassigning `language` does not re-initialize translations or re-populate holidays可能已有人在做 @shikhabhadoria 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
vacanza/holidays#4116 · 1 条评论 ·
维护者通常 1 天内回复
-
bug CLI exec
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复