안녕하세요? 트리입니다.
갑자기 제목이 거창해졌습니다. DB 뒤져보기라니..
스팀잇을 알아가면서 많은 개발자 분들이 놀라운 기술을 보여주셨는데,
오늘 간단히 살펴볼 것은 스팀 블록체인의 데이터베이스(DB) 서비스인 스팀DB입니다.
데이터베이스(DB)는?
흔히들 DB(디비)라고 하는 데이터베이스는 데이터베이스 시스템을 줄여서 이야기 한 겁니다.
(정확히는 관계형 데이터베이스 시스템인데, 이건 생략합니다.)
데이터를 관리하기 위해 잘 정리해 놓은 서랍 같은 건데, 간단히 생각해 보자면 엑셀의 데이터 저장 형태와 같다고 이해하시면 됩니다.
데이터베이스에서는 이 예제의 학생키라는 시트와 같은 집합을 테이블라고 하고,
학년, 반, 이름, 키라는 속성을 컬럼이라고 합니다.
우리 가상화폐 스팀도 김스팀 학생처럼 쭉쭉 자라나길 바래봅니다. -_-
DB를 볼 수 있는 도구가 필요합니다.
데이터베이스 시스템에는 위의 엑셀 예제와 같은 형태로 테이블과 데이터가 저장되어 있습니다.
그런데 사용자 입장에서는 어떻게 보아야 할 지 막막하죠.
이럴 때는 사용하는 DB 도구가 있습니다. 엑셀 같은 친구죠.
엑셀은 파일을 여는 프로그램이라고 하면, 이 DB도구는 데이터베이스를 여는 프로그램이라고 이해하시면 됩니다.
DB 친구 하나만 소개합니다. QueryBox!
예전에 @twinbraid 님이 소개해 주셨던 HeidiSQL 이라는 친구도 있는데요.
저는 오늘 검색하다 발견한 국산 프로그램을 소개합니다.
QueryBox(쿼리박스)라고 하구요.
개인 사용자는 공짜~ 입니다.
영어 울렁증 있으시면 이거 써보셔도 좋을 것 같구요.
Alt+C로 테이블 레이아웃을 조회하는 등의 편의성이 제법 잘 갖춰져 있습니다.
(HeidiSQL도 깔아 봤는데, 이건 실행하려면 F9 키를 눌러야 하더군요.)
홈페이지의 다운로드 페이지에서 다운로드 받으시면 됩니다.
QueryBox 설치를 해봅시다.
쿼리박스 설치를 시작해 봅니다.
사용권계약을 보니 개인 사용자는 무상제공, 기관은 무상 불가!
기관에서 사용하는 개인은 인정 안한답니다.
저처럼(?) 집에서 가볍게 쓰시는 분만 설치하는 걸로~
열심히 설치중입니다.
빠밤! 설치가 완료되었습니다.
QueryBox 실행
자, 그러면 쿼리박스를 실행해 봅시다.
실행하면 다음과 같은 DB 연결창이 뜨는데요. 접속 정보를 잘 입력해 줘야 합니다.
Server: sql.steemsql.com
User: steemit
Password: steemit
Database name: DBSteem
- 빨간 박스의 내용을 채워 넣습니다.
별명은 마음대로 넣으세요.
아, 비밀번호도 steemit 입니다.
데이터베이스는 처음에 공백인데, 옆의 화살표를 누르시면 DBSteem이 아마 선택될 거예요. - 저장 버튼을 누르시면 개인 접속 서버 목록에 올라갑니다.
(다음 번에는 저걸 눌러 항목이 연결정보에 채워지면 접속 합니다.) - 그리고 접속 버튼을 누릅니다.
잠시 기다리면 접속이 됩니다. 만약 접속이 안되시면.. 저쪽 서비스가 죽어 있거나 방화벽이 문제인데.. 설명이 길어지니 스킵하겠습니다.
쿼리 편집기 실행
쿼리 편집기에서 쿼리를 입력하고 실행하면 실행 결과가 엑셀처럼 나타납니다.
SELECT * FROM Accounts WHERE name = '궁금한아이디';
이렇게 입력하시면 되는데요.
실행 방법은 입력한 다음에 컨트롤과 엔터키를 함께 누르시면 아래쪽에 결과가 나타납니다.
(전체는 F5이고, 현재 줄 실행은 Ctrl+Enter 등등입니다.)
테이블의 레이아웃을 조회하려면 테이블명 위에 커서를 두고 Alt+C 를 누르시면 테이블 레이아웃이 나타납니다.
잠깐이지만 사용 편의성이 HeidiSql보다 나은 것 같고, 아직 QueryBox 버전으로 설명이 없는 듯 해서 QueryBox 버전으로 소개드렸습니다. ^^
DBSteem 다이어그램
20일 전에 @segyepark 님께서 작성해 주신 다이어그램 공유 글이 있었습니다.
- DBSteem 다이어그램 공유합니다: https://steemit.com/kr-dev/@segyepark/dbsteem-steemit-sql-server-database-by-arcange
여기를 보시면 여러 테이블의 관계도가 나타나 있는데, 방금 제가 조회했던 Accounts(계정) 테이블도 보입니다.
당시 이 글을 보았을 때는 삐약삐약 16일차 뉴비였기 때문에 '나중에 봐야지~' 하고 챙겨만 놨는데요.
오늘에서야.. 이렇게 실제로 뒤져보게 되네요. ㅠ_ㅠ
귀한 정보 공유해 주신 @arcange 님과 @segyepark 님, @twinbraid 님께 감사 드립니다.
참고 링크
@arcange 님의 STEEMSQL - A public SQL database with all blockchain data: https://steemit.com/steemsql/@arcange/steemsql-a-public-sql-database-with-all-blockchain-data-update-8
@twinbraid 님의 스팀 데이터를 뽑아보자: https://steemit.com/kr/@twinbraid/77e9gt
@twinbraid 님의 스팀 데이터를 발로 뽑아보자 (개복치용): https://steemit.com/kr/@twinbraid/3q9mao
@segyepark 님의 DBSteem 다이어그램 공유합니다 : https://steemit.com/kr-dev/@segyepark/dbsteem-steemit-sql-server-database-by-arcange
Cheer Up! 음~? 흥미로운 포스팅이군요.
거짓말!
다 알면서.. -_-+
좋은 정보가 많네요.
그동안 다 봤던 글인데 한방에 정리 해주셔서 감사합니다. ^^
정말 '나중에 봐야지~' 했던 걸 한 번 해보면서 정리해 봤습니다. ㅎㅎ
QueryBox 라는 툴은 처음 써봤는데, 꽤 괜찮더라구요~ ^^
글 하나가 거의 논문 수준으로 엄청 정갈하네요 대박이에요 ㄷㄷ 제가 중간에 나와서 깜놀했네요. 너무 감사해요 ㅋㅋ ERD를 진짜로 활용해주시니 넘 기분 좋아요 ㅋㅋ QueryBox도 처음 알아갑니다. 감사합니다 :)
@segyepark 님 아니셨으면 이걸 뒤져볼 생각도 못했을 거예요~ 정말 감사합니다. : )
잠깐 봤지만 다른 테이블의 같은 데이터로 연결된 컬럼이면 컬럼명 좀 맞춰주지 싶더라구요. ㅎㅎ
(틈날 때 접속해 보고 싶은데, 회사는 집이랑 또 다른 환경이라 ㅠ_ㅠ)
아무튼.. 덕분에 너무 감사히 잘 봤습니다! 큰 도움 됐어요!! : )
도움이 되셨다니 넘 기분 좋네요 ㅎㅎ
저야말로 사용해주셔서 다시한번 감사드립니다 ^^
좋은 정보 감사합니다.
좋게 봐주셔서 감사합니다. : )
이런 것도 있었군요! 재미있네요.
@arcange 라는 외쿡 분이 MS-SQL에 데이터를 옮겨 주시고, DB를 공개해 주셔서 이를 기반으로 한 조회들이 많이 일어나는 것 같아요~ ㅎㅎ
이국적 포스팅에 휘둥그레해봅니다,.ㅎㅎ 그런데 아마 분명 심도있는 내용일거라 믿어지네요. 트리님! 멋져~!^^
아하하;; 아닙니다. ㅎㅎ
저 DB에서 어떤 내용을 가져오느냐가 핵심일텐데, 아직은 겉핥기만 해봤어요. ^^
감사합니당~ : )
으아 다이어그램까지
뭔가 복잡해보이지만.. 저도 나중에 봐야지~ 하면서 넘긴게 많네요
정리해주셔서 감쟈감쟈!:)ㅎ
그쵸-?
좀 더 정확히 이해하려면 저 테이블들 정보를 하나씩 조회해 보면서 데이터가 어떻게 구성되어 있는지 좀 시간을 들여 살펴봐야 할 것 같아요. ㅎㅎ
저도 아직은 겉핥기 수준이라.. ^^;
ㅎㅎ 스팀db 검색해보다가 이 글이 딱 나왔네요 ㅎㅎ
쿼리박스는 처음 들어보는 유틸인데 설치해봐야겠네요~ 감사합니다^^
엇~ 근데 설치해보니, ID가 Disabled. 이게 그 segyepark님이 유료화되었다던 그 db인가 보군요 ㅠ
접근할 방법을 더 찾아봐야겠네요.이긍
네.. 이게 유료화 되어 이제 사용하기 좀 부담스러워졌네요. ㅠ_ㅠ
ㅎ네. 그래서 또 뭐 있나 찾아보다가 MongoDB라는게 있길래 설치를 해봤는데요.
제가 궁금한건 스팀잇 국가별 가입자수거든요?
근데 RDBMS체계라서 SQL언어기반도 아니라 불편하고 실시간 업데이트도 아닌데다가
국가 필드가 아마도 location 그런거일건데, accounts테이블에는 없고 user테이블은 뭔 에러인지 조회가 안되서..좋다 말은 상태에서 멈췄네요~
혹시 국가별 가입자수 확인할만한 곳이 있을까요?
현재 정확한 국가별 가입자 수는 확인하기가 좀 어려운 상태이긴 합니다.
말씀하신 location은 개인 계정의 설정(Settings) 메뉴에서 개인이 입력한 location일 거라서 저 같이 설정 안한 사람은 찾기가 힘들 거구요.
https://steemit.com/utopian-io/@ekonugraha/number-of-steem-user-accounts-by-country
2개월 전에 이런 방식으로 최근 가입자가 직접 입력한 location 정보로 검색해 본 사람이 있는데, 인도가 1등, 인도네시아가 2등, 베네수엘라가 3등이거든요.
사용자가 직접 입력해야 한다는 점에서 한계가 있는 방식이예요. ㅠ
다만 가입자 수는 아니지만 현재 트래픽이 발생하고 있는 방문자 수 정도까지는 Alexa 등을 이용하면 어느 정도 추정할 수 있을 것 같습니다.
오우 친절한 답글 정말 감사합니다 ㅎㅎ
역시 좀 어려운 거였군요. 아예 스팀계정을 구입하는 방법 포스팅도 있었고 해서 모두가 정식 가입을 하는 것은 아니겠지만 전화번호 검증을 하니까 거기서 국가별로 스크리닝이 되어 저장되어 있지 않을까 싶었었는데, 안되는 거였나봐요 ㅎㅎ블록체인은 다르군요.
알려주신 포스팅은 표본이 가입자의 10%도 안되고 임의설정이니까 사용은 어려울 듯 하지만 좋은 참고가 되었습니다~
일단 알렉사를 이용하는 방법으로 변칙적으로 구상을 해봐야겠네요 ㅋㅋ
정말 감사합니다.