728x90
반응형

Database 35

ClickHouse에 NATS 엔진 설정 방법

개요NATS로 publish한 메세지들이 바로 Clickhouse의 테이블에 추가될 수 있도록 NATS 엔진 설정 방법을 알아본다.1. NATS 메시징 시스템 구축1.1 NATS 설치# nats-server 설치$ curl -L https://github.com/nats-io/nats-server/releases/download/v2.10.18/nats-server-v2.10.18-linux-amd64.zip -o nats-server.zip$ unzip nats-server.zip -d nats-server$ sudo cp nats-server/nats-server-v2.10.18-linux-amd64/nats-server /usr/bin/ # nats 설치$ curl -sf https://binari..

Database/Clickhouse 2024.11.23

Opensearch 유사도 검색

이전 게시글앞서 PDF 문서를 Text로 변환하여 Custom analyzer 적용하여 인덱싱하였음.https://daeunnniii.tistory.com/206 Opensearch Tokenizer, Analyzer와 Custom Analyzer 적용1. Opensearch AnalyzerOpensearch에 텍스트 입력 시 필드를 인덱싱하고 Documents화 할 때 Lucene 엔진에 의해 텍스트가 분석되어 입력됨.이때 텍스트를 분석하는 엔진을 Analyzer라고 함.Lucene 에서 제공하는 Andaeunnniii.tistory.com Opensearch 유사도 검색1. More like this 쿼리More Like This (MLT) 쿼리는 입력으로 주어진 document 집합과 비슷한 doc..

Database/Opensearch 2024.11.21

Opensearch Tokenizer, Analyzer와 Custom Analyzer 적용

1. Opensearch AnalyzerOpensearch에 텍스트 입력 시 필드를 인덱싱하고 Documents화 할 때 Lucene 엔진에 의해 텍스트가 분석되어 입력됨.이때 텍스트를 분석하는 엔진을 Analyzer라고 함.Lucene 에서 제공하는 Analyzer는 하나의 Tokenizer와 다수의 Filter로 구성1.1 Filter의 종류CharFilter와 TokenFilter 2가지가 존재CharFilter는 입력된 문자열에서 불필요한 문자를 normalization하기 위해 사용TokenFIilter는 tokenizer에 의해 분해된 token에 대한 Filter 처리를 함.기본적으로 CharFilter에 의해 공백 콤마 등의 문자를 삭제하며, 예시로 문서의 유형이 xml일 경우 의 문자열들..

Database/Opensearch 2024.11.20

Opensearch Ingest pipeline으로 로그파일 전처리

1. Opensearch Ingest Pipeline1.1 Opensearch Ingest Pipeline이란?Ingest pipeline은 데이터를 전처리하는 방법으로 데이터를 색인하기 전에 데이터를 변환하거나 필터링해준다.Ingest Node: Opensearch에 데이터를 인덱싱하기 전에 다양한 전처리를 할 수 있는 메커니즘을 제공하는 노드 타입Ingest pipeline을 설정하기 위해서는 Ingest Node가 활성화되어있어야 한다.Ingest Pipeline을 설정하기 위한 형식은 다음과 같다.PUT _ingest/pipline/{pipline name}{ "description" : "...", "processors" : [ ... ]}1.2 Processorgrok 프로세서란?grok ..

Database/Opensearch 2024.11.19

Opensearch 개념과 사용법 정리

Documentdocument는 텍스트 또는 구조화된 데이터 등의 정보를 저장하는 단위이다.Opensearch에서 문서는 JSON 형식으로 저장된다.IndexIndex는 document의 모음이다.Index는 여러가지 방법으로 생각할 수 있다.학생 데이터베이스에서 인덱스는 데이터베이스의 모든 학생을 나타냄.정보를 검색할 때는 인덱스에 포함된 데이터를 쿼리함.인덱스는 기존 데이터베이스의 데이터베이스 테이블을 나타냄.Cluster와 NodeOpensearch는 분산 검색 엔진으로 설계되었으며, 하나 이상의 노드에서 실행될 수 있음.즉, 데이터를 저장하고 검색 요청을 처리하는 서버이다.ShardsOpensearch는 Index를 Shard로 분할함.각 샤드는 다음 이미지에서 볼 수 있듯이 인덱스에 있는 모든 ..

