2023.01.25 Open API활용 데이터 수집

차유빈·2023년 1월 25일
0
post-thumbnail

공공데이터 포탈 (서울 버스 노선 정보 및 위치 찾기)

1. 버스 노선 정보 얻기

2. 운행중 버스 정보 얻기


출입국 관광 통계서비스 (국가별 출입국 정보 통계)

url뒤에 요청변수(Request Parameter) 추가


MongoDB (데이터 저장)

NoSQL 개요

  • NoSQL 데이터베이스는 전통적인 관계형 데이터베이스보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공
  • No SQL(X), Not Only SQL(O)
  • 트랜잭션 : 계좌이체와 같이 한번에 일어나는 일. 관계형 데이터베이스 시스템의 주요 특성을 보장하는 ACID 제공을 주로 시도 하지않은 수 많은 비관계형,분산 데이터 자료 공간의 등장에 따라 NoSQL이라는 명칭 사용
    • ACID: 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)

NoSQL 특징

  1. RDBMS와 달리 데이터 간의 관계를 정의하지 않는다.
    • RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN 연산을 수행할 수 있지만, NoSQL은 JOIN 연산이 불가능하다.
  2. RDBMS에 비해 대용량의 데이터를 저장할 수 있다.
    • 페타바이트 급의 대용량 데이터를 저장할 수 있다.
  3. 분산형 구조이다.
    • 여러 곳의 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 한다.
  4. 고정되지 않은 테이블 스키마를 갖는다.
    • RDBMS와 달리 테이블의 스키마가 유동적이다. 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.

NoSQL의 장점

  1. 클라우드 컴퓨팅 환경에 적합
    1) Open Source
    2) 하드웨어 확장에 유연한 대처 가능
    3) RDBMS에 비해 저렴한 비용으로 분산 처리와 병렬처리 가능
  2. 유연한 데이터 모델
    1) 비정형 데이터 구조 설계로 설계 비용감소
    2) 관계형 데이터베이스의 Relationship과 Join 구조를 Linking과 Embedded로 구현하여 성능이 빠름
  3. Big Data 처리에 효과적
    1) Memory Mapping 기능을 통해 Read/Write가 빠름.
    2) 전형적인 OS와 Hardware에 구축 가능.
    3) 기존 RDB와 동일하게 데이터 처리 가능

NoSQL의 단점

  • 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
  • 많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
  • 데이터 일관성이 항상 보장되지 않음

NoSQL의 종류

1. Key-Value Database

• 기본적인 패턴으로 KEY-VALUE 하나의 묶음(Unique)으로 저장되는 구조로
단순한 구조이기에 속도가 빠르며 분산 저장 시 용이하다.
• Key 안에 (COLUMN, VALUE) 형태로 된 여러 개의 필드, 즉 COLUMN
FAMILIES 갖는다.
• 주로 SERVER CONFIG, SESSION CLUSTERING등에 사용되고 엑세스
속도는 빠르지만, SCAN에는 용이하지 않다.
• Ex) Redis, Oracle NoSQL Database, VoldeMorte

2. Wide-Column Database

• 행마다 키와 값을 저장할 때 각각 다른 값의 다른 수의 스키마를 가질 수 있다.
• 사용자의 이름(key)에 해당하는 값에 스키마들이 각각 다름을 볼 수 있다.
• 이러한 구조를 갖는 WIDE COLUMN DATABASE는 대량의 데이터의 압축,
분산처리, 집계 쿼리 (SUM, COUNT, AVG 등)및 쿼리 동작 속도 그리고
확장성이 뛰어난 것이 그 대표적 특징이라 할 수 있다.
• EX) Hbase, GoogleBigTable, Vertica

3. Document Database

•테이블의 스키마가 유동적, 즉 레코드마다 각각 다른 스키마를 가질 수 있다.
• 보통 XML, JSON과 같은 DOCUMENT를 이용해 레코드를 저장한다.
• 트리형 구조로 레코드를 저장하거나 검색하는 데 효과적이다.
• Ex) MongoDB, CouchDB, Azure Cosmos DB

4. Graph Database

•데이터를 노드로(그림에서 파란, 녹색 원) 표현하며 노드 사이의 관계를 엣지(그림에서 화살표)로 표현
• 일반적으로 RDBMS 보다 성능이 좋고 유연하며 유지보수에 용이한 것이 특징.
• Social networks, Network diagrams 등에 사용할 수 있다.
• Ex) Neo4j, BlazeGraph, OrientDB


NoSQL과 CAP 이론

분산 컴퓨팅 환경은 일관성(Consistency), 가용성(Availability), 분산 가용성(Partitioning) 세 가지 특징을 가지고 있으며, 이중 두 가지만 만족할 수 있다는 이론이다.


MongoDB

  • Humongos라는 회사의 제품명이 였으며 10gen으로 회사명이 변경 -> 현재 Mongodb.inc로 변경
  • JSON Type의 데이터 저장 구조를 제공
  • Sharding(분산)/Replica(복제) 기능을 제공.
  • MapReduce(분산/병렬처리) 기능을 제공.
  • CRUD(Create, Read, Update, Delete)위주의 다중 트랜잭션처리도 가능
  • Memory Mapping기술을기반으로 Big Data 처리에 탁월한 성능을 제공

MongoDB 설치

환경변수 설정

Path 연결 : 고급시스템 설정보기-> 환경변수 ->path 추가

새 cmd창 열어서 mongo 적어야함


MongoDB 환경 구축

MongoDB 데이터

profile
chacha's 프로그래밍 공부

0개의 댓글