데이터 과학에서 많은 사람들이 팬더 데이터 프레임을 데이터 저장소로 사용하는 것 같습니다 . 팬더의 특징은 다른 많은 프로그래밍 분야에 데이터를 저장하는 데 사용되는 MySQL 과 같은 일반적인 관계형 데이터베이스 와 비교하여 우수한 데이터 저장소로 만드는 것 입니까?
팬더는 데이터 탐색에 유용한 기능을 제공하지만 SQL을 사용할 수 없으며 쿼리 최적화 또는 액세스 제한과 같은 기능이 손실됩니다.
데이터 과학에서 많은 사람들이 팬더 데이터 프레임을 데이터 저장소로 사용하는 것 같습니다 . 팬더의 특징은 다른 많은 프로그래밍 분야에 데이터를 저장하는 데 사용되는 MySQL 과 같은 일반적인 관계형 데이터베이스 와 비교하여 우수한 데이터 저장소로 만드는 것 입니까?
팬더는 데이터 탐색에 유용한 기능을 제공하지만 SQL을 사용할 수 없으며 쿼리 최적화 또는 액세스 제한과 같은 기능이 손실됩니다.
답변:
귀하의 질문의 전제는 문제가 있다고 생각합니다. Pandas는 RDBMS와 같은 방식으로 "데이터 저장소"가 아닙니다. Pandas는 메모리에 맞는 데이터를 조작하기위한 Python 라이브러리입니다. 단점 :
팬더에서 ( 메인 페이지 )
파이썬 데이터 분석 라이브러리
pandas는 Python 프로그래밍 언어를위한 고성능의 사용하기 쉬운 데이터 구조와 데이터 분석 도구를 제공하는 오픈 소스 BSD 라이센스 라이브러리입니다.
팬더는 확실히 SQL을 통해 또는 여러 다른 데이터 저장 방법을 통해 데이터에 액세스 할 수 있지만, 주요 목적은 Python을 사용하여 데이터 분석을 수행 할 때 더 쉽게 만드는 것입니다.
이를 위해 팬더에는 SQL과 비교할 수있는 관계형 대수 연산을 허용하는 다양한 방법이 있습니다 .
또한 팬더는 쉽게 액세스 제공 NumPy와를 , 어떤
파이썬으로 과학 컴퓨팅을위한 기본 패키지입니다. 그것은 다른 것들을 포함합니다 :
- 강력한 N 차원 배열 객체
- 정교한 (방송) 기능
- C / C ++ 및 Fortran 코드 통합을위한 도구
- 유용한 선형 대수, 푸리에 변환 및 난수 기능
허용 된 답변 외에 :
관계형 데이터베이스는 행당 오버 헤드가 많은 바이트 수 (예 : 이 질문 )를 가지며 , 이는 부기 유지에 사용되며 널이 아닌 널에 알리고 ACID 와 같은 표준을 보장합니다 . 열을 읽거나 쓸 때마다이 열의 값을 나타내는 몇 바이트가 읽힐뿐만 아니라 이러한 부기 바이트가 액세스되어 업데이트 될 수 있습니다.
반면 팬더 (R data.table)는 메모리 내 열 저장소와 비슷합니다. 하나의 열은 단지 값의 배열이며 실제로 필요한 값에만 액세스하는 빠른 숫자 벡터화 연산 / 목록 이해를 사용할 수 있습니다. 기본 열이 거의없는 테이블의 경우 많은 데이터 과학 사용 사례에서 관계형 데이터베이스가 여러 배 느려집니다.
SQL을 사용하면 다양한 관계 트랜잭션을 유지하고 수행 할 수 있으며 항상 여러 가지 다른 용도로 쉽게 사용할 수 있습니다. 본질적으로 하나의 진실이나 갈 곳. 확실히 오버 헤드가 있습니다. 그러나 일부 분석은 매우 복잡 할 수 있으며 많은 양의 세트 기반 작업이 필요하므로 작은 데이터 세트도 큰 데이터 세트로 매우 빠르게 변환 할 수 있습니다. 5 분 이내에 테라 바이트를 처리하는 2000 개가 넘는 쿼리가 있고 끝에서 예측 모델에 대한 수십억 개의 레코드를 기록 할 수있는 데이터 프로세스를 보유하고 있으며, python은 10 배의 시간 동안 관계형 데이터 저장소로 데이터 세트의 일부를 채점했습니다. 프레젠테이션 레이어까지 제공하십시오.
추가 포인트는 클라우드에서이 작업을 수행하는 경우 메모리를 확장 할 수있는 동적 인스턴스가 있는지 확인하십시오. SQL을 사용하면 디스크와 충분한 계산을 통해 적시에 수행 할 수 있습니다.
나는 그들이 시너지 효과를 발휘할 수있는 많은 방법을 봅니다. 많은 데이터 과학 직업은 Pandas가 의도 한 것입니다. 일부 데이터 과학 작업은 RDB가 수행하도록 설계된 작업입니다. 둘 다 균형을 유지하십시오.
올바른 작업을 수행하는 것은 올바른 도구입니다.