Hướng dẫn đảm bảo chất lượng và kiểm soát chất lượng (QA / QC) cho cơ sở dữ liệu


18

Lý lịch

Tôi đang giám sát việc nhập dữ liệu từ tài liệu chính vào cơ sở dữ liệu . Quá trình nhập dữ liệu dễ bị lỗi, đặc biệt vì người dùng phải diễn giải thiết kế thử nghiệm, trích xuất dữ liệu từ đồ họa và bảng và chuyển đổi kết quả sang các đơn vị được tiêu chuẩn hóa.

Dữ liệu được nhập vào cơ sở dữ liệu MySQL thông qua giao diện web. Hơn 10 nghìn điểm dữ liệu từ> 20 biến,> 100 loài và> 500 trích dẫn đã được đưa vào cho đến nay. Tôi cần chạy kiểm tra chất lượng của không chỉ dữ liệu biến đổi, mà cả dữ liệu chứa trong các bảng tra cứu, chẳng hạn như các loài liên quan đến từng điểm dữ liệu, vị trí nghiên cứu, v.v.

Nhập dữ liệu đang diễn ra, vì vậy QA / QC sẽ cần phải được chạy liên tục. Dữ liệu chưa được công bố, nhưng chúng tôi dự định sẽ phát hành chúng trong vài tháng tới.

Hiện tại, QA / QC của tôi bao gồm ba bước:

  1. người dùng thứ hai kiểm tra từng điểm dữ liệu.
  2. trực quan kiểm tra biểu đồ mỗi biến cho các ngoại lệ.
  3. người dùng báo cáo dữ liệu nghi vấn sau khi có kết quả giả.

Câu hỏi

  1. Có hướng dẫn nào tôi có thể sử dụng để phát triển quy trình QA / QC mạnh mẽ cho cơ sở dữ liệu này không?
  2. Bước đầu tiên là tốn thời gian nhất; tôi có thể làm gì để làm việc này hiệu quả hơn không?

1
Độc giả ở đây cũng sẽ quan tâm đến chủ đề sau: Kiểm tra kiểm tra dữ liệu cần thiết .
gung - Phục hồi Monica

Câu trả lời:


25

Câu trả lời này tập trung vào câu hỏi thứ hai, nhưng trong quá trình, một câu trả lời một phần cho câu hỏi đầu tiên (hướng dẫn cho thủ tục QA / QC) sẽ xuất hiện.

Cho đến nay, điều tốt nhất bạn có thể làm là kiểm tra chất lượng dữ liệu tại thời điểm nhập cảnh. Việc kiểm tra và báo cáo của người dùng là sử dụng nhiều lao động và do đó nên được bảo lưu sau này trong quá trình, càng muộn càng tốt.

