15주차

Cheoly·2024년 1월 2일

1. 정형데이터 (Structured Data):

  • 특징: 고정된 스키마 또는 구조를 가지며, 표 형태의 데이터베이스에 저장 가능.
  • 예시:
    • 관계형 데이터베이스의 테이블 (MySQL, PostgreSQL, Oracle 등).
    • 엑셀 스프레드시트.
    • CSV 파일.
    • 주문 데이터베이스의 주문 테이블 (주문번호, 날짜, 고객ID, 상품ID, 수량 등).

2. 비정형데이터 (Unstructured Data):

  • 특징: 고정된 구조가 없고, 텍스트, 이미지, 오디오, 비디오 등의 형태를 가짐.
  • 예시:
    • 텍스트 문서 (워드 문서, PDF).
    • 이미지 파일.
    • 동영상 파일.
    • 웹 페이지.
    • 소셜 미디어 콘텐츠 (트위터 트윗, 페이스북 게시물).

3. 반정형데이터 (Semi-Structured Data):

  • 특징: 일정한 구조를 갖추지만 완전한 정형데이터가 아닌 데이터 형태.
  • 예시:
    • XML 데이터 (확장 가능한 마크업 언어).
    • JSON 데이터 (JavaScript Object Notation).
    • HTML 문서.
    • 로그 파일 (서버 로그, 이벤트 로그).

이러한 분류는 데이터의 특성과 구조에 따라서 이루어진 것이며, 각각의 데이터 유형은 다양한 응용 분야에서 활용됩니다.

crontab -e 사용법

crontab은 날짜와 시간에 맞춰서 자동으로 파일을 실행시키는 명령을 내리는 작업이다.
이걸 사용해서 py파일이나 sh파일을 특정 시간에 자동으로 실행시키게 만들 수 있다.

hadoop 설치가 끝났으면 다음 작업은 hive를 사용하여 쿼리문을 실행시키는 것이다.
hadoop은 원래 sql이 아닌 java 언어를 사용하여 데이터를 동작시키는데 hive라는 프로그램이 sql언어를 java로 바꿔주어 sql 문으로도 hadoop이 동작하게 만들 수 있다.

hive를 통해 이전에 만들어 두었던 stock csv 파일들을 넣을 수 있다. 먼저 csv의 column명들에 맞게 table을 생성해준다. 생성된 table에 data를 넣어주면 된다. location을 csv 파일들이 있는 폴더로 설정하면 알아서 table에 입력이 된다.

table이 만들어 졌으니 이것을 sql로 조작하면 된다. 이것을 다시 hadoop dir에 넣을 수도 있다. 이렇게 넣은 data를 python에서 사용할 수 있다.
from hdfs import InsecureClient
client = InsecureClient('http://namenode:50070', user='hadoop')

hive

원래 하둡은 java문으로만 쿼리를 조작할 수 있었다. 근데 java 코드는 불편하다. sql문을 입력하면 java문으로 변경하여 hadoop이 동작하게 만들어 주는 것이 hive이다.

DB(MySQL) 백업하기
DB를 자동으로 백업 가능
CLI 창에 아래의 명령어를 입력한다.
mysqldump -uroot -p123 hivedb > ~/workspace/hivedb.sql

이걸 저번에 배운 crontab -e 를 사용하면 자동으로 특정 시간에 백업할 수 있다.

from datetime import date
import os 
today = str(date.today()).replace("-", "")
os.system(f"mysqldump -uroot -p123 hivedb > ~/workspace/{today}.sql")

이렇게 생긴 py파일을 만들고 sh으로 변경후 실행권한을 준 후 crontab에서 자동으로 실행시키게 하면 된다.

문제 발생
schematool -initSchema -dbType mysql
사용하니까 failed라고 실패가 발생함 이것은 mariadb가 외부 사용자 ip에대하여 사용 허용을 안해두었기 때문이다.
cd /etc/mysql/mariadb.conf.d/
sudo vim 50-server.cnf
여기서 bind-address = 0.0.0.0 으로 설정해주면 된다.
sudo service mysql restart
여기까지 하고 다시 실행하면 정상 작동할것이다.

SQOOP

SQOOP은 1과 2가 있는데
1은 단일 기능을 하고 2는 다양한 기능을 할 수 있다.

2는 설정하는게 어렵기때문에 간단하게 sqoop1을 사용하였다. data를 migration할 때 사용한다.

profile
데이터 엔지니어

0개의 댓글