CDC 기반 스파크 아키텍처 구현 방법이 궁금합니다.
현재 RDS에 저장된 데이터를 AWS DMS를 활용해 Parquet 포맷으로 변환하여 S3에 저장한 뒤, EMR(Apache Spark)에서 해당 데이터를 분석/처리하는 구조를 고려하고 있습니다.
이 방식이 일반적인 데이터 파이프라인 아키텍처로 적절한지 궁금합니다.
또한 RDS에서 지속적으로 발생하는 변경 데이터를 CDC(Change Data Capture) 기반으로 S3에 업데이트하려고 하는데, 이 역시 DMS를 활용하는 것이 최선인지 아니면 다른 접근 방안이 더 적절한지도 조언 부탁드립니다.
回答 2
0
앗 죄송합니다. 제가 질문이 들어온 걸 인지를 못하고 있었네요
RDS -> (CDC) -> S3(Parquet) -> EMR/Spark 는 매우 보편적이고 잘 쓰이는 패턴입니다.
다만 “CDC → S3” 구간은 DMS로 단순 적재만 하고, 실제 ‘업서트/삭제 반영·컴팩션·스키마 진화’는 Lakehouse 포맷(Hudi/Iceberg/Delta)로 관리하는 것이 실무에서 가장 깔끔합니다.
즉, DMS는 추출·전달(Extraction), EMR/Glue는 테이블 관리(Upsert/Compaction/Optimize) 역할을 분리하는 구성이 베스트 프랙티스에 가깝습니다.
도움이 되셨다면 좋겠네요.
0
안녕하세요, 인프런 AI 인턴입니다. owen4님.
CDC 기반의 데이터 파이프라인 아키텍처를 설계하고 계시는군요. 현재 고려 중이신 RDS 데이터를 AWS DMS를 사용하여 Parquet 포맷으로 변환해 S3에 저장한 후, EMR에서 Apache Spark를 활용하여 분석 및 처리하는 방식은 매우 일반적이며 널리 사용되는 아키텍처입니다. 이 방식을 통해 데이터를 효율적으로 관리하고, Spark의 강력한 처리 기능을 활용할 수 있습니다.
RDS 데이터 파이프라인의 핵심 고려사항:
데이터 파이프라인:
- RDS에서 AWS DMS를 통해 Parquet 포맷으로 S3에 데이터를 저장하기 위한 파이프라인은 일반적으로 적합하며, 확장 가능성도 좋습니다.
- Parquet 포맷은 컬럼 저장 방식이어서 대용량 데이터 분석에 효율적입니다.
- RDS에서 AWS DMS를 통해 Parquet 포맷으로 S3에 데이터를 저장하기 위한 파이프라인은 일반적으로 적합하며, 확장 가능성도 좋습니다.
CDC(Change Data Capture) 기반 업데이트:
- AWS DMS는 CDC 기능을 제공하여 데이터베이스 변경 사항을 S3로 실시간 반영할 수 있습니다. 이는 CDC 작업의 복잡성을 줄이고, 안정적인 데이터 이동을 가능하게 합니다.
- 추가적으로, Kafka와 같은 메시지 브로커를 사용하여 CDC 이벤트를 처리함으로써, 실시간 스트리밍 데이터 파이프라인도 구축할 수 있습니다.
- AWS DMS는 CDC 기능을 제공하여 데이터베이스 변경 사항을 S3로 실시간 반영할 수 있습니다. 이는 CDC 작업의 복잡성을 줄이고, 안정적인 데이터 이동을 가능하게 합니다.
아래 관련 질문들에서 leeceo97님과 비슷한 문제를 다루고 있으며, 관련된 해결책과 경험을 공유하고 있습니다:
- cdc 기반의 스트리밍 데이터 처리
- EMR 환경시 분산처리가능하게하는 conf 설정 문의
이 답변이 도움이 되었기를 바랍니다. 추가적으로 궁금한 점이 있으시면 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
databricks에 cluster 메뉴가 없습니다.
0
49
2
주피터 사용 및 도커 설치
0
94
2
S3 폴더 구조에 따른 Static Partition Pruning, DPP 질문
0
77
2
broadcast Join과 boradcast + UDF 차이
0
63
2
append 모드 사용 시 집계
0
67
2
BroadCast 지원 가능 메모리 문의
0
90
2
rdd, dataframe, spark sql 각각 언제 사용할까요?
0
189
2
강의 후반부에 나온 실습 코드는 어디서 받을 수 있나요?
0
203
3
cdc 기반의 스트리밍 데이터 처리
1
231
2
broadcast 코드 예시 관련 질문
0
129
2
재생에 문제가 생겼어요 라는 메세지가 자꾸 뜨네요
0
116
1
스트리밍 예제 실행 시 py4j.protocol.Py4JNetworkError 발생
0
215
2
Repartition과 Coalesce에 대해 궁금한 점이 있어요!
1
166
1
pyspark 현업에서 로컬 개발 및 운영
1
338
1
Spark Structured Streaming Gracefully shutdown 질문
1
448
2
PySpark Runtime Architecture 내용 중 질문이 있습니다!
1
214
1
docker 설치 이후에 터미널 여는 부분에서 막혔습니다
1
461
2
app-<timestamp>-<executor_id> 폴더가 spark-events 내부에 생기게 하고 싶습니다.
1
277
1
pyspark.SparkContext 실행 오류 관련 질문
2
380
1
스파크 아키텍쳐 관련 문의 드립니다.
1
353
2
3.0에서 추가된 shuffle_hash, shuffle_replicate_nl hint는 어떤 상황에서 쓰는게 좋을까요?
1
320
1
데이터 엔지니터의 현 트렌드가 궁금합니다
1
473
1
스칼라강의도 제작하신다고 하셨는데 계획하고 계실까요??
1
298
2
pyspark / spark 차이점 질문드립니다.
1
1161
1

