호랭이 분석가

Dask #2. 대스크 Redshift 및 DB, S3, HDFS, parquet, csv 데이터 불러오기 본문

Python/Dask

Dask #2. 대스크 Redshift 및 DB, S3, HDFS, parquet, csv 데이터 불러오기

데이터호랑이 2022. 4. 12. 02:54
반응형

1. DB 데이터 불러오기 ( Redshift )

 

업무에서 사용하는 각종 DB로부터 데이터를 불러와 작업하는 방법을 알아보겠습니다.

기본적으로 Redshift에서 데이터를 불러오는 방법을 소개하나, 응용하여 다른 종류의 데이터베이스로부터 데이터를 불러올 수 있습니다.

 

# Redshift 연결 정보
username = 'dataiger'
password = 'dataiger'
host = 'dataiger-redshift:5439'
database = 'dataiger'

connection_string = f'postgresql://{username}:{password}@{host}/{database}'

 

위의 코드처럼 데이터베이스의 정보를 입력해줍니다. 그리고 다른 종류의 데이터베이스를 사용하신다면 postgresql 부분을 변경하여 사용하시면 됩니다.

 

# DB 데이터 불러오기
import dask.dataframe as dd

df = dd.read_sql_table(con = connection_string,
                       schema = '스키마명',
                       table_name = '테이블명',   
               	       index_col = '인덱스로 설정할 컬럼명',
                       columns = ['컬럼1', '컬럼2'], # 없으면 전체 컬럼 
                       npartitions = 10)

 

 

read_sql_table의 매개변수를 자세히 보고 싶으신 분은 아래의 링크에서 확인하시면 됩니다.

 

 

 

dask.dataframe.read_sql_table — Dask documentation

 

docs.dask.org

 

2. S3와 HDFS 데이터 불러오기

 

아마존의 S3와 하둡 파일 시스템에서도 데이터를 쉽게 불러올 수 있습니다. S3 파일 경로와 HDFS 파일 경로를 입력해주면 쉽게 불러올 수 있습니다.

 

# S3
s3_data = dd.read_csv('s3://bucket/path/*.csv', dtype=dtypes, usecols=usecols)

# HDFS
hdfs_data = dd.read_csv('hdfs://filepath/*.csv', dtype=dtypes, usecols=usecols)​

 

dtype과 usecols 매개변수는 사용하지 않아도 무방하나, 대스크는 기본적으로 데이터 타입이 중요하기 때문에 에러를 내지 않기 위해서 명시적으로 타입을 지정해줄 수 있습니다. 또한 사용할 컬럼을 명시적으로 지정하는 기능을 지원합니다.

 

3. Parquet 데이터 불러오기

 

대스크와 함께 parquet 파일을 사용하기 위해서는 fastparquet 또는 pyarrow 라이브러리를 설치하셔야 합니다.

 

# 라이브러리 설치 
# pip install fastparquet
# pip install pyarrow

# parquet 데이터 불러오기 
parquet_data = dd.read_parquet('*.parquet')

# S3 parquet 불러오기 
s3_parquet_data = dd.read_parquet('s3://bucket/path/*.parquet')

# HDFS parquet 불러오기 
hdfs_parquet_data = dd.read_parquet('hdfs://filepath/*.parquet')​
Comments