Làm cách nào để mọi người chăm sóc dữ liệu tốt hơn?


42

Nơi làm việc của tôi có nhân viên từ rất nhiều ngành, vì vậy chúng tôi tạo dữ liệu theo nhiều hình thức khác nhau. Do đó, mỗi đội đã phát triển hệ thống riêng để lưu trữ dữ liệu. Một số sử dụng cơ sở dữ liệu Access hoặc SQL; một số nhóm (với sự kinh hoàng của tôi) phụ thuộc gần như hoàn toàn vào bảng tính Excel. Thông thường, các định dạng dữ liệu thay đổi từ dự án để dự án. Trong một số trường hợp gọi nó là "hệ thống" là quá tốt.

Vấn đề này đòi hỏi là tôi phải viết mã mới để làm sạch dữ liệu cho mọi dự án, rất tốn kém; mọi người tự chỉnh sửa bảng tính làm cho khả năng tái tạo và kiểm tra dữ liệu gần như không thể; và thậm chí tệ hơn, có khả năng dữ liệu bị mất hoặc làm sai.

Tôi đã có cơ hội để thảo luận về những vấn đề này với một thành viên hội đồng quản trị của công ty và tôi cần tìm ra những gì để nói với anh ta. Tôi nghĩ rằng tôi đã thuyết phục anh ta rằng chúng ta có một vấn đề và rằng việc làm đúng này sẽ giúp khoa học tốt hơn và tiết kiệm tiền. Câu hỏi là: chúng ta nên nhắm đến điều gì và làm thế nào để đến đó?

Cụ thể hơn:

Làm thế nào chúng ta nên lưu trữ dữ liệu, theo cách cho phép chúng ta theo dõi nó từ sáng tạo đến xuất bản trong một bài báo? (Cơ sở dữ liệu được lưu trữ trên một máy chủ trung tâm?)

Làm thế nào để bạn đi về tiêu chuẩn hóa các định dạng cơ sở dữ liệu?

Có tài nguyên tốt nào để giáo dục mọi người về cách chăm sóc dữ liệu không? (Theo nguyên tắc chung, các kỹ sư vệ sinh lao động và kỹ sư chất nổ không phải là dữ liệu mọt sách; vì vậy nội dung phi kỹ thuật được ưa thích.)


Câu hỏi tiêu đề khác với câu hỏi thực chất trong bài. Người trước hỏi về cách thuyết phục mọi người chăm sóc dữ liệu, và người sau hỏi về cách tốt nhất để lưu trữ dữ liệu. Đó là câu hỏi bạn muốn trả lời?
Phục hồi Monica

Câu trả lời:


16

Thật đáng để xem xét ý tưởng từ thế giới phần mềm. Cụ thể, bạn có thể nghĩ đến việc thiết lập: kho lưu trữ kiểm soát phiên bản và máy chủ cơ sở dữ liệu trung tâm.

Kiểm soát phiên bản có thể giúp bạn thoát khỏi các tệp nổi miễn phí khác, chẳng hạn như Excel và tệp văn bản, v.v. Nhưng điều này cũng có thể bao gồm các tệp được liên kết với dữ liệu, chẳng hạn như R, SAS, v.v. Ý tưởng là có một hệ thống theo dõi các thay đổi đối với các tập tin của bạn cho phép bạn biết những gì đã xảy ra khi và quay trở lại một điểm trong quá khứ nếu cần.

Khi bạn đã có cơ sở dữ liệu SQL, điều tốt nhất bạn có thể làm là thiết lập một máy chủ trung tâm và thuê một DBA có khả năng . DBA là người được giao nhiệm vụ đảm bảo và bảo đảm tính toàn vẹn của dữ liệu. Một phần của mô tả công việc liên quan đến những thứ như sao lưu và điều chỉnh. Nhưng một phần khác có liên quan hơn ở đây - kiểm soát cách dữ liệu xâm nhập vào hệ thống, đảm bảo đáp ứng các ràng buộc, các chính sách truy cập được áp dụng để ngăn chặn tác hại đối với dữ liệu, thiết lập chế độ xem để hiển thị các định dạng dữ liệu tùy chỉnh hoặc đơn giản hóa, v.v. thực hiện một phương pháp xung quanh quá trình dữ liệu. Ngay cả khi bạn không thuê một DBA thực tế (những người giỏi rất khó tuyển dụng), việc có một máy chủ trung tâm vẫn cho phép bạn bắt đầu suy nghĩ về việc đưa ra một loại phương pháp nào đó xung quanh dữ liệu.


