Trong quá trình phát triển các công việc giảm bản đồ, mã MR của chúng tôi tạo ra các cấu trúc dữ liệu chẩn đoán hữu ích độc lập với dữ liệu được giảm bản đồ. Có cách nào dễ dàng để đưa những dữ liệu này ra mã được gọi là mapReduce hoặc để tồn tại chúng trong Mongo không? Chỉ cần ghi vào tệp nhật ký hóa ra là rất tối ưu vì (a) có rất nhiều dữ liệu đã có và (b) thông tin chẩn đoán của chúng tôi được cấu trúc cao và trên thực tế, chúng tôi muốn chạy truy vấn nó. Điều tra của tôi cho đến nay cho thấy rằng cấu trúc dữ liệu MR được truyền theo giá trị (thông qua serialization) vì vậy bất kỳ cấu trúc dữ liệu trong bộ nhớ bị mất, bao gồm cả những kết nối với phạm vi "toàn cầu". Các không gian tên được phân lập từ không gian tên phía máy chủ JS chính do đó, dbeval
dường như không thể tiếp cận chúng (hoặc, ít nhất, tôi không biết phải tìm đâu). Cuối cùng nhưng không kém phần quan trọng, mặc dù tất cả các đối tượng và chức năng cơ sở dữ liệu đều có mặt, nhưng 10gen đang tạo ra các thông báo lỗi (khó hiểu) để ngăn chặn việc sử dụng chúng, ví dụ: về coll.insert
không phải là một hàm trong khi typeof coll.insert === 'function'
là true
.MongoDB: mapReduce tác dụng phụ
Để rõ ràng, tôi quan tâm đến việc này để phát triển trong một nút duy nhất, bởi vì hỗ trợ ghi/gỡ lỗi trong MongoDB là khá hạn chế. Loại tác dụng phụ này không tốt trong môi trường sản xuất.
Chính xác loại dữ liệu nào đang tạo? Đầu ra của MR có thể được lưu giữ trong bộ sưu tập .. Trong C#, tôi chỉ định nó như sau: MyInputCollection.MapReduce (map, reduce, MapReduceOptions.SetOutput ("MyOutputCollection")); Sau đó bạn đọc từ bộ sưu tập liên tục 'MyOutputCollection'. –
Tôi muốn lưu thông tin độc lập với đầu ra MR. Hãy suy nghĩ về nó như là sự cạn kiệt dữ liệu, ví dụ: để biết thông tin ghi nhật ký/đánh giá cấu trúc chi tiết mà tôi muốn xử lý bằng mã, vì vậy tôi không muốn nó kết thúc trong các tệp nhật ký. – Sim
Bạn đã thử sử dụng một bộ sưu tập giới hạn để đăng nhập .. Tôi không hiểu tại sao coll.insert sẽ thất bại .. –