brentley / brentley/data-profiler

Implement Candidate Key Suggestion Algorithm

Open
#21 1 comment 0 reactions 0 assignees View on GitHub
feature phase-4 priority-high
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.