2014-10-09 4 views
3

내 작업에는 많은 데이터 처리와 스트리밍 및 다양한 소스의 데이터 처리가 수시로 많은 데이터와 관련되어 있습니다. 모든 것을 위해 파이썬을 사용하고 일괄 처리 파이프 라인을 최적화하고 빌드하기 위해 파이썬의 어떤 영역을 연구해야하는지 궁금합니다. 스포티 파이 (Spotify)가 만든 루이지 (Luigi)와 같은 오픈 소스의 변형이 있다는 것을 알고 있지만, 지금 당장은 과잉이라고 생각합니다. 지금까지 내가 알고있는 것은 생성자와 게으른 평가를 연구하는 것이지만 파이썬에서 효율적인 일괄 처리를 위해 사용할 수있는 다른 개념과 라이브러리가 무엇인지 궁금해하고있었습니다. 한 가지 시나리오는 가능한 한 적은 메모리를 사용하여 json 형식의 파일을 읽고 csv로 변환 한 다음 데이터베이스로 채우는 것입니다. (NoSQL과 달리 SQL 표준 데이터베이스를 사용해야합니다.) 모든 조언을 크게 주시면 감사하겠습니다.Python 데이터 파이프 라인 및 스트리밍

+0

데이터베이스 작업에 많은 경험이 없지만 대규모 수학 연산을 수행해야하는 경우 numpy에는 확실한 몇 가지 뛰어난 기능이 있습니다. 올바르게 사용하면 컴파일 된 언어와 거의 같은 속도를 얻을 수 있습니다. – RoBDoG

+0

언제나 자신 만의 모듈을 작성할 수 있습니다. 내가 일하는 곳은 많은 데이터를 다룹니다. 그러나 우리의 경우에는 우리가 얻는 데이터의 종류를 알 수 있습니다 (단 3 가지 포맷). 그래서 우리는 그것을 다룰 수있는 많은 도구를 가진 작은 라이브러리를 개발했습니다. 시간이 걸리지 만 일단 완료되면 미래 프로젝트에서 많은 시간을 절약 할 수있었습니다. – Beginner

답변

1

많은 예제 파일을 읽고 번역 한 다음 데이터베이스를 채우는 예제는 제가 작성한 신호 처리 응용 프로그램을 상기시켜줍니다.

내 응용 프로그램 (http://github.com/vmlaker/sherlock) 은 멀티 코어 CPU를 활용하여 많은 양의 데이터 (이미지)를 병렬로 처리합니다. 깨끗한 구현을 위해 두 모듈을 사용했습니다 : 다단계 동시 파이프 라인을 어셈블하기위한 MPipe 및 프로세스간에 NumPy 배열을 공유하는 데 사용되는 numpy-sharedmem. 런타임 성능을 극대화하기 위해 노력하고, 여러 개의 코어를 사용할 수있는 경우

, 당신은 당신이주는 예를 들어 비슷한 워크 플로우 단계로 할 수 있습니다 : -> 번역

읽기 파일을 - ->데이터베이스 업데이트

json 파일 읽기는 I/O 바인딩이지만 멀티 프로세싱을 사용하면 데이터베이스 업데이트는 물론 번역 속도가 빨라질 수 있습니다.

관련 문제