MySQL과 MariaDB는 동일한 사람이 만들었기 때문에, 사용법 또한 거의 동일하다. 그래서 이 문법은 MySQL에서 하든 MariaDB에서 하든 모두 동일하게 작동되는 점 참고 하면 좋을 것 같다. MySQL(혹은 MariaDB)를 설치하였다면, 제일 처음에 해야 할일은 데이터베이스(Database)를 생성해야 되는 것이다. MySQL의 database의 개념은 Oracle의 tablespace 개념과 동일하며, 테이블들과 View, Function 등을 생성하는 공간이라고 보면 된다. 데이터베이스를 생성하였다면, 다음으로는 계정을 생성한다. 계정을 생성할 때, 권한을 한번에 지정하여 생성할 수도 있고, 생성하고 난 후 권한을 지정할 수 있는데 여기서는 두가지 방식 모두 해보도록 한다. 데이터 베이..
1. 아파치 스파크(Apache Spark)란? 아파치 스파크(Apache Spark)는 빅데이터(Bigdata) 처리를 위해서 등장한 오픈소스 병렬분산처리 솔루션, 플랫폼이다. 빅데이터가 한창 떴던 당시 전세계는 빅데이터 열풍과 동시에 "빅데이터 = 하둡(Hadoop)"이라는 생각을 했을 만큼 하둡의 등장은 센세이션 했었다. 문제는 하둡의 등장은 2010년 즈음이고, 그때와 지금과는 데이터가 하늘과 땅차이가 날 정도로 패러다임이 다시 바뀌게 되었다. 하둡은 기본적으로 HDFS(Hadoop Distributed File System)라고하는 분산 저장 파일 시스템과 맵리듀스(MapReduce)라고 하는 데이터 처리 방식으로 인해서 한 획을 그었는데 문제는 HDFS는 디스크의 I/O를 사용하는 것이고, 결..
엘라스틱서치(Elasticsearch)는 루씬(Lucene) 기반으로 되어 있지만, 루씬과 다른점은 루씬은 라이브러리라고 한다면 엘라스틱서치는 검색엔진이다. 그러다보니 개발자 입장에서는 루씬이 편할 수도 있고, 개발을 잘 모르는 사람 입장에서는 엘라스틱 서치가 편할 수 있는 구분점이 존재한다. 그러나 확실히 하나 말할 수 있는 것은 어느정도의 부하가 존재하며, 서버의 튜닝이나 자바등을 잘 알지 못하는 경우라면, 루씬보다 엘라스틱 서치를 쓰는 것이 훨씬 좋을 것이다. 참고로 엘라스틱서치는 설치 및 정상적으로 구동하고 있는지 확인하는 방법이 매우 간단하다. 1. 다운로드 받기 일단, 본인의 OS에 따라서 설치하는 파일이 달라질 수 있다. 블로그를 윈도우 환경에서 작성하고 있기 때문에 설치부터 활용방안까지 모..
1. 국내의 검색엔진 검색엔진 전문가로서, 많은 분들이 검색엔진하면 어렵다는 편견을 갖는 분들이 많다. DB는 스페셜하게 잘 다루지만, 검색엔진은 왠지 전문가만 다뤄야 할 것만 같아서 검색엔진을 사용하면 훨씬 효율성이 높은 부분 마저도 DB에서 Like 쿼리를 사용하는 사이트가 허다하다. 그렇다고, 국내의 검색엔진 업체 제품을 쓰면 왠지 손해보는 느낌이 강한데... 왠만한 검색엔진 값이 차 한대값과 맞먹고, 라이센스에 따라서 아반테가격에서 벤츠가격까지 올라가는 경우가 존재한다. 국내의 검색엔진 업체는 와이즈넛, 코난테크놀로지, 솔트룩스의 3파전 양상이다. 이중 와이즈넛이 가장 유명하지만, 그렇다고 기술력이 가장 뛰어난 업체는 아니다. 와이즈넛과 코난테크놀로지는 검색엔진 순수 기술로만 하면 BMT 스코어가..
토드(Toad)라고 불리우는 유명한 Oracle용 DBMS Tool이 존재하는데 워낙 사용성이 뛰어나지만, 가격이 비싸기 때문에 많은 사람들이 눈물을 머금고, SQLDeveloper를 쓰거나 혹은, 어둠의 경로로 몰래 받아서 쓰는 사람들이 존재할 것이다. 그만큼 DBMS 툴로서, 상징적인 존재인 제품인데 MySQL 혹은 MariaDB용 버전도 존재한다. 다행인것은, 무료 DBMS 인 Mysql, MariaDB 처럼 툴 역시 무료로 제공 된다. https://www.toadworld.com/m/freeware/1469 사이트에 접속을 하게 되면, 위와 같은, 다운로드 화면이 나오게 된다. 다운로드를 누른다고, 한번에 자료를 주진 않는다 (오라클과 동일) download 버튼을 누르면, 위와 같이 로그인 화..
오라클에도 존재하듯, MySQL에도 SUBSTRING 기능이 존재한다. 이 SUBSTRING은 거의 모든 언어나 DBMS에 자체적으로 내장이 되어 있고, 사용방법도 비슷하다. SUBSTR이라고 써도 되고, SUBSTRING으로 써도 된다. 둘은 완전히 동일하다. 사용방법SUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str FROM pos FOR len) 1. 인자값 설명 str 원본 문자열 pos 시작 위치값 len 가져올 길이값 2. 사용사례 SUBSTR(str, pos) SELECT SUBSTR('동해물과백두산이',5); 결과) 백두산이 해석) 5번째 문자열부터 읽으시오. SUBSTR(str FROM pos) SELECT SUB..
흔히 오라클을 사용하던 사람들이 Mysql을 사용하면 헷갈리는 부분중 하나가 바로 문자열 합치기이다. 오라클은 || 로 간단하게 합치는 반면 Mysql은 해당 기능이 먹히지 않기 때문이다. 그 함수가 CONCAT, CONCAT_WS 함수이다. 1. CONCAT SELECT CONCAT(str1, str2 ... ); 한마디로, CONCAT은 문자열을 나열하면 값을 합치게 된다. 아래는 CONCAT 예제들이다. 특히, NULL 부분 확인 위 사례처럼, Concat 안에 들어가는 문자열 중, NULL이 들어가면, 무조건 결과는 NULL로 떨어진다. CONCAT을 잘못써서, NULL이 나올 수 있는 점은 감안하고, 사용하도록 하자. 2. CONCAT_WS SELECT CONCAT_WS(sepator, str1..
현재 하고 있는 프로젝트는 MySQL DB를 사용하고 있고, TA로 투입이 되면서 테이블을 설계 업무도 병행하게 되었다. (물론 다 하는건 아니었지만) 큰 그림을 그리는 작업을 하는 거라, 업무별 테이블 설계는 해당 업무의 특성인 조회 특화, 트랜잭션 없음, 집계 필요 등 데이터마이닝용 테이블 설계라 MyISAM 쪽으로 가닥을 잡고 설계를 했다. 사실 처음에는 InnoDB로 테이블을 생성하여 테스트를 하였는데... 10만건당, 테이블에 밀어넣는(Batch Insert) 작업이 약 10초정도 걸렸고, MyISAM은 7초정도에 끝났기 때문에.. 고민은 끝난듯 보였다. 데이터의 사이즈가 꽤나 큰 작업이었고, 배치 속도도 상당히 중요했기 때문이다. 전체적으로 배치작업을 진행하면서, InnoDB는 약 2시간, M..
사실 이런 글을 포스팅할 이유는 없지만, 개발을 이제 막 시작한 분들이나 이쪽 계통에 대해서 잘 모르는 분들을 위해서 간단히 포스팅해 보도록 한다. Mysql을 설치하려 오신 분들은 이 참에 MariaDB를 설치해보도록 한다 (둘은 만든 사람이 같으나, MariaDB는 완전 무료고, Mysql은 부분 무료이다) MariaDB로 개발해도 Mysql과 동일하기 때문에 개발 및 진행상에 아무런 문제가 없다. 심지어, MariaDB를 설치할 때 서비스명까지 Mysql로 뜨는 쌍둥이로 봐도 무방하다. http://needjarvis.tistory.com/10 (MariaDB와 Mysql의 포스팅 참고) MariaDB는 https://downloads.mariadb.org/ 에서 다운로드가 가능하며, 현재 내 로컬..
MariaDB란 MySQL과 자매버전으로 불리우는 오픈소스 DB이다. MySQL과 자매버전으로 불리우는 이유가 존재하는데 그 내용을 알면 꽤 흥미진진하다. MySQL을 만든 개발자인 Michael Widenius(Monty 라고 불리움)는 SUN 마이크로 시스템에 MySQL AB 회사를 인수하고, 다시 SUN 마이크로시스템이 오라클에 인수되면서 Monty는 오라클에 넘어간 자기의 자식을 걱정하며, Monty AB라는 회사를 차리게 된다. - 로고마저, MySQL과 Maria는 서로 닮아있다.(돌고래, 물개) 왜냐하면, 오라클이라는 업체는 IT계에서도 유명한 보수 업체이고, 이렇다 보니 그동안구글 vs 오라클, MySQL vs Oracle 등 개방 vs 폐쇄 라는 싸움이 많이 나기도 하였다. 내가 Mont..