Database/Opensearch 2024.11.18

Clickhouse에서의 Sharding

1. ClickHouse에서의 샤딩1.1 샤딩(Sharding)이란?샤딩은 동일한 스키마를 가지고 있는 여러대의 데이터베이스 서버들에 데이터를 작은 단위로 나누어 분산 저장하는 기법이다. 이때, 작은 단위를 샤드(shard)라고 부른다.어떻게 보면 샤딩은 수평 파티셔닝의 일종이다.차이점은 파티셔닝은 모든 데이터를 동일한 컴퓨터에 저장하지만, 샤딩은 데이터를 서로 다른 컴퓨터에 분산한다는 점이다.물리적으로 서로 다른 컴퓨터에 데이터를 저장하므로, 쿼리 성능 향상과 더불어 부하가 분산되는 효과까지 얻을 수 있다. 즉, 샤딩은 데이터베이스 차원의 수평 확장(scale-out)인 셈이다.1.2 샤딩의 장단점샤딩의 장점1) 데이터 처리 속도: 노드에 가해지는 데이터 부하는 작아지고 데이터 처리 속도는 향상된다.2..

Database/Clickhouse 2024.11.16

Clickhouse 개요 및 Docker로 Multi node 구성

1. ClickHouse 개요1.1 ClickHouseClickHouse는 OLAP을 위한 고성능, 컬럼 지향형 SQL DBMS이다.기존 데이터베이스보다 100~1000배 더 빠르게 작동하고 초당 수억에서 수십억 행과 수십 기가바이트의 데이터를 처리한다.오픈소스로 무료이고, ClickHouse에서 클라우드로 제공해주는 서비스는 유료이다.1.2 OLAP (Online analytical processing)OLAP란 OnLine Analytical Processing의 약자로 다양한 관점에서 비지니스 데이터를 분석하는 데에 사용할 수 있는 소프트웨어 기술이다.온라인 분석 처리(OLAP)는 다음과 같은 특성을 가진 복잡한 분석 쿼리에 대해 대규모 데이터 세트에 대한 실시간 응답이 필요하다.데이터 세트는 수십..

Database/Clickhouse 2024.11.16

MySQL root 패스워드 분실 시 재설정 방법

1. mysqld 정지 및 MySQL 환경 변수 설정 mysqld를 정지해준 뒤, MySQL 환경 변수를 변경하여 비밀번호 없이 root로 로그인할 수 있도록 해준다. $ systemctl stop mysqld $ systemctl status mysqld $ systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 2. MySQL root 로그인 및 비밀번호 변경 mysqld를 다시 가동하고 로그인을 한다. 비밀번호를 입력하지 않고 바로 Enter를 누르면 로그인에 성공한다. $ systemctl start mysqld $ mysql -u root -p //패스워드 입력하지 않고 바로 엔터 패스워드 변경 단계에서 인터넷을 참고해서 명령어를 입력해도 계속..

Database/MySQL 2022.06.18

[MongoDB] Python으로 PyMongo 사용 방법 정리 (INSERT / FIND / UPDATE / DELETE)

pymongo로 mongoDB 조작하기 (INSERT / FIND / UPDATE / DELETE) 1) INSERT from pymongo import MongoClient client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아간다. db = client.dbsparta # 'dbsparta'라는 이름의 db를 사용한다.(없으면 만든다.) # MongoDB에 insert 하기 # 'users'라는 collection에 {'name':'bobby','age':21}를 넣는다. db.users.insert_one({'name':'bobby','age':21}) db.users.insert_one({'name':'kay','age':27}) db...

Database/MongoDB 2021.07.11

프로그래머스(Programmers) SQL - 보호소에서 중성화한 동물 문제 풀이 | JOIN(Level 4)

보호소에서 중성화한 동물 출처: programmers.co.kr/learn/courses/30/lessons/59045 코딩테스트 연습 - 보호소에서 중성화한 동물 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDI..

728x90
반응형