3
Hoàn toàn đồng ý về việc kiểm soát phiên bản. Tôi dùng nó; cũng như một tỷ lệ đáng kể của các nhà phát triển và thống kê. . Bất kỳ ý tưởng đánh giá cao.
Bông Richie

2
@Richie Cotton: Tôi không biết tại sao, nhưng kiểm soát phiên bản dường như là một khái niệm khó hiểu đối với những người không chuyên về công nghệ. Mọi người tiếp tục chỉ thực hiện một số thay đổi cho một tệp, đổi tên nó và gửi qua email. Làm thế nào tôi ghét những tập tin "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico

12

1
Liên kết tuyệt vời. Tôi nghĩ rằng hai thông điệp quan trọng để tôi chuyển qua là: chúng tôi cần kiểm tra dữ liệu tự động hơn và tôi cần bắt đầu giải thích về việc tách dữ liệu nhập và trình bày dữ liệu.
Bông Richie

6

Tôi nghĩ trước hết bạn phải tự hỏi: tại sao mọi người sử dụng Excel để thực hiện các nhiệm vụ mà Excel không được thực hiện?

1) Họ đã biết cách sử dụng nó 2) Nó hoạt động. Có thể theo một cách vụng về nhưng nó hoạt động và đó là những gì họ muốn

Tôi sao chép một loạt các số, nhấn nút và tôi có một âm mưu. Dễ như thế.

Vì vậy, làm cho họ hiểu những lợi thế họ có thể có bằng cách sử dụng bộ dữ liệu tập trung, cơ sở dữ liệu phù hợp (lưu ý rằng Access KHÔNG phải là một trong số đó), v.v. Nhưng hãy nhớ hai điểm trên: bạn cần thiết lập một hệ thống hoạt động và nó dễ sử dụng.

Tôi đã thấy quá nhiều lần các hệ thống được tạo ra tồi tệ khiến tôi muốn quay lại không phải với Excel mà là bút và giấy!

Chỉ là một ví dụ, chúng tôi có một hệ thống đặt hàng khủng khiếp nơi tôi làm việc.

Chúng tôi thường phải điền vào một mẫu đơn đặt hàng là bảng tính Excel nơi bạn sẽ nhập tên của sản phẩm, số lượng, giá thành, v.v. Nó sẽ thêm mọi thứ lên, thêm TVA, v.v., bạn đã in nó, đưa nó vào người thư ký sẽ ra lệnh và thế là xong. Không hiệu quả, nhưng nó đã làm việc.

Bây giờ chúng tôi có một hệ thống đặt hàng trực tuyến, với một DB tập trung và tất cả mọi thứ. Đó là một nỗi kinh hoàng. Tôi không mất 10 phút để điền vào một hình thức chết tiệt vì các phím tắt đơn vị trực quan và các phần mềm khác nhau của phần mềm. Và lưu ý rằng tôi khá am hiểu về tin học, vì vậy hãy tưởng tượng những gì xảy ra với những người không thích máy tính ...


Đồng ý rằng mọi thứ cần phải thân thiện với người dùng. Vì mọi người rất bảo vệ các hoạt động làm việc của họ, mọi thay đổi phải giúp cuộc sống của mọi người dễ dàng hơn hoặc họ sẽ thất bại.
Bông Richie

5

Tôi nhấn mạnh tất cả các câu trả lời đã được đưa ra, nhưng hãy gọi một con mèo là mèo: trong nhiều không gian làm việc, khó có thể thuyết phục quản lý rằng đầu tư vào các công cụ mềm "kỳ lạ" (đó là kỳ lạ đối với họ) là cần thiết, chứ đừng nói đến việc thuê ai đó có thể đặt ra nó lên và duy trì nó Tôi đã nói với khá nhiều khách hàng rằng họ sẽ được hưởng lợi rất nhiều từ việc thuê một nhà thống kê với nền tảng kỹ lưỡng về phần mềm và cơ sở dữ liệu, nhưng "không thể làm được" là câu trả lời chung.

