[SQL] 테이블에 컬럼 추가 테이블에 컬럼 추가하는 방법 ALTER TABLE 테이블이름 ADD 추가할컬럼이름 데이터형(데이터크기) 컬럼속성 ALTER TABLE [테이블명] ADD [컬럼명] [타입] [Null] [DEFAULT] ALTER TABLE table1 ADD nickanme VARCHAR(45) NOT NULL DEFAULT '아무거나'
썸네일 DFTL (Demand-based FTL) // 아직 작성중.. DFTL DFTL은 hybrid mapping의 단점을 극복하기 위해서 등장하였습니다. Hybrid mapping에 해당하는 FAST와 BAST는 full-merge를 수행해야하는데, full merge는 erase 작업을 반드시 수반하게 됩니다. 그렇기 때문에 DFTL은 page-level mapping을 사용하되, page-level mapping이 페이지 테이블이 메모리를 많이 차지하는 단점을 해결하기 위해 NAND Flash에 페이지 테이블을 저장하고 자주 액세스 되는 매핑 정보만 SRAM에 캐싱하여 요청이 올때마다 load/unload를 수행합니다. 이는 저장장치에 들어오는 요청은 결국 같은 요청이 반복되는 temporal locality가 높기 떄문에 이러한 방식을 사용합..
썸네일 Naive Bayes classifier Naive Bayes classifier 나이브 베이즈 분류기의 경우 간단하지만 널리 쓰이는 probabilistic 방식으로 attribute가 주어졌을 때 어떠한 클래스에 속할 확률을 제공합니다. 즉 클래스 예측 뿐 아니라 클래스에 속할 확률까지 알려주는 알고리즘입니다. 나이브 베이지 분류기는 P(Class label = Purchase | Salary = 5000, Age = 25, Gender = "Male") =? 와 같은 질문에 답을 제공합니다. 월급은 5000, 나이는 25, 성별은 남성일 때 Purchase 클래스에 속할 확률은 얼마인가? 결합 확률 P(x, y)란 x와 y가 동시에 발생할 확률을 의미하며, 조건부 확률 P(y | x)는 x가 발생했을 때 y가 발생할 확률을 의미합니다. 우..
썸네일 [FTL] BAST, FAST Intro FTL의 mapping scheme 중에서는 page-level mapping, block-level mapping, hybrid-level mapping이 존재합니다. page-level mapping과 block-level mapping을 설명하였으니 앞선 포스팅을 참고하시길 바랍니다! FTL FTL FTL이란 Flash Translation Layer의 약자로, 플래시 메모리의 특성을 감추면서 하드디스크의 기능처럼 수행할 수 있도록하는 소프트웨어층을 의미합니다. 하드디스크에는 물리적인 섹터가 존재하지 minutemaid.tistory.com Hybrid Mapping hybrid mapping는 block-level mapping과 page-level mapping의 장점을 합친 것입니다..
썸네일 FTL FTL FTL이란 Flash Translation Layer의 약자로, 플래시 메모리의 특성을 감추면서 하드디스크의 기능처럼 수행할 수 있도록하는 소프트웨어층을 의미합니다. 하드디스크에는 물리적인 섹터가 존재하지만, SSD에는 페이지와 블록만 존재합니다. 하지만 NTFS, FAT 같은 파일 시스템과 운영체제는 섹터 기반으로 동작하기 때문에 이러한 한계점을 FTL이 물리적 구조를 논리적 구조로 변환하여 호환성 문제를 해결합니다. 즉 호스트의 논리적 블록 주소(LBA)를 플래시의 물리적 블록 주소(PBA)로 매핑하는 것입니다. FTL을 설명하기 앞서 펌웨어 아키텍처를 간단히 살펴보겠습니다. 먼저 호스트 인터페이스 층(HIL)에서 호스트의 I/O를 담당합니다. 예를 들어, 호스트에서 LBA에 데이터를 writ..
썸네일 K-Nearest Neighbor Algorithm (KNN 알고리즘) K-Nearest Neighbor K-NN 알고리즘은 데이터를 가장 가까운 속성에 따라 분류하는 알고리즘으로, K개의 가까운 이웃의 속성에 따라 분류합니다. K-NN 알고리즘의 경우 모델을 만들지 않고 새로운 데이터가 주어지면 기존의 학습 데이터를 기반으로 클래스를 예측하는 방식입니다. Basic Approach K-NN 알고리즘의 경우 d차원 공간에서 (x, y)를 한 점으로 간주합니다. 이때 x는 d개의 데이터셋이며, y는 각 데이터들의 클래스 레이블을 의미합니다. 만약 새로운 x'가 주어지게 되면 각각의 (x, y)와 거리를 계산하고, x'와 비슷한 k개의 거리를 찾습니다. k개의 거리 중 다수의 이웃이 있는 클래스에 따라 새로운 데이터 x'의 클래스를 예측할 수 있습니다. 만약 k를 너무 작게 설..
썸네일 chapter 1 : 04 데이터 핸들링 - 판다스 (p.39~) 판다스 (Pandas) 1. 판다스 시작 - 파일을 DataFrame으로 로딩, 기본 API 1) 타이타닉 탑승자 데이터 파일 불러오기 https://www.kaggle.com/c/titanic/data 위의 사이트에 들어가서 train.csv를 다운 받은 후 쥬피터 노트북에 업로드하면 된다 Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com read_csv : csv뿐 아니라 어떤 필드 구분 문자 기반의 파일 포맷도 DataFrame으로 변환 가능 read_csv('파일명', sep = '\t') read_csv('파일명') -> sep인자를 생략하면 자동으로 콤마 할당 DataFrame.head(N) : 맨 앞 N개의 로우를 반환 imp..
썸네일 chapter 1 : 03 넘파이 (p.13 ~ p.38) 넘파이 (NumPy) 1) 넘파이 개요 array() : ndarray로 변환 shape : ndarray의 크기, 즉 행과 열의 수를 튜플 형태로 가지며 이를 통해 ndarray 배열의 차원까지 알 수 있음 import numpy as np arr1 = np.array([1, 2, 3]) print("arr1 type:", type(arr1)) print("arr1 형태:", arr1.shape) arr2 = np.array([[1, 2, 3], [2, 3, 4]]) print("arr2 type:", type(arr2)) print("arr2 형태:", arr2.shape) arr3 = np.array([[1, 2, 3]]) print("arr3 type:", type(arr3)) print("arr..
썸네일 Data Deduplication Data Deduplication Deduplication이란 스토리지 효율의 향상을 위해 서로 다른 데이터 청크 간의 중복된 데이터를 제거하는 작업을 말합니다. Deduplication의 과정은 먼저 데이터를 청크 단위로 쪼갠 후 해쉬함수를 적용하여 특정 해쉬값을 만들어 냅니다. 해쉬를 했기 때문에 중복 데이터는 동일한 해쉬값을 가지고 있을 것이므로 해쉬값을 비교하여 중복 데이터를 찾아나갑니다. 이때 중복된 데이터 청크들은 포인터로 대체하고 삭제합니다. Data Chunking Methods 데이터를 청크 단위로 쪼개는 4가지 방법 1 ) Whole file chunking whole file chunking은 각각의 파일을 하나의 청크로 간주합니다. 이 방식은 오버헤드는 적으나, 파일 자체가 청크이기..
썸네일 Hadoop Installation on Ubuntu (나의 하둡 설치 삽질기) 하둡? Hadoop은 여러 클러스터에서 대규모 데이터 셋을 분산 처리할 수 있게 하는 프레임워크입니다. 아마 빅데이터 수업이나 데이터마이닝 수업을 하실 때 하둡을 설치할 일이 생기실텐데, 저 또한 이러한 이유로 설치를 하게 되었습니다. 이 포스팅을 보는 분들은 적어도 저처럼 힘들게 깔지 않기를 바라면서 포스팅을 합니다! (VMware설치를 선행하시고 진행하시기 바랍니다) 1. JAVA 8 설치 1) apt 업데이트 sudo apt-get update 2) JAVA 8 설치 sudo apt-get install openjdk-8-jdk openjdk-8-jre 3) 설치 확인 java -version 2. SSH 설정 1) Openssh Server 설치 sudo apt-get install openssh..
썸네일 Wear Leveling (WL) Wear Leveling 플래시 메모리는 "P/E 주기"라고 하는 Program/Erase 주기의 제한이 있습니다. 플래시 메모리 특성상 write을 하기 위해서는 반드시 erase를 수반하기 때문에 특정 블록에 반복적으로 overwrite을 하게 되면 메모리의 수명이 감소하게 됩니다. 그래서 SSD의 모든 블록에 write을 고르게 분산하여 고르게 마모되도록 하는 것이 Wear leveling입니다. (a) disk write pattern을 보면 디스크의 일부분에서만 write가 일어나는 것을 볼 수 있습니다. spatial locality의 특성상 write가 일어나는 주변에서 계속해서 write이 일어나기 때문에 physical block의 약 40%에서는 erase가 일어나지 않습니다. 그렇기 ..
썸네일 Cloud Computing Computing at scale Big data는 많은 processing을 요구하므로 특별한 알고리즘이나 하드웨어, 도구들을 동반한다.Cluster는 우리가 필요한 resource를 제공하는데, 문제는 scale이다. 규모가 커지게 되면 당연히 power가 많이 필요하게 되고 (power는 여기서는 전력, 전기 정도로 생각하면 된다), 그에 따라 열이 많이 방출되므로 cooling system도 해결해야 하는 주요 이슈가 될 것이다. Scale-up 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU나 메모리를 업그레이드시키는 것으로 기존의 하드웨어를 보다 높은 사양으로 업그레이드하는 것 추가적인 네트워크 연결 없이 용량을 증강할 수 있고, 추가되는 용량이나 업그레이드 비용만 부가..