brentley / brentley/data-profiler
Implement Candidate Key Suggestion Algorithm
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Description
Build algorithm to suggest candidate uniqueness keys (single and compound) based on cardinality and null ratios.
## Acceptance Criteria
- [ ] CandidateKeyAnalyzer class created
- [ ] Score = (distinct_ratio * (1 - null_ratio_sum))
- [ ] Suggest top 5 single-column candidates
- [ ] Suggest compound key candidates (2-3 columns)
- [ ] Tie-breaking by invalid count
- [ ] All tests pass
## Dependencies
- Distinct Counter (issue #16) ✅
- Statistical Profilers (issue #17) ✅
## Estimate
4 hours
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the outputs and interfaces provided by the completed Distinct Counter and Statistical Profilers work. Define CandidateKeyAnalyzer around the stated single- and compound-column scoring, null handling, top-five limit, and invalid-count tie-breaking. Done means the acceptance criteria are covered and all tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100