Vì vậy, miễn là điều đó sẽ không xảy ra, có một số điều đơn giản bạn có thể làm với Excel sẽ giúp cuộc sống dễ dàng hơn. Và đầu tiên của điều này là không có nghi ngờ kiểm soát phiên bản. Thông tin thêm về kiểm soát phiên bản với Excel có thể được tìm thấy ở đây .

Một số điều về việc sử dụng excel

Những người sử dụng EXCEL rất thường thích các tính năng công thức của EXCEL. Tuy nhiên, đây là nguồn lỗi quan trọng nhất trong các trang EXCEL và các vấn đề khi cố đọc trong các tệp EXCEL theo như kinh nghiệm của tôi. Tôi từ chối làm việc với các tờ có chứa công thức.

Tôi cũng buộc mọi người tôi làm việc cùng cung cấp các tờ EXCEL ở định dạng đơn giản, nghĩa là:

  • Hàng đầu tiên chứa tên của các biến khác nhau
  • Bảng tính bắt đầu trong ô A1
  • Tất cả dữ liệu được đặt trong các cột, không bị gián đoạn và không có định dạng.
  • Nếu có thể, dữ liệu cũng được lưu ở định dạng .csv. Không khó để viết một tập lệnh VBA sẽ trích xuất dữ liệu, định dạng lại và đặt nó vào tệp .csv. Điều này cũng cho phép kiểm soát phiên bản tốt hơn, vì bạn có thể tạo ra một .csv dữ liệu mỗi ngày.

Nếu có một cấu trúc chung mà dữ liệu luôn có, thì có thể tốt để phát triển một mẫu với các macro VB cơ bản để thêm dữ liệu và tạo tập dữ liệu để phân tích. Điều này nói chung sẽ tránh việc mọi nhân viên đưa ra hệ thống lưu trữ dữ liệu "thiên tài" của riêng mình và nó cho phép bạn viết mã theo chức năng này.

Điều này nói rằng, nếu bạn có thể thuyết phục mọi người sử dụng SQL (và một giao diện người dùng để nhập dữ liệu), bạn có thể liên kết R trực tiếp với cái đó. Điều này sẽ tăng hiệu suất rất nhiều.

Cấu trúc và quản lý dữ liệu

Theo nguyên tắc chung, dữ liệu được lưu trữ trong cơ sở dữ liệu (hoặc bảng EXCEL nếu họ khăng khăng) phải là mức tối thiểu tuyệt đối, có nghĩa là không nên chứa bất kỳ biến nào có thể được tính từ một số biến khác trong cơ sở dữ liệu. Hãy nhớ rằng, đôi khi cũng có thể có ích khi lưu trữ các biến xuất phát hoặc biến đổi đó, nếu các phép tính tẻ nhạt và mất nhiều thời gian. Nhưng những thứ này nên được lưu trữ trong một cơ sở dữ liệu riêng biệt, nếu cần được liên kết với cơ sở dữ liệu gốc.

Suy nghĩ cũng nên được đưa ra cho những gì được coi là một trường hợp (và do đó một hàng). Như một ví dụ, mọi người có xu hướng tạo ra chuỗi thời gian bằng cách tạo một biến mới cho mỗi điểm thời gian. Mặc dù điều này có ý nghĩa trong một EXCEL, nhưng việc đọc trong các dữ liệu này đòi hỏi khá nhiều lần lật xung quanh ma trận dữ liệu. Tương tự cho việc so sánh các nhóm: Nên có một chỉ số nhóm và một biến trả lời, không phải là biến trả lời cho mỗi nhóm. Cách này cấu trúc dữ liệu có thể được tiêu chuẩn hóa là tốt.

Một điều cuối cùng tôi gặp phải thường xuyên, là việc sử dụng các số liệu khác nhau. Độ dài được tính bằng mét hoặc centimet, nhiệt độ tính bằng Celcius, Kelvin hoặc Farenheit, ... Người ta phải chỉ ra ở bất kỳ mặt trước hoặc bất kỳ mẫu nào đơn vị đo biến số.

Và thậm chí sau tất cả những điều này, bạn vẫn muốn có một bước kiểm soát dữ liệu trước khi bạn thực sự bắt đầu với việc phân tích. Một lần nữa, đây có thể là bất kỳ tập lệnh nào chạy hàng ngày (ví dụ qua đêm) trên các mục mới và đánh dấu các vấn đề ngay lập tức (ngoài phạm vi, loại sai, trường bị thiếu, ...) để chúng có thể được sửa nhanh nhất có thể. Nếu bạn phải quay lại mục đã được thực hiện 2 tháng trước để tìm hiểu điều gì sai và tại sao, tốt hơn bạn nên lấy một số "kỹ năng Sherlock" tốt để sửa nó.

2 xu của tôi


Một số điểm rất thú vị ở đây. Thuyết phục mọi người đơn giản hóa và tiêu chuẩn hóa bảng tính của họ có khả năng thành công hơn là khiến họ từ bỏ chúng. Ngoài ra, tôi không biết rằng kiểm soát phiên bản có thể tích hợp với Excel. Rất vui được biết.
Bông Richie

2
Liên quan đến lời khuyên không lưu trữ các biến dư thừa: điều này phù hợp với RDBMS nhưng tôi muốn đề xuất rằng điều ngược lại nên được khuyến khích cho các bảng tính. Cái sau dễ bị lỗi đến mức các cơ chế phát hiện và sửa lỗi là vô giá. Một trong những thông tin tốt nhất bao gồm thông tin dư thừa, chẳng hạn như các trường được tính toán và tóm tắt thống kê. Ví dụ: nếu cột C là tỷ lệ của cột A và B, thì một lỗi trong một cột trong bất kỳ hàng nào có thể được phát hiện và thường được sửa.
whuber

1
@whuber: đó là những gì chúng tôi kiểm tra trong bước kiểm soát dữ liệu. Bạn có thể sử dụng cột bổ sung đó để kiểm tra nhanh, nhưng bạn không nên giữ nó trong bảng cuối cùng. Các công thức trong bảng tính là kinh dị và bảng tính càng lớn thì càng khó lấy dữ liệu ra khỏi nó. Ngoài ra, trong trường hợp Excel, bạn sẽ chiến đấu với sự khác biệt giữa .xls và .xlsx. Hãy chắc chắn rằng quyết định của người quản lý cập nhật Microsoft Office có thể phá vỡ hàng tấn mã nếu bạn phụ thuộc nhiều vào các tệp excel. Vì vậy: lưu dưới dạng csv và giữ các tệp csv này càng nhỏ càng tốt.
Joris Meys

Sau khi dành một phần đáng kể trong 24 năm cuối cùng của sự nghiệp để đối phó với dữ liệu được truyền trong bảng tính và quản lý cơ sở dữ liệu quan trọng, tôi phải không đồng ý. Không có thứ gọi là "kiểm soát" trên bảng tính (cho dù .xls, .xlsx, .wks, .wb *, v.v.) hoặc thậm chí các tệp csv. Sự hiện diện của thông tin dư thừa trong các tệp như vậy - ngay cả khi chúng chỉ có sẵn ở dạng in - đã nhiều lần phục hồi một số cơ sở dữ liệu khá lớn (100k + bản ghi). Mỗi khi điều này xảy ra, tôi (và khách hàng của tôi) đều biết ơn những thứ dư thừa.
whuber

@whuber: Chúng tôi kiểm soát dữ liệu với các tập lệnh bổ sung, tìm kiếm các giá trị / ngoại lệ / trường hợp lẻ không thể. Đó là những gì tôi muốn nói với bước kiểm soát dữ liệu. Đây là btw tiêu chuẩn công nghiệp trong các công ty như SGS và các công ty khác đang phân tích các thử nghiệm lâm sàng, vv Thông tin dư thừa cần thiết được lưu giữ trong các cơ sở dữ liệu riêng biệt. Nếu một trong số họ thất bại, cái còn lại là cần thiết cho sự phục sinh. Trong trường hợp bạn không có một hệ thống sao lưu hợp lý, đó là ...
Joris Meys

3

