반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Zookeeper
- 데이터 엔지니어
- Data Engineer
- 델타레이크
- Data Warehouse
- s3
- 데이터
- airflow
- 데이터 엔지니어링
- 에어플로우
- kafka rest api
- MySQL
- 카프카
- Parquet
- 대용량 처리
- docker
- 스파크 스트리밍
- Schema Registry
- 컬럼 기반
- 스파크
- Redshift
- AWS
- kafka
- Data engineering
- spark streaming
- delta lake
- spark
- 데이터 웨어하우스
- 레드시프트
- 카프카 구축
Archives
- Today
- Total
데이터 엔지니어 기술 블로그
[Redshift] Federated Query(연합 쿼리)란? 본문
반응형
개요
Redshift는 데이터 웨어하우스를 만들 수 있게 도와준다. AWS에서 제공하는 서비스이며, 다양한 소스와 쉽게 결합할 수 있는 기능이 있는데, 연합 쿼리라고 하며 하나의 쿼리 안에 S3, Athena, RDS, Redshift에 있는 데이터를 이용할 수 있다.
레드시프트는 비용이 비싸서 모든 데이터를 여기에 넣을 수 없어서 큰 데이터들은 S3에 넣는 경우가 많으며, 서비스는 RDS를 사용하는데 이 기능을 사용하면 쉽게 결합할 수 있다.
S3에서 데이터를 가져올 경우 Redshift 인스턴스는 사용하지 않고 독립적인 인스턴스를 사용하는 Redshift Spectrum을 이용하게 되는데 비용은 1TB에 5$정도 된다.
사용 방법:
https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html
사용하면서 생겼던 이슈
Athena, RDS(Error=column name "oid" conflicts with a system column name)
[XX000] ERROR: Failed to incorporate external table "db"."table" into local catalog. Error=column name "oid" conflicts with a system column name
- RDS, Athena에서 사용할 수 있었던 컬럼명인데 Redshift에서는 예약어인 경우 사용이 불가능하다.
- 이런 경우에는 파일 자체를 수정해주지 않으면 사용할 수 없다.
S3
- 테이블을 직접 만들어줘야하는 불편함이 있다.
S3(Unsupported implicit cast)
[2021-10-14 01:26:14] -----------------------------------------------
[2021-10-14 01:26:14] error: Spectrum Scan Error
[2021-10-14 01:26:14] code: 15007
[2021-10-14 01:26:14] context: Unsupported implicit cast: Column ('data'), FromType: STRUCT, ToType: VARCHAR, File: -
[2021-10-14 01:26:14] query: 11699342
[2021-10-14 01:26:14] location: dory_util.cpp:1136
[2021-10-14 01:26:14] process: worker_thread [pid=21264]
[2021-10-14 01:26:14] -----------------------------------------------
- STRUCT타입을 VARCHAR로 읽을 수 없다. 이런 경우에는 STRUCT를 풀어서 지원해주는 데이터 형식으로 바꿔주어야 한다.
S3(incompatible Parquet schema)
[2021-10-14 01:39:51] -----------------------------------------------
[2021-10-14 01:39:51] error: Spectrum Scan Error
[2021-10-14 01:39:51] code: 15007
[2021-10-14 01:39:51] context: File '<<file>> has an incompatible Parquet schema for column ...'
[2021-10-14 01:39:51] query: 11700580
[2021-10-14 01:39:51] location: dory_util.cpp:1136
[2021-10-14 01:39:51] process: worker_thread [pid=22929]
[2021-10-14 01:39:51] -----------------------------------------------
- parquet파일을 읽어야 할 경우 스키마를 정확하게 매치시켜주어야 한다.
- glue crawler를 사용하여 테이블로 만든 후 읽는 편이 훨씬 나을 듯 하다.
반응형
'데이터 엔지니어링' 카테고리의 다른 글
[Airflow] Airflow + Celery Executor 구축(Docker) (1) | 2021.10.15 |
---|---|
[🧙Kafka] Confluent License (0) | 2021.10.14 |
[⚡AWS] Redshift 기초 이해하기 (0) | 2021.10.12 |
private PyPI 구축하기(S3 backend) (0) | 2021.10.11 |
[🧙Kafka] 카프카 토픽 이름 짓는 법(Topic Naming Convention) (0) | 2021.07.11 |
Comments