240625(+20) | 데이터 분석에 필요한 기술 톺아보기

청솔·2024년 6월 25일
0

아티클

목록 보기
1/9
post-thumbnail

데이터는 어디에 담겨져 있는가?

(관계형) 데이터 베이스(RDBMS): 데이터를 테이블 형식으로 저장하는 DB

그런 데이터베이스를 다루는 도구는? SQL

RDBMS에서 데이터를 효과적으로 분석 및 관리, 조작하기 위해 사용하는 언어

SQL로 할 수 있는 건?

데이터 정의(DDL: Data Definition Language)

➡️ Create(생성), Alter(변경), Drop(객체 삭제), Truncate(테이블의 모든 데이터 삭제, 구조 유지)

데이터 조작(DML: Data Manipulation Language)

➡️ Select(조회), Insert(삽입), Update(수정), Delete(데이터 삭제)

데이터 제어(TCL: Transaction Control Language)

➡️ Commit(트랜잭션 저장), Rollback(트랜잭션 취소), Savepoint(트랜잭션 중간 저장)


파이썬:데이터 분석을 유용하게 해주는 다양한 라이브러리 제공

1. NumPy(넘파이)

타 언어에 비해 편리하게 수치 해석 가능

고성능 수치 계산, 통계를 위한 라이브러리

배열 및 행렬 연산에 강점

수치 데이터 처리, 수학적 계산

2. PanDas(판다스)

데이터 조작 및 분석, 시각화를 위한 라이브러리

Numpy보다 더 복잡한 형태의 자료(Series, DataFrame)를 다룸

데이터 선택, 필터링, 그룹화, 시각화 등

3. Matplotlib(맷플롯립)

데이터 시각화를 위한 그래픽 패키지

데이터를 차트나 그래프로 시각화

라인 플롯, 바 차트, 히스토그램


데이터 시각화 및 리포팅 도구들

Tableau(태블로)

복잡한 데이터를 이해하기 쉽고 다양한 시각적 기법들을 사용하기 쉬운 드래그 앤 드롭 인터페이스의 대시보드로 제공, 막대 차트, 라인 차트, 히트맵, 트리맵 등 다양한 시각화 기법을 활용하여 데이터를 표현한다.

기업에서 요구하는 역량

  • 대시보드 설계, 데이터 탐색, 인사이트 도출, 인터렉티브 기능 활용(필터, 하이라이트, 액션 등)
  • 다양한 데이터 소스 연결: SQL, Excel, 클라우드 서비스 등을 연결하고 데이터를 가져와 통합
  • 데이터 전처리 > 분석 > 시각화
  • Tableau를 활용하여 데이터 기반 의사결정을 내리고, 비즈니스 성과 향상에 중요한 역할을 함.

Power BI

MicroSofte에서 제공하는 비즈니스 데이터 시각화 도구로 마이크로소프트 생태계에 최적화 되어 있어 Azure, SQL Server, Excel등의 데이터 소스들과 쉽게 통합 될 수 있다. Power Query를 통해 사용자가 데이터를 쉽게 변환하고 준비 할 수 있는 도구를 제공. Office 365와 통합해 조직 내에서 협업을 용이하게 한다.


데이터 분석에 필요한 빅데이터 기술

Airflow

Airflow는 Apache Software Foundation에서 개발한 오픈 소스 워크플로우 관리 플랫폼으로, 복잡한 데이터 파이프라인을 자동화 하고 관리하는데 유용한 도구.

  • 기본 이해:
    • Airflow의 기본 개념과 워크플로우 스케줄링, DAG(Directed Acyclic Graph) 작성법을 이해하고 있어야 한다.
  • 실무 적용
    • 간단한 데이터 파이프라인을 작성하고 스케줄링할 수 있는 능력. (자동화)
    • 기본적인 태스크(ETL, 데이터 이동 등)를 정의하고 관리할 수 있어야 한다.
      • ETL 작업: 데이터 추출(Extract), 변환(Transform), 로드(Load) 작업을 자동화하여, 주기적으로 데이터 웨어하우스데이터 레이크에 데이터를 적재할 수 있다.
  • 기업 요구 사항
    • DAG 작성 및 관리: 간단한 ETL 파이프라인 구성.
    • 태스크 의존성 설정: 태스크 간의 의존성 설정 및 모니터링.
      • Airflow는 데이터 파이프라인의 상태를 실시간으로 모니터링하고, 오류 발생 시 경고를 보내는 기능을 제공합니다. 이를 통해 데이터 분석가는 데이터 파이프라인의 상태를 쉽게 파악하고, 문제를 신속하게 해결할 수 있다.
  • 사용 예시
    from airflow import DAG
    from airflow.operators.python_operator import PythonOperator
    from datetime import datetime, timedelta
    
    # 기본 DAG 설정
    default_args = {
        'owner': 'airflow',
        'depends_on_past': False,
        'start_date': datetime(2023, 1, 1),
        'retries': 1,
        'retry_delay': timedelta(minutes=5),
    }
    
    dag = DAG(
        'example_data_pipeline',
        default_args=default_args,
        description='A simple data pipeline example',
        schedule_interval=timedelta(days=1),
    )

