2024. 1. 26. 14:22ㆍit
SnowFlake And AWS Connetcion 하는 방법을 알아보겠다. 해당 기능은 snowflake의 worksheets에서 작업을 하겠다.
1. Snow Flake 화면에서 worksheets를 클릭
2. worksheets에서 + 버튼을 클릭 후, SQL 를 선택한다.
3. 데이터베이스를 생성한다.
create database TEST
그럼 왼쪽 데이터베이스 리스트에 [TEST] 가 생긴 걸 볼 수 있다.
4. 파일 포멧을 만든다.
CREATE OR REPLACE FILE FORMAT PARQUT_SNAPPY
TYPE = parquet
COMPRESSION = SNAPPY;
파일 포멧을 파일을 읽을 때, 사용하는 포맷을 사용하면 된다. 나는 Parquet.snappy 파일 기준으로 생성했다.
5. SnowFlake의 strage를 AWS의 s3랑 연결한다.
'{ }' 로 채워진 부분을 각자의 경로를 입력한다.
CREATE STAGE IF NOT EXISTS {stage_name}
URL = 's3://{s3_bucket}/{s3_prefix}''
CREDENTIALS = (
AWS_KEY_ID='{aws_access_key}',
AWS_SECRET_KEY='{aws_secret_key}'
);
6. 웨어하우스를 생성한다. ( 자원 할당 )
CREATE WAREHOUSE my_warehouse
WAREHOUSE_SIZE = 'X-SMALL'
WAREHOUSE_TYPE = 'STANDARD'
AUTO_SUSPEND = 120
AUTO_RESUME = TRUE;
7. SnowFlake의 테이블을 생성한다.
해당 쿼리는 아래와 같이 만들지 말고, sql과 같이 "create table" 하면 된다. 나 같은 경우, 다이나믹 테이블 생성 방식으로 파일 구조를 파악해, 자동으로 테이블을 생성하는 방식이다.
CREATE TABLE IF NOT EXISTS V112_TABLE
USING TEMPLATE (
SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*))
FROM TABLE(
INFER_SCHEMA(
LOCATION=>'@AWS_S3',
FILE_FORMAT=>'PARQUT_SNAPPY'
)
));
8. 그리고 테이블에 stage에 저장된 데이터를 복사해준다.
COPY INTO V112_TABLE
FROM @AWS_S3 FILE_FORMAT = (FORMAT_NAME= 'PARQUT_SNAPPY') MATCH_BY_COLUMN_NAME=CASE_INSENSITIVE;
9. SQL 실행
SELECT *
FROM V112_TABLE
LIMIT 10;
이렇게 하면, SNOWFLAKE에서 데이터가 조회된다. 해보면 별거없지만, 처음하면 생각보다 버벅거린다. 그래서 정리 했다. 성능적인 측면에서 AWS 서비스들보다 확실히 빠른거 같다.
하지만, 클라우드를 사용하는 사람 입장에서는 Snowflake 가 들어가면, 최소 2개의 멀티 클라우드를 사용해야 한다. 그래서 관리포인트가 늘어난다.
비용은 아직 계산해 보지 않아서 잘 모르겠다. 나중에 한번 계산해서 글을 올리겠다.
'it' 카테고리의 다른 글
snowflake 성능 및 비용 테스트 결과 ( aws athena 와 비교 ) (0) | 2024.02.06 |
---|---|
snowflake 사용 요금 보는 방법 ( feat.SQL ) (0) | 2024.01.26 |
주식 예측 AI 개발 노트 (0) | 2023.11.17 |
LangChain과 MongoDB 연동 (feat. sentence_transformers ) (0) | 2023.11.08 |
Object of type datetime is not JSON serializable (0) | 2023.07.14 |