CSV 데이터를 Redshift 테이블로 직접 가져옵니다.
-- 1. 테이블 생성
CREATE TABLE my_table (
id INT,
name VARCHAR(100),
value DECIMAL(10,2)
);
-- 2. S3에서 COPY
COPY my_table
FROM 's3://your-bucket/path/to/file.csv'
IAM_ROLE 'arn:aws:iam::123456789:role/RedshiftS3Role'
FORMAT AS CSV
IGNOREHEADER 1 -- 헤더 행 건너뜀
DELIMITER ','
REGION 'ap-northeast-2';
S3 데이터를 외부 테이블로 정의해서 바로 쿼리합니다. 데이터를 Redshift에 로드하지 않아도 됩니다.
-- 1. 외부 스키마 생성 (Glue Data Catalog 사용)
CREATE EXTERNAL SCHEMA spectrum_schema
FROM DATA CATALOG
DATABASE 'my_glue_db'
IAM_ROLE 'arn:aws:iam::123456789:role/RedshiftS3Role'
CREATE EXTERNAL DATABASE IF NOT EXISTS;
-- 2. 외부 테이블 정의
CREATE EXTERNAL TABLE spectrum_schema.my_csv_table (
id INT,
name VARCHAR(100),
value DECIMAL(10,2)
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://your-bucket/path/to/folder/'
TABLE PROPERTIES ('skip.header.line.count'='1');
-- 3. 바로 쿼리
SELECT * FROM spectrum_schema.my_csv_table LIMIT 10;