본문 바로가기

Database82

Elastic의 벡터 서치를 위한 HNSW와 다중 계층 기능 안녕하세요. BTC_기범입니다.오늘은 Elastic에서 벡터 서치를 할 때 사용되는 Hierarchical Navigable Small World graphs(이하 HNSW)와 벡터 서치 성능을 높이는데 영향을 미치는 다중 계층 기능에 대해 알아보겠습니다.HNSW (Hierarchical Navigable Small World graphs)HNSW는 Elasticsearch 8.x 버전에서 도입된 고성능 벡터 검색 알고리즘입니다. 데이터 볼륨과 벡터 유사성 검색에서 차원이 증가하면서 발생하는 성능 문제를 해결하기 위해 고안되었습니다.HNSW의 주요 특징은 다음과 같습니다.계층적 그래프 구조: 데이터 포인트를 계층적 그래프로 구성하여, 유사한 벡터를 빠르게 찾을 수 있도록 합니다.탐색 가능한 작은 세상 (.. 2024. 4. 30.
Apache Iceberg 베하~! 안녕하세요 1-Tier팀 입니다. 이번에는 대규모 데이터 레이크 관리를 위한 오픈소스인 Apache Iceberg에 대해 알아보겠습니다. Apache Iceberg Apache Iceberg는 페타바이트 기반의 데이터를 위한 오픈소스로, Netflix에서 개발하여 2020년부터 오픈소스로 사용되었습니다. Apache Iceberg는 데이터 레이크에 저장된 대규모 데이터 세트를 테이블로 관리할 수 있고 데이터 처리를 위한 지원을 해준다는 것입니다. 기존 Apache Hive 기반의 빅데이터 처리 방식은 ACID 트랜잭션을 지원하지 않아 데이터의 일관성과 무결성 보장을 하지 않았지만, Apache Iceberg는 ACID를 보장하여 데이터의 일관성과 무결성을 보장할 뿐만 아니라 데이터 변경 시 레코.. 2024. 4. 8.
[Mysql] 프로시저 기초 사용법 베하! 오랜만이네요 여러분! 그동안 무척 바빴답니다 ㅎㅎ 그리웠다고 말해줘요 오늘 가져온 주제는 프로시저 사용법입니다! 두둥! 많은 분들이 쿼리문을 사용하여 DB의 내용을 조회하거나 변경하는 등의 작업은 익숙하실 거예요. 하지만 프로그래밍처럼 코드를 짜서 DB 서버에 무언가 실행하는 프로시저 방법은 생소할 것이라고 생각하여 들고온 주제입니다. 프로시저(Procedure)란? 본격적으로 설명하기에 앞서 프로시저란 정확하게 무엇일까요. 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합을 의미 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것으로, 영구저장모듈(Persistent Storage Module)이라고도 불립니다. 만약 여러 개의 칼럼을 조회하.. 2024. 3. 7.
[GA4] 이벤트란? 베하 ~! 😊 오늘은 GA4에서 말하는 '이벤트'가 무엇인지에 대해 알아보겠습니다. Event란? GA4에서 이벤트란 웹 또는 앱에서 포함된 웹 페이지 요소와 사용자간의 상호 작용(모든 활동)을 말합니다. 이벤트를 통해 페이지 내 고객의 상호작용을 GA4로 전송하고 웹&앱 데이터 분석 도구인 GA4에서 '사용자 행동 분석'을 할 수 있게 해줍니다. 작동 방식 태그가 추가된 웹사이트에서 외부 웹사이트로 이동하는 링크를 사용자가 클릭할 때 하기의 순서와 같이 이벤트를 처리하게 됩니다. 사용자가 웹사이트를 방문하여 외부 웹사이트로 연결되는 링크 클릭 애널릭틱스에서 클릭 이벤트를 수신하고 이벤트 및 매개변수를 실시간 보고서에 표시 애널리틱스에서 이벤트를 완전히 처리 애널리틱스에서 보고서, 잠재고객 등에 사용되는.. 2024. 1. 18.
Redis의 Node와 Shard 베하 비티시보이즈 입니다. 오늘은 Redis의 노드와 샤드에 대해 알아 보겠습니다! Redis 노드와 샤드 Redis는 메모리 기반 키-값 데이터베이스입니다. Redis는 단일 노드로 구성할 수도 있지만, 여러 노드로 구성하여 클러스터링할 수도 있습니다. 클러스터링을 통해 Redis는 성능과 확장성을 향상시킬 수 있습니다. Redis 클러스터의 기본 구성 요소는 노드와 샤드입니다. Node Node는 Redis 클러스터의 개별 구성 요소입니다. 노드는 Redis 데이터를 저장하고 처리합니다. 노드는 읽기/쓰기 Primary Node와 Replication Node로 구분됩니다. 읽기/쓰기 노드는 데이터를 읽고 쓸 수 있는 노드입니다. 읽기/쓰기 노드는 클라이언트의 요청을 처리합니다. 복제 노드는 읽기 전.. 2024. 1. 5.
MySQL 일일 단위 백업 자동화 베하 ~~! BTC 현상수배범입니다. 한해가 마무리 되고 있네요 ^^ 다들 즐거운 연말되시길 바랍니다~! 이번 시간에는 MySQL 일일 단위 백업 자동화하는 방법에 대해 같이 실습해보도록 하겠습니다. [참고자료] Mysql 일단위 백업 자동화 [AWS] ubuntu에 Mysql 설치하기 [AWS] ubuntu에 Mysql 설치하기 EC2에 Mysql을 설치해보자! 1. 먼저 우분투 서버를 업데이트하고 Mysql-server를 설치한다. 2. Mysql에 접속해준다. 설치하면서 별도로 비밀번호를 설정하지 않은 경우, 비밀번호 입력 창에서 엔터를 입 velog.io 1. 우분투 서버를 업데이트하고 Mysql-server를 설치 sudo apt-get update sudo apt-get install mysq.. 2023. 12. 29.
Airflow 환경 이전 베하~ 반갑습니다!! 인사통의 BTC_김회장, 최총무입니다!! 오늘은 Airflow 환경을 이전한다고 가정하고 환경 이전을 해보겠습니다!! 실무에서 꽤 사용하는 내용이니 기억해주세요~ 1. 수정 권한 확인 각자 User마다 가진 권한에 따라 Airflow Webserver상 확인 할 수 있는 카테고리가 다릅니다. 아마 데이터 엔지니어 역할을 하고 있다면 Admin 권한이 있어 Security나 Admin 등 중요한 항목까지 보이게 될텐데요! 다음과 같이 Security와 Admin이 보이는지 확인해주세요~ 확인이 안된다면 Airflow CLI를 통해 아래 명령어로 권한을 추가할 수 있습니다!! airflow users add-role -e {USER NAME} -r Admin 이제 모든 항목이 보인다면 .. 2023. 12. 24.
Python 클라이언트 라이브러리를 사용하여 Cloud Pub/Sub로 메시지 게시 베하 ~! 😊 지난 시간에 배운 Pub/Sub 개념을 가지고 간단하게 Message 게시를 해보겠습니다. 먼저 저번 시간에 나왔던 거 중에서 다시 정리를 드리자면 아시다시피 Google Cloud Pub/Sub는 비동기식 글로벌 메시징 서비스입니다. 게시자는 메시지를 생성하여 주제에 보내고, 구독자는 메시지를 수신하기 위해 주제에 대한 구독을 생성합니다. 여기서는 파이썬을 사용하여 주제, 구독자를 생성한 다음 메시지까지 만드는 명령어를 간단하게 정리해보겠습니다. Settings # python 가상 환경 생성 sudo apt-get install -y virtualenv python3 -m venv venv source venv/bin/activate # library 설치 pip install --up.. 2023. 12. 15.