얼마 전 steemsql이 유료로 전환된 후 steemsql 시리즈를 올렸던 제게 다시 할일이 생긴 것 같습니다. 월 이용료 10 SBD는 가끔 데이터를 보고자하는 이용자에겐 꽤나 부담되는 가격일 수 있습니다. 그래서 steemdata 서비스를 좀 살펴보았는데 ( steemdata.com ) 현재 Mysql을 이용한 서비스는 닫혀있었고 몽고DB 서비스만을 오픈해두었습니다. MySql 서비스가 오픈되면 그에 대한 사용법도 올려보겠습니다.
그래서 당연히 몽고DB를 이용해 통계를 뽑아보는 간단한 연재로 다시 마무리 지어볼까 합니다. steemsql의 유료화 덕분에 비개발자 SQL 통계 시리즈의 SteemData 버전이 필요한 듯 싶으니까요. 그럼 간단하게 시작해봅시다~
1. steemdata 사이트에 접속해봅시다.
이런식으로 첫 페이지에 떡하니 MongoDB에 대한 접속 정보가 있습니다. 바로 옆에 MySQL이 있군요.
안타깝게도 제가 조금 다룰줄 아는 mysql은 현재 서비스중이지 않은 것 같습니다. 몽고디비는 한번도 다뤄본적이 없어 재밌게 다뤄보겠습니다. 언제나 첫 경험은 새로운 느낌을 줍니다. (^^)
그러니 몽고DB 사용에 도전해봅시다. 우리는 뭘 사용하든 데이터만 보면 되니까요.
2. MongoDB 툴인 robomongo를 설치해봅시다.
아무리 검색을 해봐도 robomongo만 나올뿐입니다.몽고DB의 client는 로보몽고가 장악했다고 봐도 되는걸까요?
https://studio3t.com/download/ 를 접속하셔서 현재 여러분이 사용하시는 윈도우가 64bit인지 32bit인지 확인하신 후 다운로드 하시면 됩니다. 리눅스나 맥을 사용하시는 분이라면 굳이 이 포스팅을 통해서 보실 필요없으실 것 같습니다. ㅎㅎ
자 그럼 설치를 진행해봅시다. 물론 설치는 넥스트로 쭈욱 갑니다. 제가 잘 모르는 툴이나 프로그램을 설치할 때는 기본 설치를 지향하는 것 같습니다. 아무래도 과거에 별도 옵션이나 설치경로를 준 다음 좋지 못한 예외상황을 많이 만나서 그런 듯 합니다.
설치가 끝나고 프로그램을 켜보면 이런 옵셔널한 메뉴가 나오는데 그대로 Finish 합시다. 나중에라도 바꿀수 있을테니까요.
그러면 프로그램이 시작되는 여기서 Non-commercial use를 선택해서 트라이얼제한을 풀어버립시다.
3. SteemData 몽고DB에 접속해봅시다.
이제 설치가 끝났으니 커넥션 설정 후에 접속을 해보면 되겠습니다. Connect 버튼 → New Connection 버튼 → 커넥션 이름을 지정하고 아까 steemdata.com 사이트에 있던 주소를 입력합니다.
Host: mongo1.steemdata.com
Port: 27017
Database: SteemData
Username: steemit
Password: steemit
Auth 탭으로 이동하여 Auth mode를 Basic으로 바꾸고 접속 정보를 입력해줍니다. Database name 부분에는 StemData를 입력해줍니다.
그리고 하단에 Test Connection 버튼을 눌러 접속이 되는지 확인 후에 (조금 시간이 걸리니 기다려보세요. ) Save로 저장하고 접속해봅시다.
커넥션에 steemdata라는 연결정보가 생성되었고 이를 통해 이제 쉽게 접속이 가능할 듯 보입니다.
첫 접속입니다. 몽고디비에 대해 전혀 모르지만 컬렉션이 기존 steemsql에서 공부했던 테이블과 비슷한 개념이라는 것을 알 수 있습니다.
4. SteemData에서 첫 데이터 추출!
막상 까려고 해서 깠는데 어떻게 봐야할지 모르겠습니다. 메뉴얼 같은걸 보지 않고 막 해봅니다. 처음엔... 그게 좋아요. ㅋㅋ 단순한 SQL지원이 되는것 같으니 항목을 열고 쿼리를 해봅시다.
4-1. SQL 아이콘을 누르면 아래와 같은 쿼리창이 나옵니다.
4-2. 쿼리창에 우리가 계정정보를 조회했던 쿼리를 넣어봅시다.
-- 복붙용 쿼리
select *
from Accounts
where name = 'nhj12311'
이렇게 안보이시는 분은 옆에 우측 하단 4번에 Table View로 되있는 뷰 항목을 Json View로 바꾸면 보기 좋은 모습으로 데이터를 보실 수 있습니다. 전에 배웠던 steemsql과의 차이는 몽고DB는 nosql로 일정한 형식이 아닌 자유로운 포맷이 가능하다는 겁니다. 필드 구성에 있어서 자유도가 엄청 높은 디비랄까요?
결과 :
{
"_id" : ObjectId("5a5fa59cc6621bcf7b48499a"),
"name" : "nhj12311",
"account" : "nhj12311",
"active" : {
"weight_threshold" : NumberInt(1),
"account_auths" : [
],
-- 생략 --
이런식의 데이터를 json 문자열이라고 할수 있는데 몽고디비처럼 필드 제약이 없는 디비에서 보여주기가 편리한 포맷인듯 합니다.
5. 내 포스팅 리스트를 추출해보자!
역시 지난번의 쿼리와 똑같은 방식으로 내 포스팅 리스트 또한 추출이 가능했습니다. 단지 데이터 동기화가 덜 되어있는 모습이라 빠진 데이터가 보입니다. steemdata 측에 동기화가 다시 된다면 정확한 데이터를 기대해볼 수 있겠네요.
select title, created
from Posts
where author = 'nhj12311'
order by created desc
지난 회차 살펴보기
■ SteemSql 시리즈
■ SteemData - MongoDB(몽고디비) 시리즈 시작~^^
아! 여기는 또 새로운 세상이네요 ㅎ 한참 살펴보고 살짝 이해하고 갑니다^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Wish i could read it, looks like a lot of good info
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
데이터베이스 군요 스팀도 저런부분이 있었네요 여기 올려주신거 보고 차근히 읽어 봐야겠습니다
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
좋은 내용 ~ 잘 보고 갑니다 !!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
일반 사용자 입장에선 한달에 10스달이면 꽤 세죠
mysql 도 얼른 오픈했으면 하는군요 ㅎ
요즘 webapi도 안되던데 ...ㅠ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
그... 그렇군요. 뭔가 업뎃을 준비하나봅니다. ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
잘 보고갑니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
very informative post very well written
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오호~~ 저렇게도 데이터베이스를 추출할 수도 있군요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이런 서비스도 있군요. 잘 보고 갑니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이게 뭐죠~
아무쪼록 감사합니다
자매님 ^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아 결제 할까요 ㅋㅋ ㅠ_ ㅠ
사진에 보니 12월달 글이 안보이는데!!! 왜그럴까용? 동기화가 덜되서 그럴까요?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
네 그래보입니다. 서비스하시는분 글을 찾아보니 2주전쯤 데이터를 넣으셨다고 하던데 문제가 있는듯 하네요. 이슈는 알고있을거고 동기화 다시 해주지 않을까 생각합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
MongoDB
요새 데이타사이언스 쪽에서 사람 뽑을 때 거의 항상 물어보는 것 중에 하나던데,
여기서 접하게되네요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
지난 번 SQL 설치하고 몇번 사용하지도 못했는데, 접속 불가!! 이번에 mongoDB도 설치할까 말까 고민중입니다. 제가 필요한 건 node.js로 할 수 있게 되어서 고민 중입니다. 좋은 글 감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit