일반 관계형 데이터베이스에 대한 팬더 데이터 프레임의 장점


13

데이터 과학에서 많은 사람들이 팬더 데이터 프레임을 데이터 저장소로 사용하는 것 같습니다 . 팬더의 특징은 다른 많은 프로그래밍 분야에 데이터를 저장하는 데 사용되는 MySQL 과 같은 일반적인 관계형 데이터베이스 와 비교하여 우수한 데이터 저장소로 만드는 것 입니까?

팬더는 데이터 탐색에 유용한 기능을 제공하지만 SQL을 사용할 수 없으며 쿼리 최적화 또는 액세스 제한과 같은 기능이 손실됩니다.


5
팬더는 데이터 저장소가 아닙니다. 컴퓨터를 끄면 데이터 프레임이 없습니다. 팬더는 메모리에서 녹이는 것입니다. 메모리에 맞지 않으면 작동하지 않습니다. 그러나 Spark라는 큰 형제가 있으므로 큰 문제가 아닙니다. 큰 형님은 실제로 SQL 및 쿼리 최적화를 지원합니다. 또한 참조 pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
엠레

답변:


8

귀하의 질문의 전제는 문제가 있다고 생각합니다. Pandas는 RDBMS와 같은 방식으로 "데이터 저장소"가 아닙니다. Pandas는 메모리에 맞는 데이터를 조작하기위한 Python 라이브러리입니다. 단점 :

  • 팬더는 데이터를 유지하지 않습니다. TO_SQL이라는 (느린) 함수가있어 팬더 데이터 프레임을 RDBMS 테이블에 유지합니다.
  • 팬더는 메모리에 맞는 결과 만 처리하므로 쉽게 채울 수 있습니다. dask를 사용하여이 문제를 해결하거나 RDBMS (임시 공간과 같은 모든 종류의 트릭을 사용)의 데이터를 작업하여 RAM을 초과하는 데이터에 대해 작업 할 수 있습니다.

2

팬더에서 ( 메인 페이지 )

파이썬 데이터 분석 라이브러리

pandas는 Python 프로그래밍 언어를위한 고성능의 사용하기 쉬운 데이터 구조와 데이터 분석 도구를 제공하는 오픈 소스 BSD 라이센스 라이브러리입니다.

팬더는 확실히 SQL을 통해 또는 여러 다른 데이터 저장 방법을 통해 데이터에 액세스 할 수 있지만, 주요 목적은 Python을 사용하여 데이터 분석을 수행 할 때 더 쉽게 만드는 것입니다.

이를 위해 팬더에는 SQL과 비교할 수있는 관계형 대수 연산을 허용하는 다양한 방법이 있습니다 .

또한 팬더는 쉽게 액세스 제공 NumPy와를 , 어떤

파이썬으로 과학 컴퓨팅을위한 기본 패키지입니다. 그것은 다른 것들을 포함합니다 :

  • 강력한 N 차원 배열 객체
  • 정교한 (방송) 기능
  • C / C ++ 및 Fortran 코드 통합을위한 도구
  • 유용한 선형 대수, 푸리에 변환 및 난수 기능

2

허용 된 답변 외에 :

관계형 데이터베이스는 행당 오버 헤드가 많은 바이트 수 (예 : 이 질문 )를 가지며 , 이는 부기 유지에 사용되며 널이 아닌 널에 알리고 ACID 와 같은 표준을 보장합니다 . 열을 읽거나 쓸 때마다이 열의 값을 나타내는 몇 바이트가 읽힐뿐만 아니라 이러한 부기 바이트가 액세스되어 업데이트 될 수 있습니다.

반면 팬더 (R data.table)는 메모리 내 열 저장소와 비슷합니다. 하나의 열은 단지 값의 배열이며 실제로 필요한 값에만 액세스하는 빠른 숫자 벡터화 연산 / 목록 이해를 사용할 수 있습니다. 기본 열이 거의없는 테이블의 경우 많은 데이터 과학 사용 사례에서 관계형 데이터베이스가 여러 배 느려집니다.


2

Pandas는 메모리 내 데이터 저장 도구입니다. 이를 통해 대량의 데이터를 매우 빠르게 계산할 수 있습니다.

SQL은 (보통) 지속적으로 데이터를 저장하며 데이터베이스입니다. SQLite와 같은 팬더를 사용하는 것보다 더 빠른 메모리 내 SQL db를 실행할 수도 있습니다.


0

SQL을 사용하면 다양한 관계 트랜잭션을 유지하고 수행 할 수 있으며 항상 여러 가지 다른 용도로 쉽게 사용할 수 있습니다. 본질적으로 하나의 진실이나 갈 곳. 확실히 오버 헤드가 있습니다. 그러나 일부 분석은 매우 복잡 할 수 있으며 많은 양의 세트 기반 작업이 필요하므로 작은 데이터 세트도 큰 데이터 세트로 매우 빠르게 변환 할 수 있습니다. 5 분 이내에 테라 바이트를 처리하는 2000 개가 넘는 쿼리가 있고 끝에서 예측 모델에 대한 수십억 개의 레코드를 기록 할 수있는 데이터 프로세스를 보유하고 있으며, python은 10 배의 시간 동안 관계형 데이터 저장소로 데이터 세트의 일부를 채점했습니다. 프레젠테이션 레이어까지 제공하십시오.

추가 포인트는 클라우드에서이 작업을 수행하는 경우 메모리를 확장 할 수있는 동적 인스턴스가 있는지 확인하십시오. SQL을 사용하면 디스크와 충분한 계산을 통해 적시에 수행 할 수 있습니다.

나는 그들이 시너지 효과를 발휘할 수있는 많은 방법을 봅니다. 많은 데이터 과학 직업은 Pandas가 의도 한 것입니다. 일부 데이터 과학 작업은 RDB가 수행하도록 설계된 작업입니다. 둘 다 균형을 유지하십시오.

올바른 작업을 수행하는 것은 올바른 도구입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.