Dưới đây là một số nguyên tắc, hướng dẫn và đề xuất, xuất phát từ kinh nghiệm sâu rộng (với việc thiết kế và tạo ra nhiều cơ sở dữ liệu tương đương và lớn hơn nhiều so với của bạn). Chúng không phải là quy tắc; bạn không cần phải theo họ để thành công và hiệu quả; nhưng tất cả đều ở đây vì những lý do tuyệt vời và bạn nên suy nghĩ kỹ về việc đi chệch khỏi chúng.

  1. Nhập dữ liệu riêng biệt từ tất cả các hoạt động đòi hỏi trí tuệ . Không yêu cầu các nhà khai thác nhập dữ liệu đồng thời kiểm tra bất cứ thứ gì, đếm bất cứ thứ gì, v.v. Hạn chế công việc của họ để tạo ra một bản fax dữ liệu có thể đọc được trên máy tính, không có gì hơn. Cụ thể, nguyên tắc này ngụ ý các biểu mẫu nhập dữ liệu sẽ phản ánh định dạng ban đầu bạn có được dữ liệu, không phải định dạng mà bạn dự định lưu trữ dữ liệu. Việc chuyển đổi định dạng này sang định dạng khác tương đối dễ dàng, nhưng đó là một quá trình dễ xảy ra lỗi để thử chuyển đổi khi đang nhập dữ liệu.

  2. Tạo đường dẫn kiểm toán dữ liệu : bất cứ khi nào có dữ liệu được thực hiện, bắt đầu từ giai đoạn nhập dữ liệu, hãy ghi lại tài liệu này và ghi lại quy trình theo cách giúp bạn dễ dàng quay lại và kiểm tra xem có lỗi gì không (vì mọi thứ sẽ sai). Xem xét điền vào các trường cho dấu thời gian, số nhận dạng của nhà khai thác nhập dữ liệu, số nhận dạng nguồn cho dữ liệu gốc (như báo cáo và số trang của họ), v.v. Lưu trữ rất rẻ, nhưng thời gian để theo dõi lỗi rất tốn kém.

  3. Tự động hóa mọi thứ. Giả sử bất kỳ bước nào sẽ phải được làm lại (tại thời điểm tồi tệ nhất có thể, theo Luật Murphy) và lên kế hoạch cho phù hợp. Đừng cố gắng tiết kiệm thời gian ngay bây giờ bằng cách thực hiện một vài "bước đơn giản" bằng tay.

  4. Cụ thể, tạo hỗ trợ cho việc nhập dữ liệu : tạo giao diện người dùng cho mỗi bảng (thậm chí bảng tính có thể làm tốt) cung cấp cách thức rõ ràng, đơn giản, thống nhất để nhận dữ liệu. Đồng thời, giao diện người dùng sẽ thực thi "doanh nghiệp của bạn quy tắc: "nghĩa là, nó sẽ thực hiện càng nhiều kiểm tra tính hợp lệ đơn giản càng tốt. (Ví dụ: pH phải nằm trong khoảng từ 0 đến 14; tổng số phải dương.) Lý tưởng nhất là sử dụng DBMS để thực thi kiểm tra tính toàn vẹn quan hệ (ví dụ: mọi loài liên quan đến phép đo thực sự tồn tại trong cơ sở dữ liệu).

  5. Liên tục đếm mọi thứ và kiểm tra mà đếm chính xác đồng ý. Ví dụ, nếu một nghiên cứu được cho là đo các thuộc tính của 10 loài, hãy đảm bảo (ngay khi nhập dữ liệu hoàn tất) rằng 10 loài thực sự được báo cáo. Mặc dù việc kiểm tra số lượng rất đơn giản và không chính xác, nhưng thật tuyệt vời khi phát hiện dữ liệu trùng lặp và bị bỏ qua.

  6. Nếu dữ liệu có giá trị và quan trọng, hãy xem xét nhập hai lần độc lập toàn bộ dữ liệu . Điều này có nghĩa là mỗi mục sẽ được nhập vào những thời điểm riêng biệt bởi hai người không tương tác khác nhau. Đây là một cách tuyệt vời để bắt lỗi chính tả, thiếu dữ liệu, v.v. Việc kiểm tra chéo có thể hoàn toàn tự động. Điều này nhanh hơn, tốt hơn trong việc bắt lỗi và hiệu quả hơn so với kiểm tra kép thủ công 100%. (Mục nhập "người" có thể bao gồm các thiết bị như máy quét với OCR.)

  7. Sử dụng DBMS để lưu trữ và quản lý dữ liệu. Bảng tính rất tốt để hỗ trợ nhập dữ liệu, nhưng hãy lấy dữ liệu của bạn ra khỏi bảng tính hoặc tệp văn bản và vào cơ sở dữ liệu thực tế càng sớm càng tốt. Điều này ngăn chặn tất cả các loại lỗi ngấm ngầm trong khi thêm nhiều hỗ trợ để kiểm tra tính toàn vẹn dữ liệu tự động. Nếu bạn phải, sử dụng phần mềm thống kê của bạn để lưu trữ và quản lý dữ liệu, nhưng nghiêm túc xem xét sử dụng DBMS chuyên dụng: nó sẽ thực hiện công việc tốt hơn.

  8. Sau khi tất cả dữ liệu được nhập và tự động kiểm tra, hãy vẽ hình ảnh : tạo các bảng được sắp xếp, biểu đồ, biểu đồ phân tán, v.v. và xem xét tất cả. Chúng dễ dàng tự động với bất kỳ gói thống kê chính thức nào.

  9. Đừng yêu cầu mọi người thực hiện các nhiệm vụ lặp đi lặp lại mà máy tính có thể làm . Máy tính nhanh hơn và đáng tin cậy hơn nhiều. Tập thói quen viết (và ghi lại) các tập lệnh nhỏ và các chương trình nhỏ để thực hiện bất kỳ nhiệm vụ nào không thể hoàn thành ngay lập tức. Chúng sẽ trở thành một phần của lộ trình kiểm toán của bạn và chúng sẽ cho phép công việc được làm lại dễ dàng. Sử dụng bất kỳ nền tảng nào bạn thấy thoải mái và phù hợp với nhiệm vụ. (Trong nhiều năm qua, tùy thuộc vào những gì có sẵn, tôi đã sử dụng một loạt các nền tảng như vậy và tất cả đều có hiệu quả theo cách của họ, từ các chương trình C và Fortran thông qua các tập lệnh AWK và SED, tập lệnh VBA cho Excel và Word, và tùy chỉnh các chương trình được viết cho các hệ thống cơ sở dữ liệu quan hệ, GIS và các nền tảng phân tích thống kê như R và Stata.)

