JSON 데이터를 DB에 넣고 사용하고 싶다
Transcript of JSON 데이터를 DB에 넣고 사용하고 싶다
Json data를 MySQL 에서 By 윤은경
1. JSON 이란? - 정의
• JavaScript Object Notation
• 경량의 DATA 교환 형식
• 읽고 쓰기에 편한 데이터 포맷 방식
• 언어에 독립적인 데이터 포맷으로 여러 언어에서 사용이 가능
• 언어와 플랫폼에 독립적 => 다른 시스템 간 객체 교환에 용이
• Application의 통신에 쓰이는 데이터 포맷
1. JSON이란? - 데이터 구조
• 기본 자료형
– 수, 문자열, 참/거짓, null
• 복합 자료형
– 객체 : name/value 형태의 비순서화된 Set => 쌍으로 구성된 collection 타입
– 배열: 값들의 순서화된 리스트 ( ex> array, vector, list, sequence 역할로 사용가능)
1. JSON이란? - 데이터 특징
• value는 기본자료형, 복합자료형 모두 가능하다.
• 객체의 value로 Array나 Object도 가능하다.
• 무한대로 깊이를 가져갈 수 있다.
• 정형화된 규격이 없다.
RDBMS에서 테이블로 데이터를 표현하기 어렵다.
2. Json을 지원하는 MySQL
• Oracle MySQL Ver. 5.7
– data type으로 지원
• MariaDB
– CONNECT Storage Engine 사용하여 지원 (Ver. 10.0.16)
– Dynamic Columns 를 사용하여 지원
• MySQL for facebook
3. MySQL
• Ver. 5.7.8 부터 사용가능
• 데이터 타입 중 하나로 제공함. 데이터 타입명은 JSON
• 쿼리 안에서 함수를 사용하여 입력,삭제,수정 모두 가능
• 함수를 이용하여 타입 변화, 비교, 정렬 가능
• Spatial GeoJSON 함수도 제공
• 인덱스 추가도 가능함. => General Columns의 가상 컬럼 + 함수 인덱스
• 해당 인덱스를 사용하는 실행계획도 확인이 가능하다.
• 아직 GA 버전이 아님.
4. MariaDB – CONNECT Storage Engine
• MariaDB Ver. 10.0.16부터 사용가능
• Json 타입의 정보를 가진 파일과 연동하여 테이블을 생성하여 사용하는 방법
• 파일의 내용을 어떻게 테이블로 구현하는지는 다양하게 설정하여 구성 가능
• Json Array 타입에는 제약 사항이 있다.
• DB단에서 입력,삭제,수정 가능.
• 여러가지 함수들 제공(총 8가지)
• 일반 데이터 타입과 같이 사용은 불가능
4. MariaDB – Dynamic Columns
• MariaDB Ver. 5.5 에서 부터 지원
• BLOB을 이용하여 NO_SQL 데이터를 처리할 수 있게 해주는 기능
• 데이터 입력, 수정, 삭제를 위한 함수 제공
• MariaDB Ver. 5.5와 Ver.10.0.x와 사용하는 방식이 다르다.
• 가상 컬럼을 사용하여 인덱스를 생성할 수 있다.
5. MySQL For Facebook
• DOCUMENT 데이터 타입으로 사용가능
• 내부적으로 BLOB을 생성하여 데이터를 저장
• Document Path를 이용하여 데이터 접근이 가능함. (바로 사용 가능)
• FBSON Parser를 이용하여 내부적으로 관리함.
• JSON 타입에 인덱스 생성이 가능함.
• 소스를 컴파일 해야 만 사용이 가능함.
• 실행계획 확인이 가능하다.
• 힌트도 줄 수 있다.
6. 그러면 나의 선택은?
현재 버젼
사용편이성
개발 여건 로드맵
지원 상황
고맙습니다.