본문 바로가기

개발

S3에 Parquet 파일 올리고 Athena로 조회

1️⃣ AWS S3 bucket 생성

AWS console의 S3에 접속

 

bucket 생성

 

bucket 이름과 지역 설정 후 하단의 create bucket

 

2️⃣ IAM 계정 만들기

현재 Root계정이라면 IAM계정을 먼저 만들자

Root 사용자는 AWS 계정 전체를 컨트롤할 수 있는 최고 권한 계정이기 때문에

혹시라도 accesskey등이 유출되면 문제가 있을 수 있기 때문이다

 

Create User

 

user 이름 설정

 

일단 개인 공부할 것이면 Attach polices directly 선택 후 

AmazonS3FullAccess, AmazonAthenaFullAccess,  AmazonS3ReadOnlyAccess 를 검색하여 선택한다

선택해야하는 권한들

 

 

마지막 단계. 정보들을 확인하고 하단의 Create user버튼을 누른다

'

이제 IAM user가 만들어졌다!

 

 

3️⃣ Access key 생성

원하는 IAM user 선택 후

아래의 tab들 중에서 Security credentials 탭 - Create access key를 누른다

 

원하는 것 선택. 나의 경우 CLI선택 후 아래쪽의 next를 누른다

 

access 키가 여러개일 경우 tag설정하는 것이 좋지만 나는 하나라 설정하지 않음

이제 access key 생성 완료!

모두 확인해주고 csv파일도 다운받아놓자

 

4️⃣ AWS CLI 설치

https://docs.aws.amazon.com/cli/v1/userguide/install-windows.html#msi-on-windows

 

Installing, Updating, and Uninstalling the AWS CLI version 1 on Windows - AWS Command Line Interface

These configuration and credentials settings are shared across all AWS SDKs and the AWS CLI. If you remove this folder, they cannot be accessed by any AWS SDKs that are still on your system.

docs.aws.amazon.com

사이트의 아래쪽에

msi파일 다운받고 설치

 

cmd, powershell 등 terminal에서 

aws --version 입력시 아래와 같이 나오면 정상 설치된 것
aws-cli/1.38.17 Python/3.12.6 Windows/11 botocore/1.37.17

 

aws configure후에 자신의 정보 입력을 완료한 뒤

aws s3 ls 했을 때 자신의 bucket이름이 정상적으로 뜨면 성공

 

 

5️⃣ parquet 파일 S3에 업로드하기

이제 uploadS3.py를 실행시키자 python uploadS3.py

혹은  S3에 해당 경로에 들어가서 직접 parquet파일을 넣어도 된다.

 

uploadS3.py

import boto3

# S3 설정
bucket_name = "본인버킷이름"
s3_key = "goodgood/파일이름.parquet"  #S3에 저장할 경로 예시

# 업로드
s3 = boto3.client('s3')
s3.upload_file("파일이름.parquet", bucket_name, s3_key)

print(f"S3 업로드 완료~~ : s3://{bucket_name}/{s3_key}")

 

 

 

6️⃣ Athena에서 SQL로 S3에 업로드한 Parquet 데이터 조회

 

Athena > Query editor로 이동

 

 

database 없거나 만들고 싶을 경우 생성

create database 데이터베이스명;

 

 

원하는 database선택 후 parquet데이터와 상응하는 테이블 만들기

 

테이블 생성 쿼리 예시

CREATE EXTERNAL TABLE IF NOT EXISTS 데이터베이스명.테이블명 (
  seq INT,
  Column1 STRING,
  Column2 INT,
  Column3 INT,
  Column4 STRING,
  Column5 STRING
)
STORED AS PARQUET
LOCATION 's3://s3버켓이름/parquet파일위치/';

 

이제 확인해보면 잘 뜨는걸 볼 수 있다

select * from 데이터베이스명.테이블명;

조회 결과

 

 

 

이제 이 데이터를 C#에서 조회해 보고 싶다면 참고하시라~

https://yun000.tistory.com/296

 

AWS Athena를 통해 S3 parquet 데이터 조회 (C#)

목적대용량 데이터를 S3에 parquet 파일로 저장 후Athena를 활용하여 C#프로그램에서 데이터를 조회해 보자 선행 과정S3에 parquet 파일 저장후 Athena로 데이터 조회 해보기https://yun000.tistory.com/295 S3에

yun000.tistory.com

 

'개발' 카테고리의 다른 글

FastAPI  (0) 2025.03.21
AWS Athena를 통해 S3 parquet 데이터 조회 (C#)  (0) 2025.03.21
[Node.js] package.json, package-lock.json  (0) 2025.03.12
[Node.js] Node.js 기초  (0) 2025.03.07
[Vue] 전역 component  (0) 2025.03.07