주식 자동매매 시스템

파이썬을 이용한 주식 자동매매 시스템

이미지
파이썬을 이용한 주식 자동매매 시스템 INDEX 환경구축 키움증권 API - 연결테스트 키움증권 API - 계좌정보 조회 키움증권 API - 주문 키움증권 API - 종목정보 가져오기 포트폴리오 - 종목, 업종별 자산 포트폴리오 한국투자증권 API API reference 키움 OpenAPI+ 개발가이드 한국투자증권 OpenAPI 다운로드 및 가이드 Design https://www.design-seeds.com/in-nature/succulents/cacti-color-2/ https://create.piktochart.com/dashboard

HIVE와 HIVE SQL


HIVE 를 사용하는 이유

맵리듀스를 직접 작성하지 않고 쿼리언어로 비정형 데이터 분석이 가능하다.
하이브는 하둡에서 맵리듀스를 직접 돌리는 대신, 사용자가 SQL(Simple Query Language)로 쿼리를 작성하면 자동으로 맵리듀스 작업으로 변경해주는 쿼리 엔진이다.


HIVE 구조

Metastore

  • 하이브에서 생성한 테이블 스키마를 저장하는 곳.
  • 테스트용으로 더비(derby) 임베디드 데이터베이스를 사용하면 된다.
  • 실제 서비스용으로는 MySQL과 같은 데이터베이스를 사용할 수 있다.

HiveQL

  • 사용자가 쿼리를 입력하면 쿼리를 분석해 수행 계획을 작성하고 이에 따라 맵리듀스 코드를 생성한다.

MapReduce 맵리듀스 작업

  • HiveQL에 의해 생성된 맵리듀스로 맵리듀스 작업이 수행된다. 
  • TS/SelOperator들을 수행할 수 있도록 코드가 생성된다. 
  • SerDe라는 추상 계층을 통해 계산에 필요한 데이터를 맵리듀스의 인풋 아웃풋 포매터로부터 읽어 들인다.


HIVE 실행 내부 절차


Hive - Hadoop Flow

  1. executeQuery
    사용자가 쿼리를 실행한다.
  2. getplans
    드라이버(Driver)는 컴파일러(Compiler)에 쿼리 플랜을 요청한다.
  3. getMetaData
    컴파일러는 쿼리를 파싱(parsing)한 후 의미분석기와 로지컬 플랜 생성기를 거친 후 맵리듀스 코드를 생성한다. 이 과정에서 하이브 테이블의 컬럼 정보와 컬럼 매핑(metadata) 정보를 Metastore로부터 가져온다.
  4. sendMetaData
    컴파일러에서 요청한 테이블의 메타정보를 전달한다.
  5. sendPlans
    컴파일러의 결과물인 맵리듀스와 플랜을 실행엔진(execution engine)으로 전달한다.
  6. executePlan
    컴파일러에서 생성한 플랜을 수행한다.
    • DDL 작업을 위해서 메타데이터에 접근한다. 더불어 job.xml을 생성해 쿼리 플래너가 작성한 맵리듀스 작업을 수행한다.
    • 맵리듀스 작업이 완료되면 실행엔진에 시그널을 보낸다.
    • 맵리듀스 결과 파일을 쿼리 시 설정한 테이블이나 파일 시스템에 저장한다.
  7. fetchResult
    쿼리 결과를 요청하면 실행엔진 (8:sendResults)과 파일 시스템을 거쳐서 (9:fetchResults)결과를 가져온다.

+

  • partitioning
    • 데이터를 디렉토리 별로 분할 하여 정리
    • 디렉토리의 이름이 파티셔닝 정보가 됨 
    • 파일기반 테이블의 약점 
      • 전체 row를 검색해야 데이터를 알 수 있음 
      • 데이터를 파티션 기준으로 분리하여 저장 
      • 전체 파일이 아닌 파티션된 영역의 데이터만 처리하므로 속도 향상
  • Data load 
    • LOAD DATA 명령어 : 로컬 파일 혹은 HDFS 파일을 로딩
    • INSERT INTO TABLE : 기존 데이터를 덮어쓰지 않고 데이터를 입력
    • INSERT OVERWRITE TABLE : 기존 데이터를 덮어씀

이 블로그의 인기 게시물

Linux에서 CSV파일 사용방법

R에서 외부 데이터 이용하기 (Excel, csv)

[R 함수] aggregate, apply 사용 방법