VisTrails: Hệ thống chứng minh và quy trình làm việc khoa học dựa trên Python . Bài nói chuyện được đưa ra tại PyCon 2010 có một số ý tưởng hay. Đáng nghe ngay cả khi bạn không quan tâm đến việc sử dụng VisTrails hoặc python. Cuối cùng tôi nghĩ rằng nếu bạn có thể yêu cầu có một cách tài liệu rõ ràng để tái tạo dữ liệu. Và yêu cầu một số xác nhận mà họ có thể.

Trích dẫn:

"Trong buổi nói chuyện này, chúng tôi sẽ giới thiệu tổng quan về VisTrails ( http://www.vistrails.org ), một quy trình khoa học nguồn mở dựa trên python, trong đó nắm bắt rõ ràng nguồn gốc (tức là dòng dõi) của cả sản phẩm dữ liệu và quy trình được sử dụng Chúng tôi sẽ trình bày cách VisTrails có thể được sử dụng để hợp lý hóa việc thăm dò và hiển thị dữ liệu. Sử dụng các ví dụ thực tế, chúng tôi sẽ trình bày các tính năng chính của hệ thống, bao gồm khả năng tạo trực quan các đường ống xử lý thông tin kết hợp nhiều công cụ và Thư viện như VTK, pylab và matplotlib. Chúng tôi cũng sẽ chỉ ra cách VisTrails tận dụng thông tin xuất xứ không chỉ để hỗ trợ khả năng tái tạo kết quả mà còn đơn giản hóa việc tạo và tinh chỉnh các đường ống. "


Python không phổ biến rộng rãi trong tổ chức của chúng tôi nhưng có vẻ như đó là một dự án thú vị. Tôi sẽ xem liệu tôi có thể hiểu được một số ý tưởng về cách mọi thứ nên được thực hiện từ tài liệu của họ không.
Bông Richie

2

Tôi vừa xem qua trang web này được lưu trữ bởi ICPSR về các kế hoạch quản lý dữ liệu . Mặc dù tôi nghĩ rằng các mục tiêu của ICPSR sẽ hơi khác so với doanh nghiệp của bạn (ví dụ: họ rất quan tâm đến việc làm cho dữ liệu có thể được phổ biến mà không vi phạm tính bảo mật), tôi tưởng tượng họ có thông tin hữu ích cho các doanh nghiệp. Đặc biệt lời khuyên về việc tạo siêu dữ liệu dường như là phổ quát.


2

Trong trường hợp quy mô nhỏ hơn nhiều, tôi đã trải nghiệm sử dụng dropbox fora chia sẻ / đồng bộ hóa bản sao của tệp dữ liệu (và tập lệnh và kết quả) với các nhà nghiên cứu / cộng tác viên khác (tôi đã viết về nó ở đây ).

Công cụ khác mà tôi đã sử dụng là tài liệu google để thu thập và chia sẻ dữ liệu (về điều tôi đã viết ở đây )


0

Dropbox + packrat là tốt để chia sẻ tập tin với sao lưu / phiên bản.

Sau đó, bạn tải các tệp đó (sau khi chuẩn hóa / xoa bóp tự động) vào cơ sở dữ liệu và thực hiện các phân tích về dữ liệu đã được dọn sạch. Đặt các tập lệnh để tự động hóa chu trình Extract-Transform-Load dưới sự kiểm soát phiên bản (hoặc ít nhất là một thư mục dropbox riêng với tùy chọn packrat ...).

Khi máy chủ cơ sở dữ liệu của bạn cuối cùng gặp sự cố (hoặc cần phải được bảo vệ hoặc bất cứ điều gì), bạn có một đường dẫn để chuyển dữ liệu từ thân thiện với mọi người (Excel, biểu mẫu web, v.v.) sang thân thiện với phân tích (thường được chuẩn hóa và hạn chế, luôn được dọn sạch).

Giai đoạn "ETL" đó là từ kho dữ liệu. Và nếu bạn không xây dựng một hệ thống xử lý giao dịch trực tuyến, có lẽ bạn đang xây dựng một kho dữ liệu. Vì vậy, hãy nắm lấy nó và tận dụng những gì mọi người đã học được từ việc xây dựng những thứ đó trong 30 năm qua.

Chúc vui vẻ.

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.