본문 바로가기
728x90
반응형
SMALL

Data-driven Methodology/Data Engineering8

[Data Engineering] 데이터 파이프라인 빌드 데이터 파이프라인 빌드 Docker 및 PostgreSQL을 활용하여 ETL (추출, 변환, 로드) 프로세스를 위해 여러 개의 컨테이너를 실행시키는 어플리케이션을 정의하기 위한 docker-compose.yaml 파일을 생성한다. docker-compose.yaml 여러 Docker 컨테이너를 조정하는 데 사용되는 Docker Compose에 대한 구성이 포함되어 있다. 이는 세 가지 서비스를 정의한다. version: '3' services: source_postgres: image: postgres:15 ports: - "5433:5432" networks: - etl_network environment: POSTGRES_DB: source_db POSTGRES_USER: postgres POSTGR.. 2024. 1. 23.
[Data Engineering] Docker Compose Docker Compose Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 공유하는 데 도움이 되는 도구이다. Compose를 사용하면 YAML 파일을 생성하여 서비스를 정의할 수 있으며 단일 명령으로 모든 것을 가동하거나 해체할 수 있다. Compose 사용의 가장 큰 장점은 어플리케이션 스택을 파일로 정의하고 이를 프로젝트 저장소의 루트에 보관하며 (이제는 버전 제어됨) 다른 사람이 프로젝트에 쉽게 기여할 수 있도록 할 수 있다는 것이다. 누군가는 저장소를 복제하고 Compose를 사용하여 앱을 시작하기만 하면 된다. Compose 파일 생성 getting-started-app 디렉터리에 compose.yaml 파일을 만든다. 이제, compose.yaml 파일에서 서비스를 정의한다.. 2024. 1. 23.
[Data Engineering] 다중 컨테이너 앱 다중 컨테이너 앱 어플리케이션 스택에 MySQL을 추가하게 된다. 여기서 MySQL은 어디에서 실행되는지, 동일한 컨테이너에 설치하거나 별도로 실행하는지의 의문이 생긴다. 일반적으로 각 컨테이너는 한 가지 일을 잘 수행해야 한다. 컨테이너를 별도로 실행하는 몇 가지 이유는 다음과 같다. API와 프런트엔드를 데이터베이스와 다르게 확장해야 할 가능성이 높다. 별도의 컨테이너를 사용하면 버전을 별도로 버전화하고 업데이트할 수 있다. 로컬에서 데이터베이스용 컨테이너를 사용할 수 있지만 프로덕션 환경에서는 데이터베이스용으로 관리형 서비스를 사용할 수 있다. 그러면 데이터베이스 엔진을 앱과 함께 제공하고 싶지 않을 것이다. 여러 프로세스를 실행하려면 프로세스 관리자 (컨테이너는 하나의 프로세스만 시작)가 필요하므.. 2024. 1. 23.
[Data Engineering] 데이터베이스 유지 데이터베이스 유지 컨테이너를 시작할 때마다 to do 목록이 비어 있다. 컨테이너 파일 시스템 컨테이너가 실행되면 파일 시스템에 대한 이미지의 다양한 레이어를 사용한다. 또한, 각 컨테이너에는 파일을 생성/업데이트/제거하기 위한 자체 "스크래치 공간"이 있다. 동일한 이미지를 사용하더라도 다른 컨테이너에는 변경 사항이 표시되지 않는다. 1에서 10000 사이의 임의의 숫자로 ubuntu이름이 지정된 ./data.txt 파일을 생성하는 컨테이너를 시작한다. docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null" 컨테이너의 터미널에 액세스하여 출력을 볼 수 있는지 확인한다. 이를 위해 CLI 또는 Docker .. 2024. 1. 23.
[Data Engineering] 어플리케이션 업데이트 어플리케이션 업데이트 src/static/js/app.js 파일에서 새로운 빈 텍스트를 사용하도록 56행을 업데이트한다. - No items yet! Add one above! + You have no todo items yet! Add one above! docker build 명령을 사용하여 업데이트된 버전의 이미지를 빌드한다. docker build -t getting-started . 업데이트된 코드를 사용하여 새 컨테이너를 시작한다. docker run -dp 127.0.0.1:3000:3000 getting-started docker: Error response from daemon: driver failed programming external connectivity on endpoint p.. 2024. 1. 23.
[Data Engineering] 도커 (Docker) 도커 (Docker) 신뢰할 수 있는 데이터 인프라 구축과 중복된 작업을 피하기 위해 데이터 엔지니어링은 필수이다. 모든 어플리케이션 및 패키징, 종속된 라이브러리를 어느 환경에서나 개발하기 위해서 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 도커를 사용한다. Dockerfile Dockerfile은 지정된 이미지를 빌드하는 데 필요한 모든 명령을 순서대로 나열한 텍스트 파일이다. Dockerfile은 Docker 빌드 명령에 의해 Docker 이미지를 생성하는 데 사용된다. Image 이미지는 읽기 전용이며 변경되지 않는다. Docker 이미지는 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 경량의 독립 실행형 실행 패키지다. Conta.. 2024. 1. 22.
Extract / Transform / Load (ETL) Extract / Transform / Load (ETL) 여러 파일 형식에서 데이터를 추출하고, API 및 웹 스크래핑을 통해 데이터를 수집하고, 마지막으로 수집된 데이터를 로드할 수 있는 형식으로 변환하는 등의 특정 작업을 수행한다. 그런 다음 동료가 작업을 검토하고 평가할 수 있도록 Python 노트북과 스크린샷을 제출한다. 추출 (Extract) import glob list_csv=glob.glob('*.csv') list_json=glob.glob('*.json') # extract csv def extract_from_csv(file_to_process): dataframe = pd.read_csv(file_to_process) return dataframe df = extract_from_.. 2022. 5. 11.
데이터 공학 (Data Engineering) 데이터 공학 (Data Engineering) 데이터 공학은 대규모 데이터 수집, 저장 및 분석을 위한 시스템을 설계하고 구축하는 작업이다. 거의 모든 산업에 응용 프로그램이 있는 광범위한 분야이다. 조직은 방대한 양의 데이터를 수집할 수 있는 능력을 갖추고 있으며, 데이터 과학자와 분석가에게 전달될 때까지 데이터의 가용성이 높은 상태를 유지할 수 있는 적절한 인력과 기술이 필요하다. 데이터 과학자의 삶을 더 쉽게 만들 수 있을 뿐만 아니라, 데이터 엔지니어로 일하는 것은 세계에서 실질적인 변화를 가져올 수 있는 기회를 제공할 수 있다. 머신러닝과 딥러닝과 같은 분야는 데이터 엔지니어가 해당 데이터를 처리하고 채널링하지 않으면 성공할 수 없다. 데이터 엔지니어는 다양한 환경에서 작업하여 원시 데이터를 수.. 2022. 5. 11.
728x90
반응형
LIST