CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·일본산당 ·방탄소년당 ·MaClien ·자전거당 ·안드로메당 ·개발한당 ·이륜차당 ·소셜게임한당 ·AI당 ·나스당 ·가상화폐당 ·소시당 ·위스키당 ·젬워한당 ·오른당 ·노젓는당 ·PC튜닝한당 ·스팀한당 ·패스오브엑자일당 ·냐옹이당 ·바다건너당 ·육아당 ·와인마신당 ·골프당 ·클다방 ·디아블로당 ·야구당 ·IoT당 ·키보드당 ·찰칵찍당 ·달린당 ·리눅서당 ·날아간당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·사과시계당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·걸그룹당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·그림그린당 ·소풍간당 ·심는당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·파도탄당 ·퐁당퐁당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

아무거나질문

컴퓨터 대용량 json 처리방법이 궁금합니다. 10

2019-03-12 22:51:12 222.♡.23.187
Angmondd

안녕하세요.

json 처리관련하여 질문이 있어서 글을 남기게 되었습니다.

일단 저의 목표는 데이터베이스의 형식으로 json파일을 데이터화 하여

언제든지 원하는 형태로 검색이 가능하게 만드려는 것입니다.


그리하여 json 파싱을 통해 데이터를 처리한 후 쿼리를 날려 입력하려고 했지만,

객채가 나열된 형식이 아닌 

{"data":[{"stuff":[
    {"onetype":[
        {"id":1,"name":"John Doe"},
        {"id":2,"name":"Don Joeh"}
    ]},
    {"othertype":[
        {"id":2,"company":"ACME"}
    ]}]
},{"otherstuff":[
    {"thing":
        [[1,42],[2,2]]
    }]
}]}

이런 형식의 (사실 이것보다 훨씬 복잡합니다..) Nested JSON 파일입니다.

객체안에 객체가 형성된 형태에서는 어떤식으로 파싱을 해야하는지 의문이 들어서

같은 문제를 해결하신 분의 경험을 참고해보려고 합니다.


8기가의 json파일(약 320만개의 row값)이다보니 일반적인 방법으로는 읽지를 못합니다.

구글에 검색해보니 jackson, gson의 방법이 있는것으로 보여지나

stream parsing 을 무식하게 모든  object를 선언하여 받는 방법밖에 없는지 고민에 빠졌습니다.

의견주신다면 감사하겠습니다.


- 지금까지 시도해 본 것 -

* json to csv convert를 이용하여 csv자체를 DB에 업로드 해보려고 했지만 변환 용량한계로 포기.

* jackson, gson 라이브러리를 이용하여 파싱한 값을 쿼리날려 DB에 저장해보려고 했지만 너무 복잡한 json구조한계 포기

* json파일을 통째로 mysql 서버에 업로드 하는 방법. (리눅스 원격 서버를 처음 다뤄봐서 미숙하여 연구중)

Angmondd 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [10]
gourri
IP 119.♡.166.88
03-12 2019-03-12 23:12:55
·
pandas를 사용해서 dataframe으로 변경해 보시는 건 어떨까요?
https://stackoverflow.com/questions/21104592/json-to-pandas-dataframe
Angmondd
IP 147.♡.56.47
03-13 2019-03-13 10:14:10
·
pandas를 이용하여 dataframe으로 변경하는 방법이 정말 단순한 구조에서는 최고의 방법이라고 생각했는데
이와같이 nested json에서도 유용한지 시도해보겠습니다.
감사해요!
gourri
IP 14.♡.86.36
03-13 2019-03-13 10:53:21 / 수정일: 2019-03-13 11:00:53
·
@phopho_님 내용을 다시 보니.. 데이터 용량이 8gb라는게 가장 큰 문제네요. 어떻게 하셔도 어려워 보입니다. 말씀하신 jackson이나 gson은 잘 모르겠네요.
구글님께 여쭤보니.. 아래 링크에 몇가지 방법이 있습니다.
https://www.quora.com/How-do-I-read-a-big-JSON-file-with-Python
pandas와 ijson이 언급되어 있네요.
helloworld
IP 122.♡.163.230
03-13 2019-03-13 00:44:01
·
꼭 저렇게 하시는 이유가 있나요?
요즘 나오는 디비들은 json형태로 저장되고 뱉는 db도 꽤 있습니다. 그중에 퍼포먼스 좋은걸로 하나 골라 쓰시는건 어떤가요.
Angmondd
IP 147.♡.56.47
03-13 2019-03-13 10:13:11
·
json형태로 저장되는 대표적인 DB가 mysql과 mongoDB정도 있으려나요?
퍼포먼스를 고려하여 선택해보겠습니다. 감사드려요!
gourri
IP 14.♡.86.36
03-13 2019-03-13 10:51:38
·
@phopho_님 mongodb 괜찮을것 같네요^^
hmadoka
IP 110.♡.53.75
03-13 2019-03-13 09:39:58 / 수정일: 2019-03-13 09:45:10
·
8G면 로드자체가 안될텐데....

전체 로드말고 로딩하면서 파싱을 해주는 모듈을 이용해야겠네요.
Angmondd
IP 147.♡.56.47
03-13 2019-03-13 10:11:01
·
댓글 감사드립니다.
말씀해 주신것처럼 로딩하면서 파싱을 해주는 모듈이 jackson, gson으로 알고있습니다.
방법이 하나뿐인지 고민이 들어 질문 드렸습니다.
hmadoka
IP 110.♡.53.75
03-13 2019-03-13 15:31:03
·
오픈할수 있는 파일이라면 저 줘보세요. 코딩해서 돌려보게요
Angmondd
IP 147.♡.56.47
03-13 2019-03-13 16:10:21
·
[압축을 푸시면 json파일로 나옵니다]
https://storage.googleapis.com/open-targets-data-releases/19.02/output/19.02_association_data.json.gz
저는 일단 mongoDB에 dump해놓긴 했는데
코딩으로도 가능하시면 방법을 혹시 공유해주실 수 있나요?
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.