Sử dụng cơ sở dữ liệu NoQuery trong khoa học dữ liệu


16

Làm thế nào các cơ sở dữ liệu NoQuery như MongoDB có thể được sử dụng để phân tích dữ liệu? Các tính năng trong chúng có thể làm cho phân tích dữ liệu nhanh hơn và mạnh mẽ là gì?


2
Việc sử dụng chính là lưu trữ dữ liệu và truy xuất dữ liệu. Trên thực tế, đó là về việc chỉ sử dụng cho cơ sở dữ liệu NOSQL hoặc bất kỳ cơ sở dữ liệu nào. Bạn muốn làm cho câu hỏi của bạn tốt hơn?
Spainedman

Có, cơ sở dữ liệu chủ yếu được sử dụng để lưu trữ và truy xuất dữ liệu. Làm thế nào chúng có thể được sử dụng để phân tích dữ liệu? Các công cụ được xây dựng trong cơ sở dữ liệu NOSQL như mongodb giúp phân tích dữ liệu dễ dàng và mạnh mẽ là gì?
jithinjustin

1
Cải thiện câu hỏi của bạn bằng cách chỉnh sửa nó, không thêm vào các bình luận.
Spainedman

Câu trả lời:


23

Thành thật mà nói, hầu hết các cơ sở dữ liệu NoQuery không phù hợp lắm với các ứng dụng trong dữ liệu lớn. Đối với đại đa số của tất cả các ứng dụng dữ liệu lớn, hiệu suất của MongoDB so với một cơ sở dữ liệu quan hệ như MySQLđáng kể là đủ nghèo để bảo đảm tránh xa cái gì đó như MongoDB hoàn toàn.

Như đã nói, có một số thuộc tính thực sự hữu ích của cơ sở dữ liệu NoQuery chắc chắn hoạt động có lợi cho bạn khi bạn làm việc với các tập dữ liệu lớn, mặc dù khả năng những lợi ích đó vượt trội so với hiệu năng của NoQuery nói chung so với SQL để đọc hoạt động chuyên sâu (tương tự như các trường hợp sử dụng dữ liệu lớn điển hình) là thấp.

  • Không có lược đồ - Nếu bạn đang làm việc với nhiều dữ liệu phi cấu trúc, có thể khó thực sự quyết định và áp dụng một cách cứng nhắc một lược đồ. Các cơ sở dữ liệu NoQuery nói chung rất hỗ trợ điều này và sẽ cho phép bạn chèn các tài liệu không có lược đồ một cách nhanh chóng, đây chắc chắn không phải là thứ mà cơ sở dữ liệu SQL sẽ hỗ trợ.
  • JSON - Nếu bạn tình cờ làm việc với các tài liệu kiểu JSON thay vì với các tệp CSV , thì bạn sẽ thấy rất nhiều lợi thế khi sử dụng thứ gì đó như MongoDB cho lớp cơ sở dữ liệu. Nói chung, tiết kiệm quy trình công việc không vượt quá thời gian truy vấn tăng.
  • Dễ sử dụng - Tôi không nói rằng cơ sở dữ liệu SQL luôn khó sử dụng hoặc Cassandra là thứ dễ nhất trên thế giới để thiết lập, nhưng nói chung, cơ sở dữ liệu NoQuery dễ cài đặt và sử dụng hơn cơ sở dữ liệu SQL. MongoDB là một ví dụ đặc biệt mạnh về điều này, được biết đến là một trong những lớp cơ sở dữ liệu dễ sử dụng nhất (bên ngoài SQLite ). SQL cũng xử lý rất nhiều chuẩn hóa và có một di sản lớn về các thực tiễn tốt nhất của SQL mà thường làm hỏng quá trình phát triển.

Cá nhân tôi có thể đề nghị bạn cũng kiểm tra cơ sở dữ liệu đồ thị như Neo4j cho thấy hiệu năng thực sự tốt đối với một số loại truy vấn nhất định nếu bạn đang tìm kiếm một phụ trợ cho các ứng dụng khoa học dữ liệu của mình.


Bạn đúng rồi. Cơ sở dữ liệu NOSQL chủ yếu được sử dụng để lưu trữ dữ liệu phi cấu trúc hoặc bán cấu trúc như json. Bạn có thể giải thích một số loại phân tích dữ liệu chúng ta có thể làm với chúng. Các công cụ được xây dựng trong mongodb có thể được sử dụng để phân tích dữ liệu là gì?
jithinjustin

1
@jithinjustin không có các công cụ phân tích dữ liệu được tích hợp trong mongo hoặc thực sự là bất kỳ cơ sở dữ liệu nào. Ngoài ra, jsonlà dữ liệu có cấu trúc hoàn toàn. Về mặt kỹ thuật, bạn có thể thực hiện bất kỳ loại phân tích dữ liệu nào trên đó, sử dụng cơ sở dữ liệu NOSQL thực sự không liên quan. Có những công cụ được xây dựng trên đỉnh của mongo, như analytica.
indico

1
Tôi không biết về tất cả điều đó. MongoDB có thể hoạt động tốt hơn MySQL. Bạn sẽ có một cuộc tranh luận tốt hơn nếu bạn nói PostgreSQL (bằng cách này, có thể chấp nhận JSON). Dù bằng cách nào, tôi sẽ không xem xét một số "hiệu suất" tùy ý (chúng tôi không biết trường hợp sử dụng là gì) là một lý do không sử dụng NoQuery. Cũng không giảm giá bằng cách sử dụng nhiều cơ sở dữ liệu. Hãy nhớ rằng, MongoDB có các tính năng tổng hợp tuyệt vời mà SQL không có.
Tom

