빅데이터/nosql 19

couchbase 따라하기(in mac)

카우치베이스는 도커 이미지를 활용하여 실행할 수 있습니다. 맥에서 도커 이미지를 사용하기 위해 podman을 설치하고 상용합니다. podman : https://podman.io/ Podman 16 Oct 2021 » Why can't I use sudo with rootless Podman? So why can’t I use sudo with rootless Podman? Matt Heon explains why and how you can safely work around the “need” if you have it in a recent blog post on the Red Hat Enable Sysadmin site, Why podman.io 1) podman 설치 $ brew install po..

빅데이터/nosql 2021.10.29
mongodb JSON 데이터 upsert 하기(with 자바 라이브러리)

mongodb 자바 라이브러리 정의(in gradle) dependencies { implementation "org.mongodb:mongo-java-driver:3.4.1" } mongoClient 선언 MongoClient mongoClient = new MongoClient("localhost", 27027); MongoCollection collection = database.getCollection(COLLECTION_NAME); upsert 수행 String findKey = "{\"name\":\"wonyoung\"}"; // 찾아야할 데이터 값 int count = 1; // 추가하는 데이터 BasicDBObject keyObject = BasicDBObject.parse(findKey)..

빅데이터/nosql 2021.05.25
kafka console consumer 여러 토픽 컨슘하기

kafka console consumer를 사용하다보면 --topic으로 토픽을 컨슈밍 하기도 하지만 여러 토픽 또는 정규식을 사용해서 확인해보고 싶을 때가 있다. 이 때 --whitelist를 사용하면 된다. Example) hello-topic과 hello.topic 토픽을 컨슈밍 하고 싶다면 $ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist 'hello-topic|hello.topic' Example2) 모든 토픽을 컨슈밍 하고 싶다면 $ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist '.*'

빅데이터/nosql 2021.02.25
pymongo - find결과로 나온 데이터의 ObjectId()를 string으로 변경하기

def getSpecificId(id): result = objectIdDecoder(list(collection.find({"_id": ObjectId(id)}))) return str(result) def objectIdDecoder(list): results=[] for document in list: document['_id'] = str(document['_id']) results.append(document) return results pymongo를 통해 collection을 find한 다음 받은 ObjectId는 유효한 json type이 아니다. 그러므로 json형태로 사용할 경우에는 ObjectId를 String으로 변환하는 작업을 해야합니다. 이때 ObjectIdDecoder가 Lis..

빅데이터/nosql 2020.05.13
mongodb shell에서 printjson을 사용하여 BSON을 text로 보기

