ELT 파이프라인(dbt)을 Step Function 및 ECS로 만들어 보십시오.
나는 데이터 파이프라인을 서버에 제어하고 싶다
ELT 및 dbt 정보
데이터 활용 디스크의 역할 중 하나는 데이터를 수집하여 데이터 슈퍼마켓에 가공하는 것이다.이전에는 저장장치 가격이 높아 협력 단계에서 가공하면 저장 원가를 억제할 수 있는 ETL이 주류였으나 최근 몇 년 사이 아키텍처 진화에 따라 연합할 때 가공이 거의 없어 협업해 가공하는 ELT가 주목받았다.
이런 데이터 공학의 세계관이 커지는 가운데 ELT를 맡은 OSS dbt(data build tool)에 주목한다.
ELT이므로 서버 비활성화의 의미가 있음
ELT는 SQL에 데이터 변환을 구현하는 파이프라인이 장점이어서 스노우플랙과 같은 클라우드 DWH 출력(또 다른 Extract/Load가 간단해지는 등 다양한 장점도 있다)을 사용할 수 있다.
즉, ELT의 데이터 파이프라인은 작은 컴퓨팅 리소스로 구성될 수 있습니다.
한 걸음 더 나아가면 ELT 라인의 컴퓨터 자원에서 컨테이너를 활용하면 현대의 서버 구조가 될 수 있다.
구체적으로 dbt를 컨테이너화하고 ECS Fargate로 이동하고 Step Function으로 워크플로우를 관리하면 Serbules로 ELT 데이터 파이프라인을 충분히 구축할 수 있다.
(응, 원래dbt cloud를 쓰면 안 돼? 난 당분간 그렇게 생각하지 않아)
손을 묶을 수 있도록 책을 같이 만들자고 앞으로 체계적으로 정리하고 싶다.이번에는 그 구상을 노트로 남겨 두었다.
구성도
구성도는 이런 느낌.
Docker의 컨테이너를 구축하고 ECR로 밀어붙이는 동시에dbt점으로서의문서put를S3에,Cloudfront+Lambda@Edge를 참고하십시오.
CI/CD 환경
공통 관계의dbt 항목, Docker file 및buildspecyml 설정을 CodeCommiit에서 관리합니다.
dbt 프로젝트 개발
dbt 프로젝트는dbt의 모델과 설정 파일을 설정합니다.기본적으로 개발 환경에서 다음과 같이 개발된 이미지입니다.
Docker file 정보
Docker file에서 지정한 기본 이미지를 안정적으로 만들기 위해dbt가 설치된 이미지를 미리 준비하십시오.
공동으로 관리하는dbt 프로젝트를 최신 용기에 복사합니다.
buildspec.yml 정보
나는 구축 과정에서 두 가지 일을 하고 싶다.
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
- echo generating dbt document started on `date`
- aws start-execution --state-machine-arn <value>
CodePipeline 파이핑을 통해 파이프링됩니다.ECS 및 Step Function
ECS는 Terraform과 함께 코드 관리를 구상했다.
솔직히 Step Function은 어려운 부분인데, GUI 기반으로 개발된 Stop Function Workflow Studio의 기능이 충실하고 기능 추가도 활발하기 때문에 이걸 이용하는 게 좋을 것 같다(반대로 사용하지 않으면 아쉽다).
문서를 맡기다
S3의 웹사이트 레지스터링 기능에서 사용할 수 있지만 데이터 카탈로그는 일반에 공개되지 않기 때문에 인증을 해야 한다.이전에 정리했던 클라우드 프론트 +Lambda@Edge조합 + 코그니토 방법을 사용하고 싶습니다.
기타
파라메터 스토어 설정도 테라폼을 활용하려고 한다.
RDS PostgreSQL을 다른 베이스 개체 데이터베이스로 사용하고자 합니다.
테라form으로 VPC와 RDS 같은 자원을 만들고 싶습니다.
이상은 구상한 노트입니다.
Reference
이 문제에 관하여(ELT 파이프라인(dbt)을 Step Function 및 ECS로 만들어 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/jimatomo/articles/84b91ec21b555a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)