JSON 데이터를 DB에 넣고 사용하고 싶다

11
Json dataMySQL 에서 By 윤은경

Transcript of JSON 데이터를 DB에 넣고 사용하고 싶다

Page 1: JSON 데이터를 DB에 넣고 사용하고 싶다

Json data를 MySQL 에서 By 윤은경

Page 2: JSON 데이터를 DB에 넣고 사용하고 싶다

1. JSON 이란? - 정의

• JavaScript Object Notation

• 경량의 DATA 교환 형식

• 읽고 쓰기에 편한 데이터 포맷 방식

• 언어에 독립적인 데이터 포맷으로 여러 언어에서 사용이 가능

• 언어와 플랫폼에 독립적 => 다른 시스템 간 객체 교환에 용이

• Application의 통신에 쓰이는 데이터 포맷

Page 3: JSON 데이터를 DB에 넣고 사용하고 싶다

1. JSON이란? - 데이터 구조

• 기본 자료형

– 수, 문자열, 참/거짓, null

• 복합 자료형

– 객체 : name/value 형태의 비순서화된 Set => 쌍으로 구성된 collection 타입

– 배열: 값들의 순서화된 리스트 ( ex> array, vector, list, sequence 역할로 사용가능)

Page 4: JSON 데이터를 DB에 넣고 사용하고 싶다

1. JSON이란? - 데이터 특징

• value는 기본자료형, 복합자료형 모두 가능하다.

• 객체의 value로 Array나 Object도 가능하다.

• 무한대로 깊이를 가져갈 수 있다.

• 정형화된 규격이 없다.

RDBMS에서 테이블로 데이터를 표현하기 어렵다.

Page 5: JSON 데이터를 DB에 넣고 사용하고 싶다

2. Json을 지원하는 MySQL

• Oracle MySQL Ver. 5.7

– data type으로 지원

• MariaDB

– CONNECT Storage Engine 사용하여 지원 (Ver. 10.0.16)

– Dynamic Columns 를 사용하여 지원

• MySQL for facebook

Page 6: JSON 데이터를 DB에 넣고 사용하고 싶다

3. MySQL

• Ver. 5.7.8 부터 사용가능

• 데이터 타입 중 하나로 제공함. 데이터 타입명은 JSON

• 쿼리 안에서 함수를 사용하여 입력,삭제,수정 모두 가능

• 함수를 이용하여 타입 변화, 비교, 정렬 가능

• Spatial GeoJSON 함수도 제공

• 인덱스 추가도 가능함. => General Columns의 가상 컬럼 + 함수 인덱스

• 해당 인덱스를 사용하는 실행계획도 확인이 가능하다.

• 아직 GA 버전이 아님.

Page 7: JSON 데이터를 DB에 넣고 사용하고 싶다

4. MariaDB – CONNECT Storage Engine

• MariaDB Ver. 10.0.16부터 사용가능

• Json 타입의 정보를 가진 파일과 연동하여 테이블을 생성하여 사용하는 방법

• 파일의 내용을 어떻게 테이블로 구현하는지는 다양하게 설정하여 구성 가능

• Json Array 타입에는 제약 사항이 있다.

• DB단에서 입력,삭제,수정 가능.

• 여러가지 함수들 제공(총 8가지)

• 일반 데이터 타입과 같이 사용은 불가능

Page 8: JSON 데이터를 DB에 넣고 사용하고 싶다

4. MariaDB – Dynamic Columns

• MariaDB Ver. 5.5 에서 부터 지원

• BLOB을 이용하여 NO_SQL 데이터를 처리할 수 있게 해주는 기능

• 데이터 입력, 수정, 삭제를 위한 함수 제공

• MariaDB Ver. 5.5와 Ver.10.0.x와 사용하는 방식이 다르다.

• 가상 컬럼을 사용하여 인덱스를 생성할 수 있다.

Page 9: JSON 데이터를 DB에 넣고 사용하고 싶다

5. MySQL For Facebook

• DOCUMENT 데이터 타입으로 사용가능

• 내부적으로 BLOB을 생성하여 데이터를 저장

• Document Path를 이용하여 데이터 접근이 가능함. (바로 사용 가능)

• FBSON Parser를 이용하여 내부적으로 관리함.

• JSON 타입에 인덱스 생성이 가능함.

• 소스를 컴파일 해야 만 사용이 가능함.

• 실행계획 확인이 가능하다.

• 힌트도 줄 수 있다.

Page 10: JSON 데이터를 DB에 넣고 사용하고 싶다

6. 그러면 나의 선택은?

현재 버젼

사용편이성

개발 여건 로드맵

지원 상황

Page 11: JSON 데이터를 DB에 넣고 사용하고 싶다

고맙습니다.