Parquet 형식의 대용량 데이터 불러오기

시작하기

이전에는 Xplenty에서 parquet 형식은 쓰기만 지원했습니다. 하지만 2024년 3월부터 parquet 포맷의 읽기를 지원하기 시작했습니다.

이전 글에서도 언급했듯이 parquet 형식은 대용량 데이터 처리에 특화되어 있습니다. 이번 글에서는 지난 글에서 작성해 놓은 parquest 형식의 데이터를 읽어와 다른 패키지와 연동하는 패키지를 소개하고자 합니다.

Xplenty로 Parquet 포맷으로 작성하기

1. parquet 형식 데이터 준비

먼저 parquet 형식의 데이터를 저장할 FileStorage source에서 사용할 수 있는 Sftp 서버나 오브젝트 스토리지(S3, Google Cloud Storage, Azure Blob Storage)를 준비합니다. 대용량 데이터 쓰기는 Parquet 형식으로 다양한 저장 방법 문서를 참고하여 대용량 데이터를 parquet 형식으로 저장해 놓으세요.

이제 준비 완료입니다.

2. parquet 형식의 데이터 불러오기

익숙한 패키지 편집 화면으로 들어가 FileStorage source 컴포넌트를 선택하고, FileStorage source의 세부 설정을 아래를 참고하여 입력하면 parquet 형식의 파일을 불러올 수 있습니다.

항목명 설정값
Connector S3
Bucket 해당 커넥터의 버킷 이름
Path  /parquet-output/2020-citibike-tripdata.*.parquet ※ 개인 설정에 맞게 변경해 주세요!
Record delimiter  New Line
Record type  parquet

thumbnail imagethumbnail image

3. 추가 필드 설정하기

Select 컴포넌트를 선택하고 아래와 같은 필드를 추가합니다.
Auto-fill 버튼으로 필드를 모두 추가한 후, 마지막 필드로 이동합니다.  필드 오른쪽의 +를 클릭하면 새로운 필드가 추가되므로 아래 표에 따라 Expression과 Alias를 그대로 입력합니다.

Expression Alias
ToString(CurrentTime(), 'yyyy-MM-dd HH:mm:ss')  imported_at_utc
ToString(SwitchTimeZone(CurrentTime(), 'Asia/Seoul'), 'yyyy-MM-dd HH:mm:ss')  imported_at_kst
ToString(SwitchTimeZone(CurrentTime(), 'Asia/Tokyo'), 'yyyy-MM-dd HH:mm:ss')  imported_at_jst

thumbnail image

4. 데이터 JSON 포맷으로 내보내기

추가 필드 설정 후 JSON 형식으로 내보내기 위해 FileStorage destination을 패키지에 추가합니다.
FileStorage destination을 Select 컴포넌트에 연결하고, 아래 표에 따라 세부 설정을 마치면, 드디어 parquet 형식을 읽어와 이를 JSON 형식으로 내보내는 데이터 파이프라인이 완성 됩니다.

항목명 설정값
Connector S3
Target bucket 해당 커넥터의 버킷 이름
Target directory json-output-test
Destination format Line Delimited JSON
Destination action Write all files directly and replace files in directory if they already exist
Merge output to single file 체크
Target file names Custom pattern
File name prefix 2020-citibike-tripdata.

thumbnail image

완성된 패키지를 Save and Validate 버튼으로 저장하고 클러스터에서 실행하면 아래와 같이 지정된 파일명으로 json-output-test 디렉터리에 JSON 파일이 저장됩니다.

thumbnail image

※ 참고 - 파일 불러오기 시 timeout 에러가 발생하는 경우 대응 방법

FileStorage source에서는 데이터 불러올때 아래 그림과 같이 timeout 에러가 발생하는 경우가 있습니다.
Parquet이나 Excel 형식의 파일은 스키마 구조를 파악하기 위해 파일의 처리가 필요합니다. 파일에 있는 데이터가 적으면 문제가 없지만, 데이터가 많으면 파일 처리에 예상보다 많은 시간이 소요됩니다.

thumbnail image

이 경우, 우선 Path에 데이터가 적은 Parquet이나 Excel 형식의 파일을 지정하여 FileStorage source나 패키지를 구성하고 저장, 테스트를 한번에 완료 하십시요.
FileStorage source를 다시 열고 02 Source properties로 이동하여 Path를 실제 사용할 데이터 용량이 많은 파일명으로 설정한 후 그대로 Save 버튼을 클릭하여 저장한다.

이때 주의할 점은 03 Select input fields로 이동하지 않는 것입니다. 실수로 잘못 갔다면 그대로 Cancel 버튼으로 저장하지 말고 설정 화면에서 나가서 다시 FileStorage source를 열고 02 Source properties에서 Path의 파일명을 변경해 주세요.

마치기

Parquet 형식은 대용량 데이터를 빠르게 처리하고 저장 공간을 절약하는 데 매우 유용하며, AWS의 Athena에서도 이 파일 형식을 지원하기 때문에 다양한 대용량 데이터를 parquet 형식으로 전송하여 분석 업무에 빠르게 대응할 수 있습니다.

저희 integrate.io는 2주 무료 체험판을 제공하고 있습니다. 꼭 한번 사용해 보시기 바랍니다.