데이터 과학에서 NoSQL 데이터베이스 사용


16

MongoDB 와 같은 NoSQL 데이터베이스 를 데이터 분석에 어떻게 사용할 수 있습니까? 데이터 분석을 더 빠르고 강력하게 수행 할 수있는 기능은 무엇입니까?


2
주요 용도는 데이터를 저장하고 데이터를 검색하는 것입니다. 실제로 이는 NOSQL 데이터베이스 또는 모든 데이터베이스에 대한 유일한 사용에 관한 것입니다. 더 나은 질문을 원하십니까?
Spacedman

예, 데이터베이스는 주로 데이터 저장 및 검색에 사용됩니다. 데이터 분석에 어떻게 사용할 수 있습니까? 데이터 분석을 쉽고 강력하게하는 mongodb와 같은 NOSQL 데이터베이스에 내장 된 도구는 무엇입니까?
jithinjustin

1
의견을 추가하지 말고 편집하여 질문을 개선하십시오.
Spacedman

답변:


23

완벽하게 정직하게 말하면, 대부분의 NoSQL 데이터베이스는 빅 데이터의 응용 프로그램에 적합하지 않습니다. 모든 빅 데이터 애플리케이션의 대다수의 성능 MongoDB를이 같은 관계형 데이터베이스에 비해 MySQL은 입니다 상당히 완전히 MongoDB를 같은에서 멀리 체재 영장에 가난한 충분히입니다.

그럼에도 불구하고, 대규모 데이터 세트로 작업 할 때 확실히 유리한 NoSQL 데이터베이스의 몇 가지 유용한 속성이 있지만 읽기에 대한 SQL 에 비해 NoSQL의 성능이 일반적으로 열악합니다. 집중적 인 작업 (일반적인 빅 데이터 사용 사례와 가장 유사)이 낮습니다.

  • 스키마 없음 -많은 비정형 데이터로 작업하는 경우 실제로 스키마를 결정하고 엄격하게 적용하기가 어려울 수 있습니다. 일반적으로 NoSQL 데이터베이스는이 기능을 매우 지원하므로 스키마가없는 문서를 즉석에서 삽입 할 수 있습니다. 이는 확실히 SQL 데이터베이스가 지원하는 것이 아닙니다.
  • JSON - CSV 파일대신 JSON 스타일 문서로 작업하는 경우 데이터베이스 계층에 MongoDB와 같은 것을 사용하면 많은 이점이 있습니다. 일반적으로 워크 플로 절감은 증가 된 쿼리 시간보다 중요하지 않습니다.
  • 사용 편의성 -SQL 데이터베이스가 항상 사용하기 어렵거나 Cassandra 가 세계에서 설정하기 가장 쉬운 것은 아니지만 일반적으로 NoSQL 데이터베이스는 SQL 데이터베이스보다 설정 및 사용이 더 쉽다는 말은 아닙니다. MongoDB는 특히 SQLite 외부에서 사용하기 가장 쉬운 데이터베이스 계층 중 하나로 알려진 강력한 예입니다 . SQL은 또한 많은 표준화를 다루며 일반적으로 개발 프로세스를 중단시키는 많은 SQL 모범 사례가 있습니다.

개인적 으로 데이터 과학 응용 프로그램의 백엔드를 선택하려는 경우 특정 유형의 쿼리에 대해 실제로 우수한 성능을 보여주는 Neo4j 와 같은 그래프 데이터베이스를 확인하는 것이 좋습니다 .


네 말이 맞아 NOSQL 데이터베이스는 주로 json과 같은 비정형 또는 반 정형 데이터를 저장하는 데 사용됩니다. 우리가 그들과 함께 할 수있는 몇 가지 유형의 데이터 분석을 설명 할 수 있습니까? 데이터 분석에 사용할 수있는 mongodb에 내장 된 도구는 무엇입니까?
jithinjustin

1
@jithinjustin mongo에 내장 된 데이터 분석 도구 또는 실제로 데이터베이스가 없습니다. 또한 json완전히 구조화 된 데이터입니다. NOSQL 데이터베이스는 실제로는 관련이 없으므로 기술적으로 모든 종류의 데이터 분석을 수행 할 수 있습니다. analytica와 같이 mongo 위에 빌드 도구가 있습니다 .
indico

1
나는 그 모든 것에 대해 모른다. MongoDB는 MySQL보다 성능이 우수합니다. PostgreSQL을 말하면 JSON이 더 좋을 것입니다. 어느 쪽이든, 나는 임의의 "성능"(사용 사례가 무엇인지 모른다)을 NoSQL을 사용하지 않는 이유로 생각하지 않을 것입니다. 또한 여러 데이터베이스를 사용하면 할인되지 않습니다. MongoDB에는 SQL에없는 놀라운 집계 기능이 있습니다.
Tom

