본문 바로가기

2014/0812

[Hadoop]install 하둡 설치 방법 [Hadoop]install 하둡 설치 방법 빅데이터 솔루션에 대한 이야기가 많이 나오면서 하둡이많이 언급되는데요. 하둡은 파일은 분산저장하는데 쓰입니다.HDFS(Hadoop Distributed File System)하둡 분산 파일 시스템으로 데이터를 복제해 분산저장할 수 있습니다.name node와 data node로 구성되는데요.name node는 rdb에서의 테이블스페이스와 같은 존재이고data node 는 실제 데이터가 저장되는 것에 비유 할 수 있습니다. 먼저 하둡을 apache.tt.co.kr에서 다운받을 수 있는데요. 리눅스에서 위와같이 파일을 받을 수 있습니다.설치한뒤 압축을 풀고 hadoop-env.sh파일에서 jdk경로를 잡아줘야합니다.hadoop압출을 푼곳에서 conf를 가보시면 h.. 2014. 8. 8.
[mongoDB]몽고디비 데이터모델링 설계 [mongoDB]몽고디비 데이터모델링 설계 몽고디비는 rdb와 설계의 측면에서 조금 다른점이 있는데요rdbms는 엔티티사이를 관계로 이어서 표현하는데요.몽고디비는 collection안에 collection이 들어갈수있는 구조입니다.한 field에서도 배열로 여러값이 들어갈 수 있습니다.몽고디비에 데이터를 넣을때 rich document structure를 생각해야하는데요이는 main document안에 embedded document가 있는것입니다.콜렉션안에 콜렉션이 들어가는것... 이것이 몽고디비의 핵심인것같습니다. ord라는 주문내역을 insert해보았습니다.하나의 ord_id에 위처럼 여러 상품이 들어갈수있습니다. 이렇게 하나의 주문에 2개의 상품내역이 들어갈 수 있죠.이것을 다른 콜렉션으로 분리해.. 2014. 8. 8.
[mongoDB]Geospatial index,GeoMetry index 몽고디비 인덱스 [mongoDB]Geospatial index,GeoMetry index 몽고디비 인덱스 몽고디비의 인덱스중에는 Geospatial index가 있습니다.이것은 바로 좌표를 인덱스로 만들어서 근처 몇km 또는특정지역을 지정해 검색할수 있는 유용한 인덱스입니다.자세한 내용과 문법에 대한 사항은 여기를 참고해주세요 임의로 날짜데이터를 입력한뒤에db.tel_pos.ensureIndex({ last_pos : "2d" })라는 last_pos에 2d 옵션을 주어서 인덱스를 만들었습니다. 센터에서 30mile반경에 해당하는 위치를 찾는 명령어입니다.30/3963이라고 하는데 여기서 3963은 지구의 반지름 mile?.. 을뜻한다고해요$centerSphere 는 기준점을 표시하고 있습니다. 그냥 2d가 있고2dsp.. 2014. 8. 6.
[mongoDB]index 몽고디비 인덱스 [mongoDB]index 몽고디비 인덱스 몽고디비에도 rdbms처럼 인덱스가 있습니다.인덱스는 dbms에서 필수라고 할 수 있죠.일반적으로 만드는 밸런스트리 인덱스와다른옵션으로 backgroud index, covered index그리고 좌표를 인덱스로 할 수 있는 Geospatial index가 있습니다. db.콜렉션이름.getIndexes()라는 명령어로 현재 콜렉션에 인덱스가 뭐가 있는지 볼 수 있습니다. db.system.indexes.find()라는 명령어로는 현재 데이터베이스에 있는 모든 인덱스를 볼 수 있습니다. 인덱스를 만들때는 db.콜렉션이름.ensureIndex({ })이렇게 만들어주면 됩니다.위는 empno로 인덱스를 만들었고 1의 뜻은 asc로 만드는것입니다.-1로 하면 desc로.. 2014. 8. 6.
[mongoDB]몽고디비 사용자 인증 [mongoDB]몽고디비 사용자 인증 오라클에서는 사용자가 객체이름을 결정하는 기준이었는데요몽고디비에서는 사용자를 인증하는 용도일뿐 객체이름을 결정하지 않습니다.오라클과 마찬가지로 os인증방식이 있고, 사용자 아이디 패스워드 인증방식이 있습니다. 기본 권한으로는database user roledb administration roleadministrative roleany database role이렇게 있습니다. 아래로갈수록 강력한 권한 입니다. 오라클에서는 한 데이터베이스에 여러사용자를 만드는 방식이었는데요mongodb에서는 각데이터베이스당 사용자를 따로따로 만들어줍니다. use admin 으로 admin데이터베이스 공간을 사용합니다. db.addUser({}) 명령어로 유저 이름 패스워드를 설정해 줄 .. 2014. 8. 6.
[mongoDB]Mapreduce 몽고디비 맵리듀스 [mongoDB]Mapreduce 몽고디비 맵리듀스 대용량 데이터처리 하면 많이 나오는 단어가 mapreduce인데요mapreduce는 map이라는 과정과 reduce라는 과정을 거쳐 관련있는 데이터끼리모아 빠르게 처리하는 기술을 말합니다. 몽고디비에서도 mapreduce기능이 있는데요 먼저 샘플데이터를 넣어보겠습니다. map_function이라는 이름으로 map과정을 만들어 보겠습니다.cust_id와 price를 뽑아오는 함수를 만들었죠.reduce_function에서는 고객 키에 대한 price의 합계를 구하고있는걸 볼 수 있습니다. 위에서 만든 함수를 이용해 mapreduce를 실행시키면map과 reduece함수를 통해 원하는 결과가 만들어지는것을 볼 수 있습니다. 2014. 8. 5.
[mongoDB]몽고디비 aggregate [mongoDB]몽고디비 aggregate 오라클에 pl/sql이 있다면 mongodb에는 aggregate가 있습니다.기존의 find로는 원하는 데이터로 가공하는데 어려움이 많이 따르는데요aggregate를 이용하면 해결할 수 있습니다. RDBMS aggregate where $match group by $group having $match select $project order by $sort limit $limit sum() $sum count() $sum RDBMS와 aggregate를 비교한것입니다. $group과 $sum으로 count를 세는 명령어 입니다. $match 부분에 써준 조건이 rdb에서 where에 해당합니다.$project 부분에는 실제로 가져올 데이터를 표시하는 부분입니다._.. 2014. 8. 5.
[mongoDB]몽고디비 기본명령어 [mongoDB]몽고디비 기본명령어 기본적인 insert입니다. 데이터를 불러올때 명령어인 find입니다.find({조건}, {불러올 데이터})id:1, age:1 의 뜻은 id와 age를 불러온다는 뜻입니다._id:0는 _id값은 불러오지않는다는 뜻입니다. $ne 는 not을 의미합니다.name중에 tyo가 아닌 데이터를 뽑아오는 명령어입니다. 위와같이 조건을 작성하는 부분에 ,를 해주면 and효과를 볼 수 있습니다.name이 taeyoung이면서 age가 20인 데이터를 뽑아오는 명령어입니다. $or 로 or를 사용할 수 있습니다.위 명령어는 name이 taeyoung이거나 age가 25인 데이터를 뽑아오고 있습니다. $gt : 20은 20보다 큰것을 뜻합니다.age가 20부터 큰 데이터를 뽑아오고 .. 2014. 8. 4.
[mongoDB]몽고디비 find() insert, update [mongoDB]몽고디비 find() insert, update 몽고디비의 기본적인 명령어 find, insert, update를 알아보겠습니다. m={ename : "smith"}ename이라는 field에 smith값을 넣을때 이러한 방식으로 데이터를 넣을 수 있는데요 m이라는 이름에 저장한뒤에 이렇게 db.things.save(m)이라고해주면 things라는 공간에 데이터가 insert된걸 보실 수 있습니다. things라는 공간에 어떤데이터가 들어있는지 확인할때 find()를 사용하면 되는데요_id는 document에 대한 유일한 값입니다. 오라클의 rowid와 비슷하죠 insert를 할때 맨위처럼 할 수 도있지만이러한 방식으로도 삽입을 할 수 있습니다. 데이터가 삽입된것을 확인 할 수 있죠 지금.. 2014. 8. 4.