2016-08-22 7 views
2

Amazon S3에 저장된 파일에 데이터 묶음이 있으며 Redshift에서 데이터 저장소를 만드는 데 사용할 계획입니다. 내 첫 번째 질문은 Redshift에서 DV 및 데이터 마트를 모두 구축하는 것이 올바른지 아니면 S3를 데이터 레이크로 간주하고 Redshift에서 데이터 마트 만 사용해야하는지 여부입니다.Redshift 및 ETL 전략의 데이터 저장소

제 건축에서 저는 현재 이전의 S3 데이터 레이크 + 레드 쉬프트 볼트 및 마트를 고려하고 있습니다. 그러나 Redshift에서 ETL 프로세스를 직접 생성하여 Mart에 데이터를 채우거나 아니면 Amazon EMR을 사용하여 S3의 원시 데이터를 처리하고 새 파일을 생성해야하는지 여부는 알 수 없습니다. 마지막으로 마트에로드하십시오.

두 번째 질문은 다음과 같습니다. ETL 전략은 무엇이되어야합니까? 감사.

+1

S3는 관계형이 아니며 기본적으로 파일을 저장하는 데 사용됩니다. Data Vault는 관계형 데이터베이스에 구현되므로 S3에서 데이터 볼트를 만들 수 없습니다. S3에서 허브, 링크, 위성을 어떻게 구축할까요? 용어를 찾고 있다면 S3가 '데이터 호수'라고 불릴 수도 있습니다. (지금은 더러움을 느낍니다.) –

+0

@ Nick.McDermaid, 네 말이 맞아. 나는 내 건축물에서 S3 호수를 데이터 호수로 생각하고있다. 제 질문은 Redshift에서 DV 및 데이터 마트를 사용하거나 호수의 데이터로 채워진 데이터 마트 (질문을 편집합니다)에 관한 것입니다. 내가 생각하는 S3에서 데이터로 Vault를로드 한 다음 Vault에서 데이터로 마트를로드합니다. 그러나 Redshift에서 ETL 프로세스를 직접 생성 할 수 있는지 또는 S3의 파일을 처리하여 Amazon EMR과 같이해야하는지, 마트 및로드 용 데이터가있는 새 파일을 생성하는지 여부는 알 수 없습니다 레드 쉬프트에서? –

+2

데이터 저장소가 필요한 경우 redshift로 작성해야합니다. 파일을 DV 또는 DM에로드 할 수 있습니다. DV를 원한다면보기를 통해 DV에 DV를로드하고 삽입/업데이트 문을 삭제할 수 있습니다. 즉, 파일을 다시 내보내고 가져올 필요가 없습니다. Redshift에 파일을로드하려면 redshift에 연결하고 redshift 내부에 COPY 명령을 실행하여 데이터를로드하기 위해 일종의 스케줄링/작업 실행 도구 (AWS에서든 아니든)가 필요합니다. 나는이 일을하는 프로젝트를 조사했으나 결코 시작하지 않았다. 그래서 이것은 지금 당장 나를위한 모든 이론이다. –

답변

0

사과! 논평에 대한 평판이 없기 때문에 나는 대답 부분에 글을 쓰고있다.

나는 너와 똑같은 배에있다. 레드 쉬프트에서 ETL 작업을 수행하려고 시도 중입니다. 현재 30 억 개의 행을 가지고 있으며 크게 성장할 것으로 예상됩니다.
지금 바로 AWS 람다에서 정기적으로 호출되는 DML을 사용하여 적색 변이로 데이터 마트에 데이터를로드합니다. 나에게 따르면 Redshift에서 데이터 보관소를 만드는 것은 매우 어렵습니다.

+0

당신은 이미 나보다 더 많은 진전을 이룩한 것 같습니다. 저는 현재 흐름과 데이터 아키텍처의 v0.1을 정의하고 몇 가지 연구를하고 있습니다. Data Vault 전략은 나에게 많은 의미가 있으므로 이제 Redshift를 사용하여 구현의 의미를 이해하려고합니다. Vault와 Marts 간의 ETL을 위해 Amazon Data Pipeline을 사용 했습니까? 필자가 읽은 바로는 작은 추가 비용으로 실현 가능한 접근 방법 인 것처럼 보입니다. –

+0

예, 데이터 파이프 라인을 사용할 수 있지만 데이터 파이프 라인의 최소 일정 간격은 15 분이며 비즈니스 요구가 더 자주 발생한다는 사실을 알고 있어야합니다. 또한 Redshift (Source)와 Redshift (Destination) 사이의 스테이징 테이블에서 SQL 변환을 수행하기위한 설명서를 찾을 수 없습니다. –

0

S3는 파일의 키 - 값 저장소입니다. DV 또는 DW를 만들 수 없습니다. 따라서 Redshift 또는 EMR을 사용하여 DV의 관계형 형식으로 데이터를 처리 할 수 ​​있습니다. 선택 여부에 달려 있습니다. EMR의 특정 사용 사례가 있습니다. IMO

+0

S3가 DV 용이 아니라는 것이 분명합니다. 질문은 Redshift의 DV + DM과 DM의 차이에 관한 것입니다. 또한 Redshift의 관계형 모델에 S3 데이터를 채우는 ETL 전략을 묻습니다 –

+0

Redshift에서 DM 만있는 경우 DV를 어디에 저장할 것입니까? EMR? 그건 비싼 해결책 중 하나입니다. 또는 DV를 완전히 사용하지 않으려는 것 같습니다. 나는 당신의 접근 방식을 여기에서 이해하지 못할 것이다. 왜 당신은 ETL의 관점에서 DV를 순수하게 사용하고 싶습니까? – simplycoding

+0

나는 내 질문에 대해 분명히해야만했다. 데이터를 가져올 위치에서 DV를받는 방법에 대한 정보를 얻으려면 S3의 데이터로 채워진 Redshift의 DM 만 있으면서 EMR을 통해 사전 처리해야 할 수 있습니다. 나는 DV에 대해 읽었으며 많은 장점을 보았지만 여전히 다른 경험을 듣고 싶습니다. DV 권장 사항을 가정하면 다른 사람들이 DV (Redshift)에서 DM (Redshift)으로 데이터를 변환 및로드하는 방법을 알고 싶습니다. Lambda, Data Pipeline, Redshift의 SQL, EMR을 사용하여 DV에서 데이터를 가져와 DM에 저장 하시겠습니까? –

0

임사진이 조금 늦었지만 의심의 여지가 있지만 여전히 관련성이 있습니다. 그냥 내 의견을 공유 할 줄 ​​알았는데. 한 가지 해결책은 S3 및 Hive를 영구 스테이징 영역 (데이터 레이크)으로 사용하여 소스에서 데이터를 착륙시키는 것입니다. Redshift에서 완전히 DV를 구성하십시오. S3에서 파일을 가져 오려면 Redshift에 스테이징 영역이 필요합니다. 그러면 Redshift 스테이징 테이블 (여기에는 EMR/Hive가 들어오는 곳)으로 해시가 계산됩니다. Redshift에서 직접 해시를 추가 할 수 있지만 볼륨에 따라 Redshift를 강요 할 수 있습니다. 일반 오래된 대량 삽입 및 업데이트 명령문을 통해 스테이징에서 DV로 데이터를 전송 한 다음보기를 사용하여 Redshift에서 마트를 가상화하십시오.

데이터 파이프 라인 도구를 사용하여이 작업을 수행 할 수 있으며 람다는 사용자 또는 다른 워크 플로/파이프 라인 도구의 후보가 될 수도 있습니다.