데이터엔지니어

AWS

[AWS REDSHIFT] AIRFLOW S3 → Redshift UPSERT 관련 에러('syntax error at or near "#"')

먼저 이 글은 저와 같이 REDSHIFT를 AIRFLOW와 연동해서 쓸 때 생기는 문제에 관한 글입니다. 문서가 너무 없고, 저만 겪는 상황 같아서, 열심히 삽질한 결과 작성해놓습니다. 이 글을 읽어보실 분들의 조건은 다음과 같습니다. 1. 에러 상황 (1) Redshift Cluster 사용 (2) Delimited identifiers를 사용하지 않으면, Syntax Error가 발생하는가? (3) Airflow S3ToRedshiftOperator를 사용해서, UPSERT 방식으로 데이터를 redshift에 로드하려고 하는가? (4) Schema, Table 명을 Delimited identifiers를 사용해서 구성했는가? 여기까지 오셨으면 저랑 같은 상황입니다.. 일단 웹에 관련 정보는 없어서 ..

AWS

[AWS LAMBDA] DOCKER 활용 AWS LAMBDA 딥러닝 모델 적용

안녕하세요. 오늘은 DOCKER를 활용해서 딥러닝 모델이 포함된 이미지를 만들고, 이미지를 통해서 AWS LAMBDA로 매번 호출해보겠습니다. 이번에 프로젝트에서 사용되는 로직은 다음과 같습니다. DB에 있는 리뷰 데이터(restaurant_review 테이블) 호출 리뷰 데이터를 자연어 처리를 통해서 긍/부정 이진 분류 긍정 값으로 분류된 확률 값(0 ~ 1 사이)을 새로운 컬럼으로 생성 restaurant_id를 기준으로 긍정 확률 평균값 생성 해당 평균 값에 5를 곱해서, 5점 만점의 리뷰 포인트 집계된 데이터를 restaurant 테이블의 star_rating 컬럼에 업데이트 하루에 한번씩 실행 이런 로직을 고민하고 만든 이유는, 최근 많은 사이트에서, 별점에 대한 신뢰성이 떨어진다는 여론과 이걸..

데이터 엔지니어링/Docker

[DOCKER] DOCKER 실습(feat. node.js)

이번 실습은 node.js를 활용해서 간단한 어플리케이션을 만들고, 이미지를 만든 후에, Container Registry에 Push하고, 해당 이미지를 가져와서 Container 내에서 어플리케이션을 구동시키는 실습을 진행해보겠습니다. 1. Docker / VSCODE extension 설치 https://www.docker.com/products/docker-desktop/ Download Docker Desktop | Docker Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today! www.docker.com 먼저 Docker를 설..

데이터 엔지니어링/Docker

[DOCKER] DOCKER 개념 정리

오늘은 DOCKER 개념 정리와 실습 포스팅을 해보겠습니다! DOCKER를 한번도 써본 적이 없는데, 사용할 필요성을 계속 느끼다가 이제서야 정리해봅니다. 사용하게 된 계기는 AWS LAMBDA에 TENSORFLOW 기반으로 작동되는 코드와 패키지들을 올리려고 하니, ZIP 파일 관련해서 250MB 제한이 있어서, 급히 공부 중입니다! 그러면 시작해보겠습니다. 오늘의 포스팅은 유튜브 '드림코딩'님의 영상을 참고하여 작성하였습니다. 이 글을 보기 보단, 영상으로 보시면서 실습해보시면, 이해가 빠르니 해당 영상으로 보시는 걸 더 추천 드립니다! https://www.youtube.com/watch?v=LXJhA3VWXFA 1. DOCKER 개념 Docker란 어플리케이션을 패키징 할 수 있는 툴입니다. Co..

데이터 분석 및 시각화/데이터 시각화

[SUPERSET] 대시보드 REACT 임베딩 하는법(동적 쿼리)

SUPERSET 관련해서, 임베딩 하는 법을 많이 찾아봤는데 자료가 그렇게 많진 않습니다. 그래서 삽질의 삽질을 거듭한 결과, 찾아낸 방법에 대해서 소개드립니다! 제 상황을 말씀드리면, SUPERSET에 있는 대시보드를 외부에 공개해야했고, SUPERSET 서버를 따로 써서 프론트에 임베딩해야하는 상황이였습니다. 이 과정에서 프론트 단에서 동적 쿼리를 전달할 방법이 필요한 상황이였습니다. 그래서 따로 superset 서버를 만들었고, 이 superset 대시보드를 프론트에 임베딩해서 보여줄 계획이였습니다. 서버 설정 OS : Ubuntu 22.04 Python : 3.10 Superset : 2.10 1. 설치 및 superset_config.py 파일 설정 설치 과정은 아래 링크에 적어놓았습니다. ht..

데이터 분석 및 시각화/데이터 시각화

[SUPERSET] 아파치 슈퍼셋(superset) 소개 및 설치

소개 Apache Superset은 데이터 시각화 및 비즈니스 인텔리전스(Business Intelligence, BI) 플랫폼으로, 데이터 분석 및 대시보드 작성을 위한 다양한 기능과 도구를 제공합니다. 다음은 Apache Superset의 주요 특징과 장단점입니다: 장점 다양한 데이터 소스 지원: Apache Superset은 다양한 데이터 소스에 대한 연결과 쿼리 작성을 지원합니다. 주요 데이터베이스 시스템과 연동하여 데이터를 시각화하고 대시보드를 생성할 수 있습니다. 시각화 기능: Superset은 다양한 시각화 차트와 그래프를 제공하여 데이터를 직관적으로 이해하고 전달할 수 있습니다. 사용자는 차트 유형, 축 설정, 필터링 등을 사용하여 데이터를 시각적으로 탐색하고 인사이트를 발견할 수 있습니다..

데이터 엔지니어링/하둡 에코 시스템

[MongoDB]pymongo로 간단한 프로그램 만들기

오늘은 pymongo의 CRUD를 활용해서, 가벼운 프로그램을 만들어보겠습니다! 1. MONGO DB CONNECTION from pymongo import MongoClient import pandas as pd from tabulate import tabulate from bson.objectid import ObjectId def connect_mongodb(): client = MongoClient("mongodb://localhost:27017") mydb = client["signup"] mycoll = mydb["userinfo"] return mycoll Mongo DB에 연결합니다. 저는 database는 signup, collection으로는 userinfo를 사용했습니다. 2. 회원 ..

데이터 엔지니어링/하둡 에코 시스템

[MONGODB] 몽고DB 로컬에 설치하고 파이썬 연동하기

안녕하세요. 오늘은 MongoDB를 로컬에 설치하고, 파이썬에 연동해보겠습니다! https://www.mongodb.com/try/download/community Try MongoDB Community Edition Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project! www.mongodb.com 먼저 해당 사이트에 접속해서, 하단으로 내리시다보면 다운로드 받는 곳이 있습니다. 버전과 플랫폼을 확인 후 msi 형태로 다운로드 받아줍니다. 1. MONGO DB 로컬 설치 (1) 설..

프로젝트 회고록/음악 평론 웹 제작 프로젝트

4. 참조 무결성 제약 조건으로 인한 DAG 수정

안녕하세요. 오늘은 이번에 TEST DB에서 저희가 개발해놓은 운영 DB로 옮기는 과정에서 생긴 오류에 대해서 포스팅하겠습니다! 일단 간단히 말씀드리면, TEST DB에서 테이블 간의 관계를 생각하지 않고, DAG를 짰고 그 과정에서 SPOTIFY API의 특성을 생각하지 못했던 점이였습니다 ㅜㅜ. SPOTIFY API 글로벌TOP50 트랙(매일 업데이트)을 뽑고, 그 트랙 속에서 아티스트를 추출하고나서, 아티스트의 HOT TRACK 10곡을 뽑아서, 트랙 세부 정보와 트랙 오디오 세부 정보를 뽑는 DAG였습니다. 그런데 아티스트의 HOT TRACK 10곡을 뽑는 API에서, 조회한 ARTIST의 HOT TRACK에는 아티스트가 피처링으로 참여한 곡도 포함되어있었습니다. 그러다보니, 곡의 세부 정보를 봅..

데이터 엔지니어링/하둡 에코 시스템

[HIVE] 기본 개념 및 실습

안녕하세요! 오늘은 PIG에 이어서, HIVE에 대해 알아보도록 하겠습니다. HIVE Hive는 하둡에서 데이터를 처리하기 위한 데이터 웨어하우징 솔루션 중 하나입니다. Hive는 SQL을 사용하여 대규모 데이터 집합을 분석할 수 있도록 해주는 데이터 웨어하우스 솔루션입니다. Hive는 하둡 기반의 분산 데이터 저장소에서 SQL 쿼리를 실행할 수 있도록 해주는 인터페이스를 제공합니다. Hive는 HiveQL이라는 SQL과 비슷한 언어를 사용하여 데이터에 대한 쿼리 및 분석을 수행합니다. HiveQL은 기존의 SQL과 유사하며, 사용자는 대부분의 경우 HiveQL을 배우기 쉽습니다. 또한 HiveQL은 사용자가 쉽게 커스텀 함수와 집계 함수를 정의하고 사용할 수 있도록 해줍니다. Hive는 맵리듀스와 같은..

프로젝트 회고록/음악 평론 웹 제작 프로젝트

3. S3 데이터 가공해서 MYSQL로 적재하기

이번 포스팅에서는 S3에 있는 데이터를 가공해서, MYSQL로 적재하는 TRANSFORM, LOAD 과정을 작성하겠습니다. 아무래도, 각각 데이터 특성이 다르다보니까, ETL 과정에서도 조금 다른 방식의 가공과 적재 방법을 사용했습니다. 일단 학습에 목적을 두기도 했지만, 실무에서 어떤 방식으로 응용될지도 조금 고민해볼 수 있었던 것 같습니다. 데이터 파이프라인 일단 이번 DAG의 파이프라인은 이렇습니다. 사실 지금은 태스크 별로, S3 데이터를 읽는게 아니라, 전역변수로 S3에서 읽고 있는데, 만약에 EC2 환경에서 메모리나 이런 부분들이 부족하다면, 태스크별로 S3에서 데이터를 읽고와서, TASK를 마무리하면 그 때 해당 변수를 제거하는 식으로 메모리를 컨트롤할 수 있을 것 같습니다. 지금은 매일 업..

프로젝트 회고록/음악 평론 웹 제작 프로젝트

2. SPOTIFY 데이터 AIRFLOW로 S3에 업로드하기

안녕하세요. 이번에는 저번 포스팅에 이어서, SPOTIFY API를 활용해서, AIRFLOW로 S3에 업로드하는 과정을 자동화한 것에 대해서 작성하겠습니다. 확실히 S3에 업로드 하는 과정에서 조금 고민거리들이 많았는데, 일단은 진행하면서 배우는 중입니다. 그럼 이 과정들을 소개해보도록 하겠습니다. 데이터 파이프라인 설계 일단 AIRFLOW로 S3에 업로드하는 것은, EXTRACT 과정으로 삼았습니다. 원본 데이터를 JSON에 그대로 저장하고 S3에 업로드해서 AIRFLOW 스케줄러에 문제가 생겼을 때도, 어느 정도 복구할 수 있도록 S3를 거쳐가도록 파이프라인을 설계했습니다. 일단은 Spotify_Extract_toS3의 DAG의 파이프라인입니다. 일단 순서는 다음과 같습니다. globaltop50 데..

우상욱
'데이터엔지니어' 태그의 글 목록 (7 Page)