1
@Tom 성능에 대해 mongo 가 실제로 mysql보다 성능이 우수한 유일한 작업 은 데이터 분석의 비교적 작은 부분 인 inserts ( moredevs.ro/mysql-vs-mongodb-performance-benchmark )입니다. SQL의 집계 기능은 Mongo보다 훨씬 더 성숙합니다. MYSQL과 Postgres의 경우 수치는 매우 비뚤어지고 비슷한 성능을 제공하는 경향이 있습니다. MYSQL이 더 일반적이기 때문에 대신 언급했지만 두 가지는 매우 비슷합니다.
indico

메모리에 맞을 때 MongoDB에서 항상 더 나은 성능을 보았습니다. Google이 조금이라도 MongoDB를 더 빨리 보여주는 많은 벤치 마크를 찾을 수 있기 때문에 소금을 얻은 벤치 마크를 사용합니다. 그것은 실제로 당신의 필요에 달려 있습니다. 즉, 원래의 질문에 대답하기 위해 빅 데이터 과학 및 분석에서 NoSQL을 많이 사용한다고 생각합니다.
Tom

4

스키마없는 NoSQL 접근 방식의 한 가지 이점은 조기 커밋하지 않으며 Apache Drill 과 같은 적절한 도구를 사용하여 쿼리시 올바른 스키마를 적용 할 수 있다는 것 입니다. 자세한 내용은 이 프레젠테이션 을 참조하십시오. 빅 데이터 설정에서 MySQL은 제 첫 선택이 아니 었습니다.


다음은 NoSQL, JSON 및 Drill 관련 질문입니다. datascience.stackexchange.com/questions/9568/…
sheldonkreger

4

여러 데이터베이스를 고려하고 시도하고 사용하십시오. 여기서 중요한 것은 "성능"문제가 아닙니다. 실제로 요구 사항을 충족시킬 것입니다. 당신은 얼마나 많은 데이터에 대해 이야기하고 있습니까? 어떤 종류의 데이터? 얼마나 빨리 필요합니까? 더 많이 읽거나 많이 쓰십니까?

다음은 SQL 데이터베이스에서 할 수없는 일입니다. 감정 계산. http://www.slideshare.net/shift8/mongodb-machine-learning

물론 그 경우의 속도는 당신의 필요에 충분히 빠르지 않을 수도 있지만, 그것은 가능한 것입니다. 특정 집계 값을 일부 캐싱하면 상당히 수용 가능합니다. 왜 이렇게 하시겠습니까? 편의.

편의성은 실제로 당신이 설득 할 것입니다. 이것이 바로 NoSQL 데이터베이스가 작성된 이유입니다. 물론 성능도 있지만 벤치 마크를 할인하고 다른 문제에 더 집중하려고합니다.

MongoDB (및 다른 NoSQL) 데이터베이스에는 내장 맵 / 리 듀스와 같은 매우 강력한 기능이 있습니다. 이로 인해 Hadoop과 같은 것을 사용하여 비용과 시간을 절약 할 수 있습니다. 또는 더 큰 비즈니스를 시작하기위한 프로토 타입 또는 MVP를 제공 할 수 있습니다.

그래프 데이터베이스는 어떻습니까? 그들은 "NoSQL"이기도합니다. OrientDB와 같은 데이터베이스를 살펴보십시오. 성능을 주장하고 싶다면 ... 더 빠른 SQL 데이터베이스를 보여주지 않을 것이라고 생각합니다. =) ... 그래프 데이터베이스에는 필요한 작업을 기반으로 정말 놀라운 응용 프로그램이 있습니다.

기술의 규칙 (그리고 인터넷)은 한 가지에 너무 편하지 않습니다. 당신은 제한되고 실패에 대비할 것입니다.


1
해당 링크 또는 여기에 SQL 데이터베이스에서 감정 분석을 수행 할 수 없음을 나타내는 내용이 없습니다. mongoDB 예제는 DB의 Javascript를 활용하므로 SQL 데이터베이스에 내장 언어를 사용할 수 있습니다. 예를 들어 Postgres + R.
Spacedman

해당 데이터베이스에서 코드를 실행하고 맵 / 축소 할 수있는 위치를 알고 싶습니다. 진지하게 (특히 Postgres). ... 가능한 경우에도 여전히 대답의 유효성을 떨어 뜨리지는 않습니다. 단순히 NoSQL을 사용하고 싶을 수도 있습니다. 작동합니다.
Tom

1
Postgres + C, Python, Perl, R은 Postgres DB를 최신 머신 러닝 알고리즘에 공급합니다. 쉬움 : postgresql.org/docs/9.0/static/xplang.html
Spacedman

좋은. 언젠가는 그것을 시도해야합니다. MySQL은 어떻습니까?
Tom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.