Nếu bạn tuân theo hầu hết các hướng dẫn này, khoảng 50% -80% công việc nhận dữ liệu vào cơ sở dữ liệu sẽ là thiết kế cơ sở dữ liệu và viết các tập lệnh hỗ trợ. Không có gì lạ khi nhận được 90% thông qua một dự án như vậy và hoàn thành chưa đến 50%, nhưng vẫn hoàn thành đúng hạn: một khi mọi thứ đã được thiết lập và đã được kiểm tra, việc nhập và kiểm tra dữ liệu có thể hiệu quả đáng kinh ngạc.


4
Chà, tôi khá thích câu trả lời này. Tôi muốn nhấn mạnh rằng, trong điểm 4 sau, bạn nên giữ cho việc kiểm tra đơn giản - thường có một chút không thống nhất trong dữ liệu thực mà người nhập cảnh của bạn sẽ có thể nhập nhưng bạn sẽ không thể biết trước. Ví dụ, tôi đảm bảo rằng ngày được nhập dưới dạng ngày; nhưng tôi đã ngừng có các quy tắc cứng về phạm vi ngày và thay vào đó hãy kiểm tra xem có báo cáo hay không và theo dõi các giá trị ngoài giới hạn với bất kỳ ai đã nhập dữ liệu.
Matt Parker

5
Ngăn chặn ai đó nhập một giá trị mà họ cho là đúng có thể gây ra nhiều lỗi hơn là phát hiện và điều tra nó.
Matt Parker

+1, câu trả lời tuyệt vời. Tôi đồng ý với Matt, tôi cũng rất thích câu trả lời này :)
mpiktas

1
@Matt Điểm tốt, cả hai. Tôi hoàn toàn đồng ý. Liên quan đến cách đầu tiên, một cách tiếp cận tốt là kiểm tra các thủ tục nhập dữ liệu trên một tập hợp con đại diện nhỏ của dữ liệu và xem xét kỹ lưỡng tất cả các vấn đề phát sinh. Điều này sẽ không giải quyết mọi thứ có thể xảy ra, nhưng nó sớm xác định hầu hết các vấn đề lớn và cho phép bạn giải quyết chúng một cách hiệu quả.
whuber

2
Thêm thông tin này là hữu ích ở một nơi. 1. Tạo một tài liệu quy tắc kinh doanh có chứa dữ liệu meta. bao gồm các quy tắc được sử dụng để tạo ra các biến xuất phát như tuổi. 2. Nếu đây là cơ sở dữ liệu quản trị cụ thể, giả sử rằng các biến sẽ thay đổi theo thời gian, ví dụ: các mã mới được thêm vào. Trong siêu dữ liệu, giải thích khi thay đổi xảy ra và cách điều này có thể ảnh hưởng đến bất kỳ chuỗi thời gian nào hoạt động. 3. Nếu cơ sở dữ liệu sẽ được thêm vào theo thời gian, ngày và dấu thời gian sẽ thay đổi cơ sở dữ liệu.
Michelle

3

DataOne cung cấp một tập hợp hữu ích các thực tiễn tốt nhất về quản lý dữ liệu có thể được lọc theo thẻ. Các thực tiễn tốt nhất được gắn thẻ "chất lượng", được tìm thấy tại http://www.dataone.org/best-practices/quality , nhắc lại và mở rộng trên nhiều điểm được thực hiện bởi @whuber. Dưới đây là danh sách các chủ đề được đề cập ở đó (theo thứ tự bảng chữ cái):

  • Truyền đạt chất lượng dữ liệu
  • Xác nhận sự trùng khớp giữa dữ liệu và mô tả của chúng trong siêu dữ liệu
  • Xem xét tính tương thích của dữ liệu bạn đang tích hợp
  • Xây dựng kế hoạch kiểm soát chất lượng và đảm bảo chất lượng
  • Kiểm tra kỹ dữ liệu bạn nhập
  • Đảm bảo kiểm soát chất lượng cơ bản
  • Đảm bảo tính toàn vẹn và khả năng truy cập khi thực hiện sao lưu dữ liệu
  • Xác định các ngoại lệ
  • Xác định các giá trị được ước tính
  • Cung cấp thông tin phiên bản để sử dụng và khám phá
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.