You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

데이터 파이프라인

검색 데이터 파이프라인 을 , 원본 데이터는 RDB(mysql)에 유지하고 

검색 스키마(문서)를 엘라서틱서치와 동기화하여

사용자 레벨에서는 엘라서틱 서치의 고수준/고성능 검색기능을 활용할것이다.

데이터 파이프라인을 먼저 설명한 것은 검색 API를 만들기 위해 필요한 인프라는

RDB와 엘라서틱 서치이다.


도커 컴포져로 구성하기

위치 : https://github.com/psmon/searchapi/tree/master/Infra

version: '3.5'
 
services:
  searchdb:
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
      - 13306:3306
    volumes:
      - ./init/firstsql.mysql:/docker-entrypoint-initdb.d/init.sql
    environment:
      MYSQL_ROOT_PASSWORD: root
 
  adminer:
    image: adminer
    restart: always
    ports:
      - 13307:8080
    
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
    container_name: elasticsearch
    environment:
      - xpack.security.enabled=false
      - discovery.type=single-node
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    cap_add:
      - IPC_LOCK
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
      
  kibana:
    container_name: kibana
    image: docker.elastic.co/kibana/kibana:7.4.0
    restart: always
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    ports:
      - 5601:5601    
    depends_on:
      - elasticsearch

volumes:
  elasticsearch-data:
    driver: local

연습 프로젝트의 git을 보두 pull받고 나서 Infra 경로에서
docker-compose up -d

명령을 수행하면 검색 데이터 파이프라인에 필요한 구성요소가 모두 실행됩니다.

init.sql 은 검색기능 Spec개발을 위한 기본 스키마및 기본 데이터를 셋팅할수 있습니다.


인덱싱 하기

실행 : http://localhost:5000/swagger/index.html

본 프로젝트는 Swagger로 모두 테스트및 싱행가능하며...reindex를 하면 풀인덱싱처리를 합니다.

mysql의 스키마 데이터를 엘라서틱 서치에 인덱싱처리를 합니다.


검색 문서를 키바나에 연동

실행 : http://localhost:5601/app/kibana

reindex를 수행하면 키바나를 통해서 baseitem 의 인덱스가 생성됨을 알수 있습니다.

키바나에 검색 인덱스 데이터를 연결하면 , 검색 데이터를 시각화할수 있습니다.

키바나를 이용한검색


검색 문서가 키바나를 통해 검색이 되면.... 검색 API를 만들기 위한 인프라 준비가 완료되었습니다.



  • No labels