Advanced Data Dictionary
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 8/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 47
- Fork
- 33
- Merge trung bình
- 2 giờ 28 phút
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dathere/datapusher-plus
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
dathere/datapusher-plus#359 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
"Total elapsed time" in the JOB DONE line is ~1.79 billion seconds (perf_counter overwrites the time.time() start)Có thể đã có người làm @tino097 đã nhận 14 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
dathere/datapusher-plus#355 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
FormulaProcessing stage always skipped on CKAN 2.10+: ckan.plugins is a list, stage calls .split() on itCó thể đã có người làm @tino097 đã nhận 14 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
dathere/datapusher-plus#354 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
dathere/datapusher-plus#340 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Prefect requires Sqlalchemy2Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 53/100
dathere/datapusher-plus#338 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của dathere/datapusher-plus
Issue tương tự
-
needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
gke-labs/kube-agents#5671 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs(auth): Method B step 4 should tell users to tick "Use this client for an AI-powered agent"Đang mởdocumentation next-release v0.9.6
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
khuisman/mcp-gee-sweet#1446 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
In-box secret files written before their chmod: lc-creds, stacks tee, and the workspace tokenĐang mởmodel:sonnet runtime:claude security size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
FootprintAI/Containarium#3671 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
HolidayBase: reassigning `language` does not re-initialize translations or re-populate holidaysCó thể đã có người làm @shikhabhadoria đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
vacanza/holidays#4116 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug CLI exec
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày