본문 바로가기

전체 글54

airflow 빠른 설치 및 기본 db를 mysql로 변경하기 airflow 설치가 필요해서 공식문서를 참고해서 작성해놓는다. 기본 설치는 편하지만 데이터베이스를 변경하고 db init 하는 과정에서 계속 에러가 발생하여 기록으로 남김. 0. 기본 환경 wsl2 우분투 mysql Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu)) 미니콘다로 python 3.9 버전의 가상환경 세팅(원래 우분투에는 python 3.10) 기존의 홈디렉토리에 있는 airflow 디렉토리 삭제 만약, mysql 설치가 안됐다면 참고. 2023.01.31 - [Database/mysql] - 빠른 MySQL 기본 설치방법 및 세팅 1. airflow 설치 ( 공식문서 : https://airflow.apache.org/docs/apac.. 2023. 1. 31.
데이터베이스 vs 데이터 웨어하우스 : 주요 차이점 1. 데이터베이스와 데이터 웨어하우스란? - 데이터베이스: 컴퓨터에 저장된 데이터를 관리하고 검색하기 쉽도록 구조화한 시스템 - 데이터 웨어하우스: 데이터를 수집, 정제, 변환, 분석하는데 사용되는 시스템 2. 데이터베이스와 데이터웨어하우스의 특징 데이터베이스 데이터 웨어하우스 특징 데이터를 저장하고 관리할 수 있다. 데이터의 중복을 제거하여 저장한다. 데이터를 검색하기 쉽도록 인덱싱 기능을 제공한다. 데이터의 안정성과 무결성을 보장한다. 다양한 소스에서 데이터를 수집할 수 있다. 데이터를 정제하고 변환할 수 있다. 데이터를 분석하고 시각화 할 수 있다. 데이터를 통해 인사이트를 추출할 수 있다. 목적 구조화된 데이터를 저장하고 관리하며, 트랜잭션과 쿼리를 지원 대용량의 데이터를 수집하고 분석 사용 예시.. 2023. 1. 27.
[프로젝트] 뉴진스 트윗 클러스터링 #2 프로그래밍 1. 필요한 라이브러리 %sh pip install tweepy kafka-python 트위터 API를 편하게 사용하기 위해 tweepy 랑 파이썬으로 kafka를 다루기 위해 kafka-python을 설치. 2. Kafka에 트윗 데이터 전송 %spark_yarn.pyspark # 샘플코드 : https://github.com/twitterdev/Twitter-API-v2-sample-code import tweepy from kafka import KafkaProducer from mykeys import Mykeys producer = KafkaProducer(bootstrap_servers='spark-master-01') # tweepy.StreamClient 클래스를 상속받는 클래스 class.. 2023. 1. 25.
[프로젝트] 뉴진스 트윗 클러스터링 #1 개요 프로젝트 시작 동기 - 원래 음악 취향은 김광석을 비롯 90년대~ 00년대 발라드인데 최근 뉴진스라는 그룹명이 계속 보였다. 우연히 노래를 들어보니 왜 인기가 많은지 이해되면서 뉴진스의 노래를 계속 듣게되었고, 이제는 팬이다. 마침 Streaming 관련 프로젝트를 한 번 경험해보려고 트위터 api 를 살펴보고 있었는데 BTS 에 대한 건 많이들 해서 뉴진스로 방향 살짝 틀어서 시작했다. 프로젝트 소개 - 트위터API 를 통해서 실시간(streaming) 트윗을 카프카로 저장 및 처리하여 Spark streaming을 통해서 카프카에 있는 스트리밍 데이터를 읽고 정제한 다음 DW에 저장. DW에 있는 테이블을 읽어 SparkML로 트윗 메시지의 내용을 각나라 언어별로 군집화. 시작 전 준비사항 - 카프카.. 2023. 1. 25.
[프로젝트] 고인물의 스팀 게임추천 #4 모델링 1. 하이퍼파라미터 튜닝 및 평가 %pyspark from pyspark.ml.evaluation import RegressionEvaluator from pyspark.ml.recommendation import ALS from pyspark.ml.tuning import CrossValidator, ParamGridBuilder # Create a SparkSession spark = SparkSession.builder.appName("ALS_steam").getOrCreate() # Load the data into a DataFrame # Prepare data (trainingData, testData) = data.randomSplit([0.8, 0.2]) # Define the ALS mo.. 2023. 1. 25.
Spark RDD 프로그래밍 Apache Spark에서 RDD(Resilient Distributed Datasets)를 사용한 프로그래밍에는 Transformations과 Actions이라는 두 가지 주요 작업이 있습니다. Transformations: Transformation은 기존 RDD에서 새 RDD를 생성하는 작업입니다. 일반적인 Transformation의 몇 가지 예에는 map, filter 및 groupBy가 포함됩니다. Transformation은 lazy합니다. 즉, Actions이 이뤄지기 전까지는 실행되지 않습니다. 이를 통해 Spark는 실행 계획을 최적화하고 데이터 셔플링을 최소화할 수 있습니다. Actions: Action은 값을 반환하거나 side effect를 생성하는 작업입니다. 일반적인 Actio.. 2023. 1. 24.