파이썬 프로그래밍 언어는 뛰어난 적응성과 다양한 기능으로 널리 인정받고 있으며, 데이터 과학자들이 가장 선호하는 언어 중 하나로 꼽히고 있습니다. 수많은 라이브러리가 이 분야에서 창의성을 키우고 발전하는 데 기여해 왔습니다. 숙련도를 높이고 새로운 전망을 발견하기 위해서는 최신 발전과 개발에 대한 정보를 파악하는 것이 중요합니다.
ConnectorX: 데이터 로딩 간소화
데이터를 데이터베이스에 저장하는 것이 일반적인 경향이지만, 데이터베이스 경계를 넘어 계산이 이루어지는 경우도 드물지 않습니다. 그러나 데이터베이스와 다른 컴퓨팅 시스템 간에 데이터를 주고받으면 지연이 발생할 수 있습니다.
ConnectorX 은 데이터베이스의 데이터를 Python의 여러 일반적인 데이터 랭글링 도구로 로드하며, 수행해야 할 작업량을 최소화하여 작업을 빠르게 처리합니다.
Rust 프로그래밍 언어 라이브러리의 활용은 ConnectorX의 핵심을 형성합니다. 이를 통해 데이터 소스에서 로딩과 파티셔닝을 동시에 수행할 수 있으며, PostgreSQL 데이터베이스에 저장된 데이터를 처리할 때와 같이 효율적인 로딩을 위해 파티션 열을 지정할 수 있습니다.
IConnectorX 플랫폼은 MySQL/MariaDB, SQLite, Amazon Redshift, Microsoft SQL Server, Azure SQL 및 Oracle과 같은 다양한 데이터베이스에서 정보를 검색할 수 있습니다.
앞서 언급한 기능을 통해 결과를 Pandas 또는 PyArrow 데이터프레임으로 변환할 수 있을 뿐만 아니라, PyArrow를 사용하여 Modin, Dask 또는 Polars로 직접 전달할 수도 있습니다.
DuckDB: 분석 쿼리 워크로드 지원
DuckDB 는 컬럼형 데이터 저장소를 사용하며 장기 실행 분석 쿼리 워크로드에 최적화되어 있습니다. ACID 트랜잭션을 포함해 기존 데이터베이스에서 기대할 수 있는 모든 기능을 제공합니다.
또한 파이썬 환경 내에서 pip 설치 명령만으로 손쉽게 설치할 수 있으므로 별도의 소프트웨어 설치 구성이 필요하지 않습니다.
DuckDB는 CSV, JSON, Parquet 등 다양한 형식의 데이터를 받아들일 수 있습니다. 성능을 향상시키기 위해 DuckDB는 연도 및 월과 같은 주요 값을 기반으로 데이터베이스를 여러 개의 물리적 파일로 분할합니다.
DuckDB는 쿼리에 활용될 때 기존의 관계형 기반 데이터베이스로 표시되며, 임의의 데이터 샘플을 추출하고 창 함수를 만드는 기능과 같은 추가 기능을 자랑합니다.
DuckDB는 표준 기능 외에도 전체 텍스트 검색 기능, Excel로 데이터 가져오기 및 내보내기 기능, SQLite 및 PostgreSQL 데이터베이스와의 직접 통합, Parquet 형식의 데이터 내보내기 지원, 수많은 일반적인 지리공간 데이터 형식 및 유형과의 호환성 등 다양하고 유용한 확장 기능을 제공합니다.
옵티머스: 데이터 조작 간소화
데이터 프레임 중심 프로젝트를 위한 데이터 정리 및 준비는 부러워할 만한 작업 중 하나가 아닙니다. 옵티머스 은 다양한 데이터 원본에 데이터를 로드, 탐색, 정리 및 다시 쓰도록 설계된 올인원 도구 세트입니다.
앞서 언급한 Optimus는 Pandas, Dask, CUDF(Dask와 함께 사용), Vaex 또는 Spark와 같은 여러 데이터 엔진을 활용할 수 있습니다. 이러한 데이터 엔진을 사용하면 Arrow, Parquet, Excel, 여러 데이터베이스 소스 또는 CSV 및 JSON과 같은 플랫 파일 형식을 포함한 다양한 형식의 정보를 로드하고 저장할 수 있습니다.
옵티머스의 데이터 조작 API는 판다와 유사하지만 .rows() 및 .cols() 접근자를 제공하여 추가적인 기능을 자랑합니다. 이러한 접근자는 일련의 연산을 단순화하여 실행을 더 간단하게 만듭니다.
옵티머스에서 데이터를 조작하는 예로는 데이터프레임 정렬, 열 값에 따라 필터링, 지정된 규칙에 따라 데이터 변경 또는 특정 조건으로 작업 제한 등이 있습니다. 또한 옵티머스에는 이메일 주소 및 URL과 같이 일상적으로 널리 사용되는 데이터 유형을 처리할 수 있는 프로세서가 통합되어 있습니다.
옵티머스는 현재 활발히 개발 중이며, 가장 최근 공식 릴리즈는 에 제공되었습니다. 이로 인해 기술 스택 내의 다른 구성 요소보다 최신 버전이 아닐 수 있습니다.
Polars: 데이터프레임 가속화
데이터프레임으로 작업하다가 Pandas의 성능 제한에 좌절감을 느낀다면 Polars 이 훌륭한 솔루션이 될 수 있습니다. 이 파이썬용 데이터프레임 라이브러리는 판다와 같은 편리한 구문을 제공합니다.
Polars는 병렬 처리 및 SIMD와 같은 향상된 성능 특성을 위해 특정 구문 없이도 하드웨어의 잠재력을 최대한 최적화하는 Rust로 개발된 라이브러리를 활용합니다.
Polars를 활용하면 CSV 파일에서 데이터를 검색하는 것과 같은 기본적인 작업도 더 빠르게 실행할 수 있습니다. 또한, 빠른 실행 모드와 지연 실행 모드가 모두 탑재되어 있어 쿼리를 즉시 실행하거나 필요할 때까지 지연시킬 수 있습니다.
애플리케이션은 증분 쿼리 처리 스트리밍 API를 제공하지만, 현재 모든 기능에서 이 기능에 액세스하지 못할 수도 있습니다. Rust 프로그래밍 언어를 사용하는 개발자는 pyo3를 통해 맞춤형 Polars 확장을 개발할 수 있습니다.
스네이크메이크: 데이터 과학 워크플로우 자동화
데이터 과학 워크플로우를 설정하는 것은 어려운 일이며, 일관성과 예측 가능성을 보장하는 것은 훨씬 더 어려울 수 있습니다. Snakemake 는 Python에서 데이터 분석 설정을 자동화하여 모든 사람에게 일관된 결과를 보장함으로써 이 문제를 해결합니다.
현재 수많은 데이터 과학 벤처에서 Snakemake를 널리 활용하고 있다는 것은 데이터 기반 워크플로우를 간소화하는 도구로서의 유용성을 입증하는 증거입니다. 이러한 워크플로우의 복잡성이 증가함에 따라 수동 실행이 비실용적이거나 오류가 발생하기 쉬운 경우가 많기 때문에, 이러한 프로세스를 효과적으로 관리하고 생산성을 최적화하기 위해 SnakeMake의 자동화 기능을 활용하는 것이 얼마나 중요한지 강조되고 있습니다.
스네이크메이크 워크플로는 본질적으로 Gnu Make 시스템 기반의 워크플로우와 유사합니다. 스네이크메이크에서는 입력, 출력 및 실행해야 할 필수 작업에 대한 매개변수를 포함하는 규칙 구현을 통해 특정 목표를 설정합니다. 멀티 스레딩을 활용하는 워크플로우 규칙을 생성하는 기능을 통해 병렬 처리를 통한 효율성 향상을 달성할 수 있습니다.
워크플로는 JSON/YAML 파일에서 얻은 구성 데이터의 활용을 지원하며, 규칙 내에서 사용되는 데이터를 정제하고 각 단계에서 수행된 활동을 기록하는 함수를 지정할 수 있습니다.
플랫폼 Snakemake는 워크플로우를 전송할 수 있고 Kubernetes에서 관리하는 환경뿐만 아니라 Google Cloud Life Sciences 또는 Amazon Web Services(AWS)의 Tibanna와 같은 특정 클라우드 에코시스템 내에서도 배포할 수 있도록 설계되었습니다.
고정된 워크플로우에서 특정 패키지 구성을 보존하는 기능을 사용하면 해당 워크플로우를 일관되게 실행할 수 있습니다. 또한 실행된 워크플로가 완료되면 워크플로 아카이브와 함께 실행 중에 생성된 모든 단위 테스트를 저장하는 기능이 있습니다. 이 기능의 목적은 워크플로우와 관련 결과물을 장기간 저장하고 검색할 수 있도록 하는 것입니다.
파이썬의 독보적인 데이터 과학 도구
최신 데이터 과학 도구를 수용하면 생산성이 향상되고, 능력이 확장되며, 흥미로운 데이터 주도 탐험을 시작할 수 있습니다. 그러나 데이터 과학의 영역은 변화할 수 있다는 점을 인식하는 것이 중요합니다.계속 앞서 나가기 위해서는 끊임없이 진화하는 이 분야에서 발생하는 새로운 기술과 방법론을 지속적으로 탐색하고, 테스트하고, 적응해야 합니다.