1
@Tom về hiệu suất, bạn sẽ thấy rằng nhiệm vụ duy nhất mà mongo thực sự vượt trội hơn mysql là chèn ( moredevs.ro/mysql-vs-mongodb-performance-benchmark ), một phần tương đối nhỏ của phân tích dữ liệu. Các tính năng tổng hợp của SQL là FAR trưởng thành hơn so với Mongo. Theo như MYSQL so với Postgres, các con số rất sai lệch và cả hai đều có xu hướng cung cấp hiệu suất tương tự. MYSQL là phổ biến hơn, đó là lý do tại sao tôi đã đề cập đến điều đó thay vào đó, nhưng hai cái này khá giống nhau.
indico

Tôi đã luôn thấy hiệu suất tốt hơn trên MongoDB khi mọi thứ phù hợp với bộ nhớ. Tôi lấy điểm chuẩn với mức tăng muối vì nếu bạn Google một chút, bạn sẽ tìm thấy một loạt điểm chuẩn hiển thị MongoDB nhanh hơn. Nó thực sự phụ thuộc vào nhu cầu của bạn. Điều đó nói rằng, để giúp trả lời câu hỏi ban đầu - Tôi nghĩ rằng có rất nhiều cách sử dụng cho NoQuery trong khoa học và phân tích dữ liệu lớn.
Tom

4

Một lợi ích của cách tiếp cận NoQuery không có lược đồ là bạn không cam kết sớm và bạn có thể áp dụng lược đồ phù hợp tại thời điểm truy vấn bằng cách sử dụng một công cụ thích hợp như Apache Drill . Xem bản trình bày này để biết chi tiết. MySQL sẽ không phải là lựa chọn đầu tiên của tôi trong một thiết lập dữ liệu lớn.


Đây là một câu hỏi liên quan liên quan đến NoQuery, JSON và Drill: datascience.stackexchange.com/questions/9568/ ám
sheldonkreger

4

Xem xét, thử và thậm chí có thể sử dụng nhiều cơ sở dữ liệu. Đây không chỉ là vấn đề "hiệu suất" khi chơi ở đây. Nó thực sự sẽ đi xuống theo yêu cầu của bạn. Bạn đang nói về bao nhiêu dữ liệu? Những loại dữ liệu? bạn cần nó nhanh như thế nào Bạn đọc nhiều hơn hay viết nặng?

Đây là một điều bạn không thể làm trong cơ sở dữ liệu SQL: Tính toán tình cảm. http://www.sl slideshoware.net/shift8/mongodb-machine-learning

Tất nhiên tốc độ trong trường hợp đó có thể không đủ nhanh cho nhu cầu của bạn, nhưng đó là điều có thể. Với một số bộ nhớ đệm của các giá trị tổng hợp cụ thể, nó thậm chí còn được chấp nhận. Tại sao bạn sẽ làm điều này? Tiện.

Thuận tiện thực sự là một cái gì đó mà bạn sẽ bị thuyết phục bởi. Đó chính xác là lý do tại sao (theo ý kiến ​​của tôi) cơ sở dữ liệu NoQuery đã được tạo. Hiệu suất tất nhiên, nhưng tôi đang cố gắng giảm điểm chuẩn và tập trung nhiều hơn vào các mối quan tâm khác.

Cơ sở dữ liệu MongoDB (và một số cơ sở dữ liệu khác của NoQuery) có một số tính năng rất mạnh như tích hợp / giảm bản đồ. Điều này có thể dẫn đến tiết kiệm cả về chi phí và thời gian khi sử dụng một cái gì đó như Hadoop. Hoặc nó có thể cung cấp một nguyên mẫu hoặc MVP để khởi động một doanh nghiệp lớn hơn.

Cơ sở dữ liệu đồ thị thì sao? Họ cũng là "NoQuery". Nhìn vào cơ sở dữ liệu như OrientDB. Nếu bạn muốn tranh luận về hiệu suất ... Tôi không nghĩ rằng bạn sẽ cho tôi thấy một cơ sở dữ liệu SQL nhanh hơn ở đó =) ... và cơ sở dữ liệu đồ thị có một số ứng dụng thực sự tuyệt vời dựa trên những gì bạn cần làm.

Quy tắc công nghệ (và internet) đừng quá thoải mái với một điều. Bạn sẽ bị giới hạn và tự đặt ra thất bại.


1
Tôi không thấy bất cứ điều gì trong liên kết đó hoặc ở đây chứng tỏ bạn không thể phân tích tình cảm trong cơ sở dữ liệu SQL. các ví dụ mongoDB được hưởng lợi từ Javascript trong DB, vì vậy bạn có thể sử dụng bất kỳ ngôn ngữ nhúng nào trong cơ sở dữ liệu SQL. Ví dụ: Postgres + R.
Spainedman

Rất thích xem nơi bạn có thể thực thi mã và bản đồ / thu nhỏ trong các cơ sở dữ liệu đó. Trong tất cả sự nghiêm túc (đặc biệt là Postgres). ... và thậm chí nếu bạn có thể, điều đó vẫn không làm cho câu trả lời trở nên ít hợp lệ hơn. Một cách đơn giản chỉ là có thể muốn sử dụng NoQuery. Nó không hoạt động.
Tom

1
Postgres + C, Python, Perl, R, đưa DB Postgres của bạn vào các thuật toán học máy mới nhất. Dễ dàng: postgresql.org/docs/9.0/static/xplang.html
Spainedman

Đẹp. Thỉnh thoảng tôi sẽ phải thử nó. Làm thế nào về MySQL?
Tom
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.