mongodb shell에서 print()는 javascript의 method로서 사용가능하여 bson과 같은 데이터를 text로 표현하지 못한다. 그러므로 bson을 데이터로 보기 위해서는 mognodb에서 제공하는 printjson() method를 사용하면 된다. Example 1 > var dblist=["server01","server02"]; > dblist.forEach(function(e){ var serviceCollectionData = db.getSiblingDB(e).service.findOne(); print(serviceCollectionData); // print method 사용 }); [object BSON] [object BSON] 기본 print method를 사용하면 ..

빅데이터/nosql 2019.09.02
mongodb shell에서 array로 정의한 multi db 검색하기

이전 포스팅(mongoDB 개요 및 설명 한페이지에 끝내기)에서 언급한것 처럼 mongodb내에 js script를 적용할 수 있다. 이를 활용해서 여러 db의 값을 동시에 조회할 수 있다 요구사항 DB list : server01, server02, server03 Collection : service -> 각 DB의 service collection에 있는 데이터를 모두 조회하라 Code > var dblist=["server01","server02","server03"]; > dblist.forEach(function(e){ var serviceCollectionData = db.getSiblingDB(e).service.findOne(); printjson(serviceCollectionData)..

빅데이터/nosql 2019.09.02
mongodb shell에서 서로다른 database의 데이터 비교하기

이전 블로그포스팅에서 getSiblingDB라는 db object를 반환하는 method에 대해서 알아보았다. mongodb에서 db 이름 명시하여 데이터 조회하기 Mongodb를 사용하다보면 use [dbname]을 써서 데이터를 collection단위로 조회하는 경우도 있지만 db이름을 명시하여 데이터조회하고 싶을 때가 있다. 그때는 db.getSibligDB() method를 사용하면 된다. db.getSi.. blog.voidmainvoid.net 상기 method를 사용해서 서로 다른 database의 데이터를 비교하는 구문을 만들어보자 요구사항 - students database와 teacher database가 존재 - students에는 list라는 collection이 존재하고 stude..

빅데이터/nosql 2019.08.22
mongodb shell에서 db 이름 명시하여 데이터 조회하기

Mongodb를 사용하다보면 use [dbname]을 써서 데이터를 collection단위로 조회하는 경우도 있지만 db이름을 명시하여 데이터조회하고 싶을 때가 있다. 그때는 db.getSibligDB() method를 사용하면 된다. db.getSiblingDB() parameter - : 몽고db의 데이터베이스 이름 return - Database object Example getSiblingDB method를 사용해서 아래와 같이 database object를 가지고 유연한 database 조회 및 사용이 가능하다. teachers = db.getSiblingDB('teachers') // teachers db return students = db.getSiblingDB('students') // ..

빅데이터/nosql 2019.08.22
NoSQL강의) mongoDB에서 data 모델링하는 방법. 예제포함.

MongoDB 주요 특징 Secondary Index ▪ 다른 NOSQL 보다 secondary index 기능이 발달되어 있음 샤드키 지정 ▪ _id : 키 필드 ▪ Shard Key _id - 대부분의 NOSQL은 Row Key = Shard Key 임 Document 기반 ▪ JSON Style의 Document : BSON(Binary JSON) Modelling 주요 적용 모델링 기법 ▪ 비정규화(Denormalization) ▪ 집합(Aggregation) 기타 mongoDB에 대한 정보 → https://blog.voidmainvoid.net/239 NoSQL강의) mongoDB 개요 및 설명 한페이지에 끝내기(mapReduce, aggregate 예제 포함) Humongous DB ▪ Do..

빅데이터/nosql 2019.07.25
NoSQL강의) mongoDB 개요 및 설명 한페이지에 끝내기(mapReduce, aggregate 예제 포함)

Humongous DB ▪ Document DB : BSON(Binary JSON) ▪ Auto Sharding ▪ Replica Set ▪ Index : Geospatial(위치정보 처리 index), Hashed, Unique, Spars, Compound - Embedded Document, Array 필드도 인덱싱 가능 - 구체(Sphere) 모델 적용한 위치 데이터 인덱싱 지원 → 지구는 둥그니까.. - Full Text Search Index(한글 형태소 분석x), elasticsearch 사용을 권장 - Index를 사용한 TTL Collection ▪ Map/Reduce, Aggregation 기능 내장 - 대부분의 NOSQL은 자체 집계 기능을 제공하지 않음 ▪ GridFS : grid ..

빅데이터/nosql 2019.07.23
NoSQL강의) Document Database 개요 및 설명

Document Database란 Document를 저장하는 데이터베이스 ▪ XML, JSON, BSON - 계층적 트리 데이터 ▪ _id : PK, RowID - 사용자가 설정 가능 ▪ Embedded Document - 여러개의 테이블을 하나의 Document 내에 모아둘 수 있음 - 조회시 한번의 조회로 필요한 데이터 획득. Join 기능을 대체 대표 사례 ▪ Mongodb ▪ CoucbDB, CouchBase Hadoop, Spark와의 통합 지원 mongoDB기반 데이터를를 hive에서 집계, spark로 집계와 같은 기능. Document Database의 특징 Array와 Embedded Document을 잘활용하는 것이 핵심 - 컬럼 없음 → Schema 없음 - Document 내에 Fi..

빅데이터/nosql 2019.07.23
NoSQL강의) DynamoDB 개요, 특징 및 설명

Amazon DynamoDB 완전히 관리(Fully managed)되는 AWS 상의 NOSQL 데이터베이스. DynamoDB 장점 ▪ EC2 + DB Engine를 올리는 전통적인 방식이 아님. 사용량만 조절하면 자동으로 늘어나고 줄어든다. 사실상 DBA가 필요없는.. ▪ 대용량, 뛰어난 확장성, 신뢰성 ▪ 10ms 미만의 빠르고 일관된 성능 ▪ Key-Value Store(Hash 기반) ▪ 이벤트 기반의 프로그래밍 지원(with serverless function Lambda trigger) ▪ 용량제한 없는 Storage 테이블 구성 요소 Item하나 최대 크기 400kb Key는 2가지(partition key:필수 , sort key:선택). Data type ▪ Key-Value - Strin..

빅데이터/nosql 2019.07.23
NoSQL강의) HBase 개요, 특징, client 설명 + Apache Phoenix

HBase의 특징 Apache HBase – Apache HBase™ Home Welcome to Apache HBase™ Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions hbase.apache.org HBase 저장 아키텍처 ▪ HMaster : HRegionServer의 모니터링을 담당 ▪ HRegionServer : 데이터를 분산저장하는 ..

