본문 바로가기

SW LAB/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 .. 더보기
Real MongoDB : (1) 소개 (작성중) `Spananer`가 가진 기능들이 분산 처리 데이터베이스가 가야 할 방향이라고 생각합니다. - 관계형 데이터베이스 - 트랜잭션 지원 - 분산 처리 - 재해 복구 (Disaster Recovery) - Sharding & Re-Balancing - 데이터 복제 & 자동 복구 위 `Spanner`가 가진 특징 중 `관계형 데이터베이스`를 제외하면 MongoDB는 모두 지원합니다. 더보기
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 .. 더보기