Hadoop(하둡)

하둡의 등장 이후로 빅데이터의 분석이 유용해 졌다고 할 정도로, 간단한 프로그래밍 모델을 사용하여 대용량의 데이터를 적은 비용으로 매우 안정적으로 분산 처리하여 분석할 수 있는 오픈 소스 플랫폼. 수 백에서 수천 대의 서버로 확장 할 수 있어 데이터의 증가량에 따라 유연하게 확장 할 수 있다. 데이터 수집 및 저장, 데이터 전처리, 데이터 분석 및 모델링 역할을 하며 데이터 분석에서 활용된다.

  • 기본 이해
    • Hadoop의 기본 구조(HDFS, MapReduce)와 생태계에 대해 이해하고 있어야 합니다.
  • 실무 적용
    • 간단한 HDFS 명령어 사용 및 데이터를 HDFS에 업로드하고 조회할 수 있는 능력.
    • 기본적인 MapReduce 작업 이해.
  • 기업 요구 사항
    • HDFS 사용: 파일 업로드, 다운로드, 조회 등 기본적인 파일 시스템 명령어 사용.
    • MapReduce 이해: 간단한 MapReduce 작업의 흐름 이해.

Spark

빠르고 범용적인 데이터 처리 엔진. Hadoop보다 빠른 성능을 제공하며, 실시간 데이터 처리 가능. 메모리 내에서 데이터를 처리함으로써 빠른 데이터 처리가 가능하다.

  • 기본 이해
    • Spark의 기본 개념과 구조(RDD, DataFrame, Spark SQL)를 이해하고 있어야 한다.
  • 실무 적용:
    • 간단한 데이터 처리 작업을 Spark를 사용하여 수행
      • 데이터 클렌징: 누락 값 처리, 이상치 제거 등 작업을 병렬로 수행
      • 데이터 변환: 다양한 형식의 데이터를 변환하고 조작하는 작업을 빠르게 처리
    • 실시간 데이터 분석
      • 실시간 데이터 수집: Kafka, Flume 등 다양한 스트리밍 소스와 통합하여 실시간 데이터를 수집
      • 실시간 데이터 처리: 실시간 데이터를 마이크로 배치 방식으로 처리하여, 실시간 분석과 모니터링을 수행
    • Spark SQL을 사용한 데이터 조회 및 분석.
  • 사용 예시
from pyspark.sql import SparkSession

# Spark 세션 생성
spark = SparkSession.builder.appName("DataAnalysis").getOrCreate()

# 데이터프레임 생성
data = [("John", 28), ("Anna", 24), ("Peter", 35)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)

# 데이터프레임 조회
df.show()

# 데이터 필터링
df.filter(df.Age > 30).show()

# 데이터 그룹화 및 집계
df.groupBy("Name").avg("Age").show()

# Spark 세션 종료
spark.stop()

Presto

분산 SQL 쿼리 엔진으로, 빠른 쿼리 성능을 제공하여 다양한 데이터 소스에서 실시간 분석을 수행할 수 있음.

  • 기본 이해
    • Presto의 기본 개념과 아키텍처, SQL 쿼리 실행 방식을 이해하고 있어야 합니다.
  • 실무 적용
    • Presto를 사용하여 다양한 데이터 소스에 쿼리를 실행
    • 데이터를 추출하여 분석
  • 기업 요구 사항
    • SQL 쿼리 작성: Presto에서 SQL 쿼리를 작성하여 실시간으로 데이터 추출 및 분석.
    • 데이터 소스 연결: 기본적인 데이터 소스 연결 및 쿼리 실행.
  • 사용 예시
profile
모든 사람이 쉽게 이해할 수 있는 데이터 분석을 지향하는 분석가가 되고 싶습니다. "데이터 분석은 사람을 설득 시킬 수단이다. "

0개의 댓글