Wytyczne dotyczące zapewniania jakości i kontroli jakości (QA / QC) dla bazy danych

18

tło

Nadzoruję wprowadzanie danych z literatury podstawowej do bazy danych . Proces wprowadzania danych jest podatny na błędy, szczególnie dlatego, że użytkownicy muszą interpretować projekt eksperymentalny, wyodrębniać dane z grafiki i tabel oraz przekształcać wyniki w znormalizowane jednostki.

Dane są wprowadzane do bazy danych MySQL przez interfejs sieciowy. Dotychczas uwzględniono ponad 10 000 punktów danych z> 20 zmiennych,> 100 gatunków i> 500 cytowań. Muszę przeprowadzić kontrolę jakości nie tylko danych zmiennych, ale także danych zawartych w tabelach odnośników, takich jak gatunki powiązane z każdym punktem danych, lokalizacja badania itp.

Wprowadzanie danych jest w toku, więc QA / QC będzie musiała być uruchamiana z przerwami. Dane nie zostały jeszcze publicznie udostępnione, ale planujemy je opublikować w ciągu najbliższych kilku miesięcy.

Obecnie moja kontrola jakości składa się z trzech etapów:

  1. drugi użytkownik sprawdza każdy punkt danych.
  2. wizualnie sprawdź histogram każdej zmiennej pod kątem wartości odstających.
  3. użytkownicy zgłaszają wątpliwe dane po uzyskaniu fałszywych wyników.

pytania

  1. Czy istnieją wytyczne, których mogę użyć do opracowania solidnej procedury kontroli jakości / kontroli jakości dla tej bazy danych?
  2. Pierwszy krok jest najbardziej czasochłonny; czy jest coś, co mogę zrobić, aby uczynić to bardziej wydajnym?
David LeBauer
źródło
1
Czytelnicy tutaj będą również zainteresowani następującym wątkiem: Testy sprawdzania podstawowych danych .
gung - Przywróć Monikę

Odpowiedzi:

25

Ta odpowiedź koncentruje się na drugim pytaniu, ale w trakcie tego procesu pojawi się częściowa odpowiedź na pierwsze pytanie (wytyczne dotyczące procedury kontroli jakości / kontroli jakości).

Zdecydowanie najlepszą rzeczą, jaką możesz zrobić, to sprawdzić jakość danych podczas próby wprowadzenia danych. Kontrole użytkowników i raporty są pracochłonne i dlatego należy je zarezerwować na później, jak to możliwe.

