분류 전체보기 306

[Cassandra][datastax]Application Workflow and Access Patterns

Application Workflow 비즈니스 프로세스와 관련된 작업을 자동화하는 것을 의미한다. 각각의 어플리케이션은 작업흐름(workflow)을 가진다. Task와 의존성은 그래프를 형성된다. 액세스 패턴은 어떻게 데이터를 정의하는 것을 돕는다. 어떤 쿼리가 빠르게 동작할지 알게 해준다. 예시 Tasks : Show videos that were uploaded by a particular user. Add access pattern Q5 Add access pattern Q6 ~ Q11 참고사이트 https://academy.datastax.com/paths https://kissflow.com/workflow/workflow-application/

Database/Cassandra 2020.05.25

[Cassandra][datastax] Hierarchy

데이터 설계시 필수 개념인 상속성(Hierarchy)에 대해서 알아보자. Entity Type Hierarchy ISA(is-a) Hierarchies라는 뜻은 만약 A ISA B라고 한다면, 모든 A entity는 B entity로서 간주됨을 의미한다. 상위클래스(Superclass)-하위클래스(Subclass)의 관계로 말할 수 있다. ex ) Employees ISA Constract_Employees, Video ISA Full Video Superclass(A)의 속성들을 subclass(B)에게 적용시키기(물려주기)위해 사용한다. Relationship에서 entity를 identity하기 위해 사용한다. Transitivity Transitivity의 원어적 의미는 전이종속성이다. 동일한 테..

Database/Cassandra 2020.05.25

[Cassandra][datastax] Relationship Keys

Relationship Keys는 엔티티간의 관계를 나타내주는 의미를 한다. One-to-One key 엔티티의 키를 1:1로 매칭으로 사용할 수 있다. One-to-Many key 엔티티의 키를 1:n으로 매칭으로 사용할 수 있다. Many-to-Many Key 엔티티의 키를 m:n으로 매칭으로 사용할 수 있다. Attribute Key Participation Attribute를 유니하게 구별해줄 키 값이다. 예를 들어 사용자의 Attribute에서는 id가 될 수 있다. 참고 사이트 https://academy.datastax.com/paths

Database/Cassandra 2020.05.25

[Cassandra][datastax] Conceptual Data Modeling, Entity-Relationship (ER) Model

강의에서는 카산드라 모델링 과정을 아래와 같이 가이드 하고 있다. 그중 Conceptual Data Model을 먼저 작성해보자. 데이터 모델링의 개념적 접근을 위해 Entity-Relationship (ER) Model 개념을 선행한다. Entity-Relationship (ER) Model은 데이터베이스를 디자인하기 위해 이용되는 모델링 기법으로 데이터베이스 요구 사항을 그래픽 적으로 표현하는 방법이다. ER 모델에서는 데이터 베이스에 저장되는 데이터를 추상화하여 나타내기 때문에 특정 DBMS 및 하드웨어에 독립적으로 데이터베이스의 구조를 나타낼 수 있다. Entity-Relationship (ER) Model은 Entity Types - Relationship Type - Attribute Type..

Database/Cassandra 2020.05.25

[kafka] consumer producer key value 확인

카프카는 토픽을 기본으로 파티셔닝을 한다. 하지만 하나의 파티션 안에서 또다른 기준 값이 필요하다면 key를 따로설정해줄수 있다. key 에대한 설정은 기본이 null값이기 때문에, 따로 지정하지 않으면 null로 들어감을 확인할 수 있다. 아래 옵션을 컨슈머, 프로듀서의 콘솔창 실행 옵션에 추가하여 key, value를 확인해 보자. key, value 설정 옵션 parsing.key : key와 value 파싱 활성화 여부 key.separator : key와 value 파싱 구분자 print.key : console 창 출력 여부 컨슈머, 프로듀서의 콘솔창 실행 옵션에 추가 1) producer PS C:\kafka\kafka_2.12-2.5.0\bin\windows> .\kafka-console-..

Programming/Kafka 2020.05.25

[Youtube][이팩티브 자바] #8 Finalizer와 Cleaner 쓰지 마세요

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 8: Finalizer와 Cleaner는 피하라 Finalizer는 예측 불가능하고, 위험하며 대부분 불필요하다. 그걸 쓰면 이상하게 동작하기도 하고, 성능도 안좋아지고, 이식성에는 문제가 생길 수 있다. Finalizer를 유용하게 쓸 수 있는 경우는 극히 드물다. public class FinalizerExample { @Override protected final void finalize() throws Throwable { System.out.println("Clean up"); } public void hello() { System.out.println("hi"); } } pu..

Programming/Java 2020.05.25

[Youtube][이팩티브 자바] #7 불필요한 객체 레퍼런스를 정리하자

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 7 : 더이상 쓰지 않는 개체 레퍼런스는 없애자 메모리 직접 관리 자바에 GC(가비지 콜렉터)가 있기 때문에 메모리 관리에 대해 신경쓰지 않아도 될거라고 생각하기 쉽지만, 그렇지 않다. 다음 코드를 살펴보자. // Can you spot the "memory leak"? public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { // 초기화 할때 16만큼 만든다. this.elements = ..

Programming/Java 2020.05.24

[kafka] Multi-broker cluster 설치 및 실행

이전에 카프카 공식홈페이지의 Quick Start 가이드를 참고하여 하나의 주키퍼에 하나의 카프카를 연동하여 실행시키는 것은 진행해 보았다. 이번 글에서는 하나의 주키퍼에 멀티 카프카를 연동하는 방법에 대해서 알아보자. 윈도우 환경에서 Powershell이나 cmd 창에서 kafka_2.12-2.5.0\bin\windows 경로에서 명령어를 실행한다. 리눅스 환경이라면 terminal 창에서 kafka_2.12-2.5.0\bin 경로에서 명렁어를 실행한다. 필자는 윈도우 환경이므로, 윈도우 기반으로 설명을 진행하겠다. 1. 주키퍼 실행 주키퍼의 환경설정은 ..\..\..\config\zookeeper.properties 파일을 참고하면 된다. 만약 멀티 노드 환경의 주키퍼를 실행한다면, 해당파일의 수정이..

Programming/Kafka 2020.05.23

[Cassandra] Import, Export csv file using CQL COPY command

카산드라에서는 Insert로 데이터를 넣는 방법 외에 csv 파일로 데이터를 한꺼번에 넣을수 있는 기능과 카산드라의 데이터를 csv 파일로 저장하는 기능을 지원한다. 이런 기능은 cql창에서 COPY 명령어를 사용하면 가능하다. # Import : Csv File -> Cassandra COPY table_name [( column_list )] FROM 'file_name'[, 'file2_name', ...] | STDIN [WITH option = 'value' [AND ...]] # Export : Cassandra -> Csv File COPY table_name [( column_list )] TO 'file_name'[, 'file2_name', ...] | STDOUT [WITH optio..

Database/Cassandra 2020.05.23

[Youtube][이팩티브 자바] #6 불필요한 객체를 만들지 말자

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 6 : 불필요한 객체를 만들지 말자. 기능적으로 동일한 객체를 새로 만드는 대신 객체 하나를 재사용하는 것이 대부분 적절하다. 재사용하면 더 빠르고 있어보인다(new라는 코드를 안써서..?). 불변객체는 항상 재사용할 수 있다. 문자열 객체 생성 자바의 문자열 String을 new로 생상하면 항상 새로운 객체를 만들게 된다. 다음가 같이 String 객체를 생성하는 것이 올바르다. public class StringTest { public static void main(String[] args) { String s1 = new String("log"); String s2 = "log";..

Programming/Java 2020.05.23