본문 바로가기

database

InfluxDB : InfluxQL Functions 목록 InfluxDB - InfluxQL Functions InfluxQL은 Aggregate, Select, Transform, Predict Data 측면에서 함수들을 제공합니다. Index - Aggregations 1. COUNT 2. DISTINCT 3. INTEGRAL 4. MEDIAN 5. MODE() 6. SPREAD() 7. STDDEV() 8. SUM() - Selectors 1. BOTTOM() 2. FIRST() 3. LAST() 4. MAX() 5. MIN() 6. PERCENTILE() 7. SAMPLE() 8. TOP() - Transformations - Predictors - Technical Analysis Aggregations 1. COUNT() 널이 아닌 필드 값의 수를 .. 더보기
MongoDB : String-List to Concat-String 시간이 없어서.. 간략하게 적어봅니다. String으로 구성된 List를 하나의 필드안에 구분자를 주어 묶어야 하는 일이 생겼습니다. { // DB 기준으로 테이블, 컬럼 리스트를 생성 $group: { _id: "$dbNm", tableList: { $addToSet: "$tableNm" }, columnList: { $addToSet: "$columnNm" } }, // reduce & concate 을 이용하여 List를 Concate String 으로 변환 $project: { dbNm: "$_id", tableNm: { $reduce: { input: "$tableList", initialValue: "", in: { $concat: ["$$value", "_", "$$this"] } } }, .. 더보기
MongoDB : Limit, Sort 여러번 사용 특정 데이터를 검색하기 위해 limit 와 sort를 여러번 사용해야할 때가 있습니다. 기본적인 Mongo API를 이용해서 시도해보았습니다. 기록된 데이터중 최근 1000건의 데이터 중 가장 마지막 일자의 데이터를 찾는 것이 목표입니다. Criteria criteria = new Criteria(); Query query = new Query(); criteria.and("creDatm").gt(startDate); query.addCriteria(criteria); query.with(Sort.by(Direction.ASC, "creDatm")); query.limit(1000); query.with(Sort.by(Direction.DESC, "creDatm")); query.limit(1); Sql.. 더보기
MongoDB : Backup & Restore 업무 중 MongoDB의 Database를 복제해야 하는 일이 생겼습니다. 그래서 다음과 절차를 갖고 진행했습니다. MongoDB 에서는 databaseCopy 라는 명령어를 제공해줍니다. 복제해야 할 Database 로 접속합니다. use DB명 그리고 다음 명령어로 복제를 수행합니다. db.copyDatabase('원본DB명' , '복제DB명') 그러나, Sharding 으로 구성하였을 경우 위 명령어로는 복제를 할 수 없습니다. 따라서 mongodump 와 mongorestore를 이용해야 합니다. 우선, dump 파일을 생성하겠습니다. mongodump 실행 포맷 mongodump --out /파일경로/파일명 --port 포트번호 -u관리자계정 -p관리자암호 --db .. 더보기
Oracle의 PL/SQL 에 관하여 (2) Oracle PL/SQL를 분석하기 위해서 타입별로 구성을 알아보도록 합니다. PL/SQL 유형별 구문 1. Procedure CREATE OR REPLACE PROCEDURE [Name] [IN or OUT Parameter] IS [Declare Variable] BEGIN [Statement] END; 2. Function CREATE OR REPLACE FUNCTION [Name] RETURN [Return Data Type] IS [Declare Variable] BEGIN [Statement] RETURN [Return Variable]; END; 3. Trigger CREATE OR REPLACE TRIGGER [Name] [Condition] IS [Declare Variable] BEGI.. 더보기
Oracle의 PL/SQL 에 관하여 (1) PL/SQL 이란 ? Oracle’s Procedural Language extension to SQL 의 약자 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR)등을 지원하며,오라클 자체에 내장되어 있는 Procedure Language PL/SQL Block Structure DECLARE (Declarative Section(선언부)) - Optional - Variables, cursors, user-defined exceptions BEGIN (Executable Section(실행부)) - Mandatory - SQL Statements - PL/SQL Statements EXCEPTION (Exception Handling Section(예외처리)) - Actions to .. 더보기
MongoDB : Too Many Open File 현상 현재 프로젝트에서 두 대의 서버로 MongoDB의 ReplicaSet를 구성하였습니다. 그런데, 운영 중 서버B에서 동작중인 RS1 Secondary가 죽기도 하고 .. 서버A에서 동작중인 RS1 Primary가 죽기도 하는 현상이 간헐적으로 발생하였습니다. MongoDB 로그를 분석 중, 여러 에러 코드가 있었지만 Too many file opens와 함께 Prefix로 [Error] 를 발견하였습니다. 우선 1차적인 조치로 이 것을 해결하기 위해 살펴보던 중 Linux에서 허용하는 open files가 4096으로 되어 있는 것을 보았습니다. 우선 이 값을 최대치로 높여주기 위핸 조치를 취했습니다. ulimit -a 로 현재 시스템에서의 수치 확인 ... open files 4096 max user .. 더보기
Redis 소개 Redis 란? (REmote DIctionary Server) Salvatore Sanfilippo 가 개발한 오픈 소스 소프트웨어 휘발성이면서 영속성을 가진 key-value 형 스토어 Memory DB : 메모리에 데이타를 저장, 관리 Redis 특징 오픈 소스 소프트웨어 디스크가 아닌 메모리 기반의 데이터 저장소이다. (In-Memory data structure store) NoSQL & Cache 솔루션이며 메모리 기반으로 구성된다. 명시적으로 삭제, expire를 설정하지 않으면 데이터는 삭제되지 않는다(영구적 보존) 여러대의 서버 구성 가능하다. 데이터베이스로 사용될 수 있으며, Cache로도 사용될 수 있는 기술이다. 성능은 서버에 따라 다르나 초당 2만 ~ 10만회 수행한다. Memor.. 더보기