1. facebook에서 쓴다는걸로 알고있음

  2. no single point of failure → master node가 없음

    1. 각각의 node가 같은 기능을 함
    2. BigTable / HBase와 데이터 구조는 유사함
    3. 관계형은 아닌데, 간단한 CQL query가 가능함
      1. query긴한데 non-relational query만 가능함
  3. Cassandra의 목적

    1. CAP → consistency availability, partition tolerance → 셋중에 두개만 가능함

      1. consistency → write할 때, 해당 값을 바로 받아올 수 있어야 함
        • eventual consistency → write 후에 해당 값을 바로 받아오지 못 할 수도 있음
        • 인스타 포스트 쓰면 바로 볼 수 없음
      2. availability → reliablility
      3. 분산에 용이함
    2. partition tolerance는 부장되어야 함 → 빅데이터

    3. availability가 consistency보다 중요함 → 페북 포스트

    4. tunable consistency → consistency ↔ availability 를 설정할 수 있다고 함

      Screen Shot 2022-07-03 at 5.06.07 PM.png

  4. HBase → zookeeper또는 HBase Master가 죽으면 끝나버림

    1. availability 가 상대적으로 떨어짐
    2. MySQL은 분산이 어려움
  5. Cassandra는 availability를 어떻게 유지하는가

    Screen Shot 2022-07-03 at 5.07.59 PM.png

  6. row에 빠르게 접근할 수 있음

    1. cassandra를 하나 복사해서 spark와 연동할 수도 있음

      Screen Shot 2022-07-03 at 5.11.52 PM.png

  7. CQL

    1. data가 de-normalize되어야만 함 → non-relational
    2. primary key 만 사용할 수 있음
      1. every table must have a primary key
      2. cassandra cluster에서 데이터를 찾기 위함
    3. CQLSH → 테이블 생성을 위한 CLI로 사용 가능
    4. 모든 테이블이 keyspace로 되어있어야 함
      1. table과 같은 개념인데 용어만 다름
  8. Spark와 같이 사용

    1. DataStax를 사용해서 Spark와 Cassandra를 연동할 수 있음 (무료)
    2. Cassandra table을 DataFrame처럼 사용할 수 있음
    3. Spark를 사용해서 데이터 분석 & transform 가능 → 6-a에서 설명한 내용