빅데이터의 탐색 2 - 3. 애드 혹 분석과 시각화 도구
·
프로젝트, 인강 그리고 책/빅데이터를 지탱하는 기술
- 데이터를 시각화하기 위한 소프트웨어는 여러가지 종류가 있다 1. Jupyter Notebook에 의한 애드 혹 분석 - 노트북에 분석 과정 기록하기 노트북 안에서는 파이썬 스크립트와 외부 명령어를 실행할 수 있으며, 실행 내용은 모두 기록되고 과거로 돌아가서 편집하거나 재실행할 수도 있다. - 마크다운 형식으로 주석을 넣어 모양을 좋게 하거나, 사진 또는 수식을 포함할 수 있다. - 스프레드 시트, BI 도구 없이 크로스 집계결과를 시각화가 가능하다. 1) Matplotlib (노트북 내에서의 시각화) - 과학 기술 계산 분야에서 사용되는 시각화 라이브러리 중 하나 - 복잡한 그래프를 파이썬을 사용하여 생성 - 프로그래밍이 필요하여 시간이 걸리는 단점 존재, 분석과정에서 유사항 그래프를 다시 만들 때..
SQL 자동증가하는 컬럼 카운트하기(select nvl(max(seq),0)
·
언어/데이터 베이스
자동으로 증가하는 컬럼을 PK로 잡거나 할떄 INSERT시 자동 증가로 시퀀스를 사용하지만 MAX+1을 사용할 때도 있다. 하지만 MAX+1은 동시성보장이 되지않아 insert 시 다른 트랜잭션에의해 중복값이 등록 될 수 있어 주의해야한다. 사용하는 방법은 간단하다. SELECT NVL(MAX(증가컬럼)+1,0) FROM 테이블) insert into board(seq, title, writer, content) values ((select nvl(max(seq),0)+1 from board),?,?,?)"; 위 구문을 INSERT VALUE 절에 넣어주면 된다. 참고링크 https://coding-factory.tistory.com/292 [Oracle] 오라클 insert 자동증가 컬럼의 최대값 +1..
데이터 베이스 주요 개념 01. 샤딩, 파티셔닝
·
OLD/IT 용어 사전
샤딩과 파티셔닝은 데이터를 저장하는 방법론에 대한 것으로 보면된다.. 데이터를 어떻게 쪼개고 저장하느냐에 따라서 데이터를 읽어들이는 성능에 차이가 날 수 있기 때문이다. 샤딩과 파티셔닝에 대한 개념을 잘 정리한 블로그들이 있어 나중에 다시 해당 개념을 참고할 때 다시 들어가서 봐야겠다. 한마디로, 샤딩 = 호라이즌 파티셔닝 으로 보면 쉽다.... 참고링크 nesoy.github.io/articles/2018-05/Database-Shard Database의 샤딩(Sharding)이란? nesoy.github.io https://zetastring.tistory.com/338 샤딩 vs 파티셔닝 (Sharding vs Partitioning) 분산데이터베이스의 개념이 나오면서 데이터를 잘개 쪼개놓는 아키텍..
Python namedtuple (네임드 튜플)
·
언어/Python
introducing python 을 통해서 알게된 네임드 튜플이다. 간단하게 정리하자면 보통 튜플의 경우에는 인덱스를 통해서 튜플 접근이 가능한데, namedtuple 을 사용하면 key 값으로 접근이 가능하다고 볼 수 있다. 즉, key - value 로 작동하는 딕셔너리와 같이 작동한다고 보면 되지만, 튜플의 성질을 가진다. (참 뭔가 애매한것 같다..) 네임드 튜플은 아래와 같은 특성을 지니고 있다는데 1. 튜플의 기본 성질인 불변 객체 2. 일반 Class(객체) 형태보다 적은 메모리 사용 3. 다양한 접근법 지원(괄호, ) 4. Dictionary Key 와 같이 사용 아래의 예제가 네임드 튜플의 특성을 잘 보여주는 것 같다. from collections import namedtuple fr..
빅데이터의 탐색 2 - 2. 열 지향 스토리지에 의한 고속화
·
프로젝트, 인강 그리고 책/빅데이터를 지탱하는 기술
- 대량의 데이터를 신속하게 집계하려면, 미리 데이터를 집계에 적합한 형태로 변환해야 한다. 1. 데이터베이스의 지연 줄이기 데이터의 양이 증가할 수록 집계하는데 시간이 길어진다. 이는 작업의 효율을 떨어뜨리며, 전체적으로는 모든 작업이 느려지는 원인이 된다. 데이터의 수집단계에서는 위 사항은 우선순위로 고려하지 않아도 되지만, DB( 데이터 레이크, 데이터 웨어하우스 ) 에서 데이터를 추출하여 분석하는 단계에서는 위 문제를 해결하는 것이 매우 중요하다. 1) 데이터의 처리 지연 - 지연이 적은 데이터 마트 작성을 위한 기초 지식 데이터 지연이 적은 데이터베이스를 만드는 방법은 두가지가 있다. 첫째, 모든 데이터를 메모리에 올리는 것 - 가장 간단한 방법이며, 적은양의 데이터를 올리는 것은 큰 문제가 되..
[python error] : _csv.reader' object is not subscriptable
·
Error code 모음/4. Python errors
위 에러는 csv 라이브러리를 사용할 때 나타날 수 있는 에러이다. 이 에러는 csv reader 가 인덱싱을 서포트 하지 못하여 csv.reader 값을 리턴할 수가 없는 것이다. ## spotify searchAPI artists = [] with open('./artist_list.csv', encoding='utf8') as f: raw = csv.reader(f) for row in raw: artists.append(row[0]) ## row[0] 을 raw[0] 으로 썼었음.. 나의 경우에는 오타때문에 위 에러가 나타났지만, 평상시에는 rows 를 리스트 안에 넣어줌으로써 해결 할 수 있는 에러 같다. 참고 링크 https://stackoverflow.com/questions/32038776..
파이썬의 다형성(Polymorphism)
·
언어/Python
같은 형태의 코드가 서로 다른 동작을 하는 것을 말한다. 다형성은 코드의 양을 줄이고, 여러 객체 타입을 하나의 타입으로 관리가 가능하게 만들어 코드의 유지보수에 좋다. 왜냐하면, 기존의 코드를 다른 매소드에 오버라이드하여 사용하지 않고 각 메소드마다 기존의 코드와 같은 코드를 사용할 경우에 해당 코드에 문제가 생겼을 때, 각 코드마다 다 들어가서 고쳐야되는 문제점과 비효율성이 발생한다. 이를 방지하기 위해 상속에서는 다형성이라는 개념을 받아들여 상속을 하고 나서도 부모 코드만 수정하면 나머지 코드도 수정이 되도록 다형성의 개념이 적용된 것 같다. 하지만, 파이썬은 자바나 다른 언어에 비해 다형성은 그렇게 강하진 않는 것 같다. 파이썬에서 다형성이란 즉, 클래스에 상관없이 같은 동작을 다른 객체에 적용할..
파이썬 데코레이터에 대해서?
·
언어/Python
파이썬에서 데코레이터란 기존의 코드에 여러가지 기능을 추가하는 파이썬 구문. @decorator def function(): print("I am a decorator!") 위와 같은 코드를 데코레이터라고 말한다. " @ " 심볼과 데코레이터 함수의 이름을 붙이는 간단한 구문을 사용하면 데코레이터를 사용할 수 있다. 대상함수를 wrapping 하고, 이 wrapping 된 함수의 앞 뒤에 추가적으로 꾸며질 구문들을 정의하여 재사용이 쉽도록 만들어 주는 것이다. 하나의 함수를 취해서 또 다른 함수를 반환하는 함수이다. def document_it(func): def new_function(*args, **kwargs): print('running function:', func.__name__) print(..
빅데이터 기초지식 1 - 3. BI 도구와 모니터링
·
프로젝트, 인강 그리고 책/빅데이터를 지탱하는 기술
- 빅데이터 탐색에 있어 중요한 것은 우선 큰 그림을 파악한 후에 점차 세부사항으로 깊게 들어가는 것이다. 1. 데이터의 모니터링 (프로젝트의 현재 상황 파악) - 모니터링이란 보다 계획적으로 데이터의 변화를 추적해 나가는 것이다. - 데이터의 변화가 예상과 다르다면, 행동을 해야되는 데 여기에는 사람의 판단이 중요 - 데이터로 상황 파악 후, 얻어진 통찰에 따라 세부 사항을 체크해서 문제를 해결해야 한다. 2. 데이터에 근거한 의사결정 (KPI - Key Performance Indicator 모니터링) - KPI 수치 파악을 통해 현재의 수치가 다음 행동에 어떤 영향을 끼칠 것인지 파악하는 것이 중요 3. 변화를 파악하고 세부 사항 이해하기 (BI 도구 활용) - BI 도구를 통해 변화를 파악하고, ..
빅데이터 기초지식 1 - 2. 빅데이터 시대의 데이터 분석 기반 ( 2)
·
프로젝트, 인강 그리고 책/빅데이터를 지탱하는 기술
1. 데이터 분석 기반을 단계적으로 발전 시키기 - 팀과 역할 분담, 스몰 스타트와 확장 - 데이터 분석에 필요한 기술은 다방면에 걸쳐 있기 때문에 주로 팀을 이루어 작업이다 - 데이터 엔지니어 : 시스템의 구축 및 운용, 자동화 등을 담당하는 역할 - 데이터 분석가 : 데이터에서 가치 있는 정보를 추출하는 역할 → 이들은 요구되는 지식뿐만 아니라 사용하는 도구도 다르다. 1 ) 애드혹 분석 및 대시보드 도구 - 애드혹 분석 > 일회성 데이터 분석의 의미를 지님 > sql 쿼리를 직접 작성, 그래프 작성등 대부분 수작업이 애드혹 분석에 포함 > 데이터 레이크웨 데이터 마트를 직접 연결하여 데이터 추출 및 분석 작업 다수 > 쿼리 실행 후 즉시 확인 가능한 대화형 분석 도구사용 2 ) 데이터 마트와 워크 ..