빅데이터/nosql 2019.07.23
NoSQL강의) Column Family Database 개요 및 설명

Column Family Database는 Row 단위 저장소 - Row Key : Row식별자. Row Key값순으로 자동 정렬됨. 검색시 사용되는 기본 키 - Column : 키-값 쌍. 하나의 Row에 수백만~수억개의 칼럼을 허용한다. 항상 Timestamp 값이 함께 저장됨. - Column의 값이 다시 여러개의 Column의 Map으로 구성되어 있으면 Column Family라고 부름. - Cassandra에서는 Super Column 이라는 용어를 씀. Cassandra HBase RDB keyspace 없음 Database column family table table row key row key PK(Primary Key) column name/key column name column na..

빅데이터/nosql 2019.07.22
NoSQL강의) Redis 개요, 기본사용법, command 설명 및 Jedis 예제

Redis Key/Value database, In memory database. Message Queue, Shared Memory Data store 용도로 사용. 다양한 데이터 타입(String, Set, List 등) 지원하며 셔버 shutdown/restart 될때를 대비하여 디스크 저장기능(RDB, AOF)을 가지고 있다. Scale out을 위한 application side sharding 지원하며 Master/Slave Replication을 지원. Instagram(수만개의 단순 Key-value pair저장), 네이버 라인, Blizzard 등에서 사용 사례가 있음. 데이터별 저장 구조 Redis 기본사용법 redis 서버 구동시 protected mode를 no로 하면 bind ip..

빅데이터/nosql 2019.07.22
NoSQL강의) Key-value Database 개요 및 설명

Key-value Database 개요 Key와 Value의 쌍으로 이루어진 저장소. Key가 이미 존재하는 경우 기존 값을 덮어쓴다. Value는 BLOB(Binary Large Object) 즉, 어떤 형식(type)이든 저장 가능. 특징 - 일관성 : Eventual Consistency - 트랜잭션 : 정족수 기반임. 정족수3이면 강한 consistency를 가짐 - 조회 : 키로만 조회 가능, 대부분 secondary index 지원하지 않음 - 데이터 구조 : BLOB, JSON, XML 무엇이든 저장 가능 - 확장성 : 대부분 샤딩을 이용한 확장. 샤드키 설정 중요. 샤드노드 + RF(Replication Factor) 조정 ☞ 일관성 vs 가용성 조절 사용하기 적합한 경우 ☞ 세션정보 저장..

빅데이터/nosql 2019.07.22
NoSQL강의) NoSQL 데이터 모델 종류 및 설명

NoSQL 데이터 모델 기존 RDBMS와는 다른 관점에서 바라봐야함. NOSQL 대부분은 ACID를 지원하지 않고 원자적 트랜잭션(Atomic Transaction)을 지원한다. 가능하다면 원자성이 필요한 범위를 하나의 집합 내로 한정하는 것이 바람직. 집합 지향적으로 모델링하게 되면 자연스럽게 데이터 중복이 발생한다. 데이터 중복을 허용함으로써, 애플리케이션에서의 쿼리 효율성에 집중하도록 설계해야함. Key-Value 모델 Key를 이용해 value에 접근하는 구조. 어떠한 형태(List, Set 등)의 데이터든 저장이 가능함. 각 DB별로 value의 최고 저장 size가 있으므로 이점을 유의. Key를 기반으로 정렬/비정렬 가능한점이 다름. Document 모델 집합 구조를 문서형태로 확인 가능. ..

빅데이터/nosql 2019.07.22
NoSQL강의) NoSQL 개요 및 기본이론

5가지 NoSQL에 대해 알아보자 - MongoDB - Redis - hBase - Cassandra - DynamoDB 등장배경 1) 대량의 데이터를 Read/Write 할 필요성 증가 2) 지속적으로 증가하는 사용자에 대한 신속한 증가 3) 빠르게 변화하는 비즈니스에 대한 신속한 대응 4) 비정형 데이터의 폭발적 증가 관계형 데이터베이스의 한계가 커짐. 데이터는 커져만 가는데, 관계형 데이터베이스로는 저장/관리 힘듦. scale out하기에 기존 RDB(Relational Data Base)는 많은 비용을 지불해야 함. NoSQL Not Only SQL은 비관계형 데이터 스토리지 시스템, 비정형 데이터베이스들을 통칭한다. 고정된 테이블 스키마와 조인개념을 사용하지 않도록 모델링한다. ACID(원자성,..

빅데이터/nosql 2019.07.22