Oto niektóre zasady, wytyczne i sugestie wynikające z dużego doświadczenia (z projektowaniem i tworzeniem wielu baz danych porównywalnych i znacznie większych niż twoje). Nie są regułami; nie musisz ich przestrzegać, aby odnieść sukces i skutecznie; ale wszystkie są tutaj z doskonałych powodów i powinieneś ciężko myśleć o odstępstwie od nich.

  1. Oddzielne wprowadzanie danych od wszystkich wymagających intelektualnie czynności . Nie należy jednocześnie prosić operatorów wprowadzania danych o sprawdzenie czegokolwiek, policzenie czegokolwiek itp. Ogranicz ich pracę do stworzenia czytelnego dla komputera faksu danych, nic więcej. W szczególności zasada ta oznacza, że ​​formularze do wprowadzania danych powinny odzwierciedlać format, w którym pierwotnie uzyskano dane, a nie format, w którym planujesz przechowywać dane. Później stosunkowo łatwo jest przekształcić jeden format na inny, ale jest to podatny na błędy proces próby transformacji w locie podczas wprowadzania danych.

  2. Utwórz ścieżkę audytu danych : za każdym razem, gdy cokolwiek zostanie zrobione z danymi, począwszy od etapu wprowadzania danych, udokumentuj to i zapisz procedurę w sposób, który ułatwia powrót i sprawdzanie, co poszło źle (ponieważ coś pójdzie nie tak). Rozważ wypełnienie pól znaczników czasu, identyfikatorów operatorów wprowadzania danych, identyfikatorów źródeł oryginalnych danych (takich jak raporty i ich numery stron) itp. Przechowywanie jest tanie, ale czas na znalezienie błędu jest kosztowny.

  3. Zautomatyzuj wszystko. Załóż, że każdy krok będzie musiał zostać powtórzony (w najgorszym możliwym czasie, zgodnie z prawem Murphy'ego) i odpowiednio zaplanuj. Nie próbuj teraz oszczędzać czasu, wykonując ręcznie kilka „prostych kroków”.

  4. W szczególności stwórz obsługę wprowadzania danych : utwórz interfejs dla każdej tabeli (nawet arkusz kalkulacyjny może to zrobić), który zapewnia przejrzysty, prosty i jednolity sposób pozyskiwania danych. Jednocześnie interfejs powinien egzekwować Twoją „firmę” rules: „oznacza to, że powinien wykonać tak wiele prostych kontroli poprawności, jak to możliwe. (Np. PH musi wynosić od 0 do 14; liczby muszą być dodatnie.) Idealnie, użyj DBMS do wymuszenia kontroli integralności relacyjnej (np. Każdy gatunek powiązany z pomiarem naprawdę istnieje w bazie danych).

  5. Stale policz rzeczy i sprawdź, czy liczy się dokładnie zgoda. Na przykład, jeśli badanie ma mierzyć atrybuty 10 gatunków, upewnij się (jak tylko wprowadzanie danych zostanie zakończone), że 10 gatunków naprawdę jest zgłaszanych. Chociaż sprawdzanie liczby jest proste i nie zawiera informacji, świetnie sprawdza się w wykrywaniu zduplikowanych i pominiętych danych.

  6. Jeśli dane są cenne i ważne, rozważ niezależne podwójne wprowadzenie całego zestawu danych . Oznacza to, że każda pozycja zostanie wprowadzona w osobnym czasie przez dwie różne osoby nie wchodzące w interakcje. Jest to świetny sposób na wyłapywanie literówek, brakujących danych itd. Kontrola krzyżowa może być całkowicie zautomatyzowana. Jest to szybsze, lepiej wychwytuje błędy i wydajniejsze niż 100% ręczne sprawdzanie podwójne. (Wprowadzane dane „osoby” mogą obejmować urządzenia takie jak skanery z OCR.)

  7. Użyj DBMS do przechowywania danych i zarządzania nimi. Arkusze kalkulacyjne świetnie nadają się do obsługi wprowadzania danych, ale jak najszybciej wyciągnij dane z arkuszy kalkulacyjnych lub plików tekstowych do prawdziwej bazy danych. Zapobiega to wszelkiego rodzaju podstępnym błędom, dodając jednocześnie wiele funkcji automatycznego sprawdzania integralności danych. Jeśli musisz, użyj oprogramowania statystycznego do przechowywania danych i zarządzania nimi, ale poważnie zastanów się nad użyciem dedykowanego DBMS: zrobi to lepiej.

  8. Po wprowadzeniu i automatycznym sprawdzeniu wszystkich danych narysuj obrazy : ułóż posortowane tabele, histogramy, wykresy rozrzutu itp. I spójrz na wszystkie. Można je łatwo zautomatyzować za pomocą dowolnego pełnoprawnego pakietu statystycznego.

  9. Nie proś ludzi o wykonywanie powtarzalnych zadań, które komputer może wykonać . Komputer jest znacznie szybszy i bardziej niezawodny. Nabierz nawyku pisania (i dokumentowania) małych skryptów i małych programów do wykonywania zadań, których nie można natychmiast wykonać. Będą one częścią twojej ścieżki audytu i umożliwią łatwe ponowne wykonanie pracy. Użyj dowolnej platformy, na której czujesz się komfortowo i która jest odpowiednia do tego zadania. (Przez lata, w zależności od tego, co było dostępne, korzystałem z szerokiej gamy takich platform i wszystkie były skuteczne na ich drodze, od programów C i Fortran po skrypty AWK i SED, skrypty VBA dla Excela i Worda oraz niestandardowe programy napisane dla systemów relacyjnych baz danych, GIS i platform analizy statystycznej, takich jak R i Stata.)

Jeśli zastosujesz się do większości tych wytycznych, około 50% -80% pracy przy pobieraniu danych do bazy danych będzie projektowanie bazy danych i pisanie skryptów pomocniczych. Nie jest niczym niezwykłym uzyskanie 90% dzięki takiemu projektowi i ukończenie go w mniej niż 50%, a mimo to ukończenie go na czas: gdy wszystko zostanie już skonfigurowane i przetestowane, wprowadzanie danych i sprawdzanie może być niezwykle wydajne.

Whuber
źródło
4
Cóż, jestem prawie zakochany w tej odpowiedzi. Chciałbym podkreślić, że w poniższym punkcie 4 powinieneś uprościć kontrole - w rzeczywistych danych często występują niewielkie rozbieżności, do których Twoi wstępujący powinni mieć dostęp, ale których nie będziesz w stanie przewidzieć. Na przykład upewniam się, że daty są wprowadzane jako daty; ale przestałem mieć twarde reguły dotyczące zakresów dat, a zamiast tego sprawdzam to za pomocą raportów i śledzę wartości poza granicami z kimkolwiek, kto wprowadził dane.
Matt Parker
5
Uniemożliwienie komuś wpisania wartości, którą uważa za słuszną, może spowodować więcej błędów niż wykrycie i zbadanie jej.
Matt Parker
+1, świetna odpowiedź. Zgadzam się z Mattem, ja też uwielbiam tę odpowiedź :)
mpiktas
1
@Matt Dobre punkty, oba. Całkowicie się zgadzam. Jeśli chodzi o pierwszy, dobrym podejściem jest przetestowanie procedur wprowadzania danych w małym reprezentatywnym podzbiorze danych i dokładne omówienie wszystkich pojawiających się problemów. Nie rozwiąże to wszystkiego, co może się pojawić, ale na wczesnym etapie rozpoznaje najważniejsze problemy i pozwala skutecznie sobie z nimi poradzić.
whuber
2
Dodanie tej informacji jest przydatne w jednym miejscu. 1. Utwórz dokument reguł biznesowych zawierający metadane. w tym reguły stosowane do tworzenia zmiennych pochodnych, takich jak wiek. 2. Jeśli jest to w szczególności administracyjna baza danych, załóż, że zmienne będą się zmieniać w czasie, np. Dodawane są nowe kody. W metadanych wyjaśnij, kiedy nastąpiła zmiana i jak może to wpłynąć na działanie szeregu czasowego. 3. Jeśli baza danych zostanie dodana z czasem, data i znacznik czasu zmienią się w bazie danych.
Michelle,
3

DataOne zapewnia pomocny zestaw najlepszych praktyk zarządzania danymi, które można filtrować według znaczników. Najlepsze praktyki oznaczone jako „jakość”, znalezione na stronie http://www.dataone.org/best-practices/quality , powtarzające i rozwijające wiele kwestii poruszonych przez @whuber. Oto lista poruszonych tam tematów (w kolejności alfabetycznej):

  • Komunikuj jakość danych
  • Potwierdź dopasowanie danych do ich opisu w metadanych
  • Zastanów się nad zgodnością integrowanych danych
  • Opracuj plan zapewnienia jakości i kontroli jakości
  • Sprawdź dwukrotnie wprowadzone dane
  • Zapewnij podstawową kontrolę jakości
  • Zapewnij integralność i dostępność podczas tworzenia kopii zapasowych danych
  • Zidentyfikuj wartości odstające
  • Zidentyfikuj oszacowane wartości
  • Podaj informacje o wersji do użytku i wykrywania
David LeBauer
źródło