본문 바로가기

공부기록/Data Engineering

(9)
[opensearch | elasticsearch] maximum shards open 문제 문제 RequestError(400, 'validation_exception', 'Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open;') 가끔 elasticsearch를 사용할 때 종종 발생했던 문제인데 opensearch를 사용할 때도 또 만나서 정리.. 원인 이 에러는 Elasticsearch /Opensearch 클러스터가 설정된 최대 샤드 개수를 초과하려고 할 때 발생한다. 각 인덱스는 여러개의 샤드로 분할되고, 클러스터 전체에서 허용되는 최대 샤드 수가 설정된다. 현재 1000개의 샤드가 설정되어있고, 999개의 샤드가 열..
[elasticsearch] elasticsearch 10000개 이상 데이터 조회 python es에서 데이터를 10000개 이상 조회하려면 scroll id를 사용하거나 elasticsearch helpers의 scan 을 사용해야한다. helpers.scan elasticsearch.helpers.scan(conn, scroll='10m', index=index, doc_type='_doc', size=10000, query=query) es.scroll def scroll_API(index, body): result = [] _KEEP_ALIVE_LIMIT='30s' # Initialize the scroll page = es.search(index=index ,body=body ,scroll=_KEEP_ALIVE_LIMIT ,size=10000 ,track_total_hits=True ) ..
[Docker] Docker Compose로 Django 프로젝트 세팅 프로젝트 컴포넌트 정의 프로젝트를 시작하기위해 Dockerfile, python dependencies파일, docker-compoes.yml파일이 필요하다. Dockerfile 먼저, 디렉토리에 Dockerfile을 생성한다. # syntax=docker/dockerfile:1 FROM python:3 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 WORKDIR /code # 작업 디렉토리를 code로 변경 COPY . . # 현재 디렉터리의 모든 파일 이미지를 작업 디렉터리로 복사 RUN pip install -r requirements.txt COPY . /code/ 이 도커 파일은 파이썬3 Parent 이미지를 시작한다. 부모 이미지는 src라는 새..
[PostgreSQL] macOS에 PostgreSQL 설치 및 설정 설치 설치전 brew에 postgresql을 검색해본다. brew search postgresql 기본 버전으로 설치를 시작한다. brew install postgresql 서비스 시작 brew services start postgresql postgres -V 설정 사용자 권한 계정 설정 먼저, postgre에 접속한다. psql postgres 아래의 명령어로 role 리스트를 확인 할 수 있다. postgre는 설치시 자동으로 계정을 생성해준다. postgres=# \du 권한을 설정해주기 전에, 기본으로 생성된 슈퍼유저의 비밀번호를 설정한다. postgres=# \password postgres 데이터 베이스 생성 테스트 데이터 베이스를 생성해봅니다. create database testdb; ..
[ELK] elastic stack 이란 / 개념 / 구성 요소 / 용도 ELK 란? ELK stack이란 Elasticsearch Logstash Kibana 세가지 오픈소스 프로젝트의 이니셜을 합쳐 만든 말이다. 등장 배경 루씬 기반 검색엔진인 elasticsearch는 단순 검색 엔진에 머무르는 대신 플랫폼으로 발전해 elk stack으로 발전했다. 기존의 검색엔진은 빅데이터 파이프라인을 구성하고, 유연성을 확보하기 위해서 오픈소스를 조합해야하는 불편함이 있었지만, elk stack은 일반적인 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장 분석, 시각화에 필요한 모든 소프트웨어를 갖추고 있다. ELK 구성 요소 Beats, Logstash : 데이터를 수집하고 가공 Elasticsearch : 데이터 저장 및 분석 Kibana : 시각화 및 모니터링 El..
[neo4j] variables 변수 이해하기 cypher 쿼리에서 () 소괄호 [콜론 앞에] 오는 것은 변수이다. sally 는 name 과 age라는 속성과 각각 'Sally'와 32라는 값을 갖는 노드를 만들때 해당 노드를 지칭하는 변수이다. sally와 john은 노드의 이름(id같은거x)이 아니라 변수이다. cypher 쿼리에서 변수는 해당 쿼리 부분에서만 일시적으로 존재한다. Person이라는 label로 sally, john이라는 노드를 추가하고, Book이라는 label에 'Graph Databases'를 추가했다. 이때 형광펜으로 칠한 부분 - sally, john, gdb은 모두 이 쿼리 내에서만 존재하는 변수이다. 따라서 변수를 사용해서 위의 쿼리가 원하는 노드/관계 생성이 잘 이루어진 결과를 볼 수 있다. 변수를 해당 쿼리 밖에..
[neo4j] Cypher Query 튜토리얼 What is Cypher? Cypher란 MY SQL데이터 베이스에서 사용되는 SQL처럼 Neo4j 데이터베이스 쿼리에 사용되는 그래프 쿼리 언어이다. return 을 꼭 써주어야함. return 을 써주지 않으면 다음과 같은 Syntax Error가 난다. 예제 Match (m:Movie) where m.released > 2000 RETURN m limit 5 결과 2000이후에 발매된 영화 중 결과를 5개로 제한하여 보여준다. 1. 2005년 이후 발매된 영화를 검색하라. - Match (m:Movie) where m.released > 2005 RETURN m 2. 2005년 이후에 발매된 영화 수를 검색하라. Nodes and Relationships Nodes와 Relationships은 그..
[NoSQL] Key Value Model / Redis - (1) 개념 , 장단점 0. WHAT Key-Value Database 또는 Key-value store에서는 데이터가 Key와 Value의 쌍으로 저장된다. Key는 레코드를 고유하게 실별하며 데이터베이스 내에서 저장과 검색을 하는데 사용된다. Value에는 어떤 형태의 데이터든지 담을 수 있다. 1. WHY RDB의 단점 1. 이미지나 오디오 데이터가 관계모델로 표현 x 2. 구조( 스키마) 가 존재, 스키마 구조가 고정되면 변경 x : 구조가 정해져있기 때문에 RDB에선 SQL질의어만 잘 넣으면 어떤 정보도 찾을 수 있다는 것이 장점이자 단점이다. Key Value Model Idea 구조를 정하지않고. key만 겹치지 않게 넣은 다음 최대한 flexible하게 value를 넣을 수있는 데이터베이스. key로 value를..

반응형