SlideShare a Scribd company logo
1 of 20
Apache Cassandra
http://cassandra.apache.org/
План
1) Что такое Apache Cassandra
2) Типы данных
3) Как хранятся данные
4) Ключ
5) CQL
6) CQLSH
7) Создание индексов
8) Запись на диск
9) Конфиг файл
Что такое Кассандра
Касса́ндра (Cassandra, др.-греч.
Κασσάνδρα) — в древнегреческой
мифологии дочь последнего троянского
царя Приама и его второй супруги Гекубы.
Получила пророческий дар от
влюбившегося в неё Аполлона, однако за
то, что она, обманув, не ответила ему
взаимностью, он сделал так, что
предсказаниям Кассандры никто не верил.
Apache Cassandra
● NOSQL database
● Free, Open source
● Лицензия: Apache License 2.0
● Написана на Java в Facebook (2009)
● 4GB ram минимум (32GB рекоменд.)
● Разработа для хранения больших
объемов данных и для частой записи
● Предназначена:
○ Запись данных с устройств
○ Аналитика соц. медиа
Типы данных
● int
● bigint
● boolean
● float
● double
● text
● UUID
● timestamp
● blob
● Collections: list, set, map
Модель данных
Модель данных Cassandra состоит из:
1) Пространства ключей (keyspace)
2) Семейств столбцов (Column Family)
3) Ключ (row key)
4) Запись (row)
5) Колонка (column)
a) Имя (name)
b) Значение (value)
c) Временная метка
Ключ
Кассандра поддерживает композитные ключи.
● Partition key - первый ключ
● Clustering key - остальные ключи
Partition key - определяет где будет хранится запись
Clustering key - поля, по которым планируется делать поиск.
CQL
Что такое CQL - Cassandra query language.
Пример синтаксиса:
select * from user where id = ‘1000’’;
insert into user (id, name) values (‘1001’, ‘Sid’);
delete from user where id = ‘1001’;
CQL: Создание таблиц
Особенности запросов
Мы хотим взять данные в каком-то промежутке.
SELECT * FROM user WHERE balance > 5000 AND friends < 100
SELECT * FROM user WHERE balance > 5000 AND friends < 100 ALLOW FILTERING;
Создание индексов
Индекс - дополнительная таблица,
которая позволяет делать поиск по
необходимым полям.
Согласованность данных
Для каждого запроса, как на чтение, так и на запись, есть возможность задать уровень
согласованности данных.
Для записи этот уровень будет влиять на количество узлов-реплик, с которых будет ожидаться
подтверждение удачного окончания операции (данные записались) перед тем, как вернуть
пользователю управление.
ONE, TWO, THREE,
QUORUM, LOCAL_QUORUM, EACH_QUORUM,
ALL, ANY
Распределение данных
Разные стратегии распределения данных между узлами кластера.
1) Случайный разметчик (Random partitioner)
2) Порядковый разметчик (Byte-ordered partitioner)
CQLSH
Что такое CQLSH - командная оболочка для работы с Cassandra.
Ставится при установке Cassandra.
Запись на диск
TTL
CQL поддерживает Time to live записи.
То есть записи, которые будут хранится в базе указанное время.
Пример:
INSERT INTO myTable (id, myField) VALUES (2, 9) USING TTL 86400;
Config file
cassandra.yaml - файл конфигурации
Что прописывается в конфигах?
● Название кластера
● Порт
● Тип авторизации
● Путь к папке с данными
● Шифрование
● Стратегию распределения данных
● Размер memtable (⅓ java heap size)
Дополнительно
Кто использует: Apple, Cisco, Twitter, IBM, Reddit, and others.
Наибольший кластер: 400 машин, 300 TB данных
Cassandra
cqlsh> insert into end ( text ) values (‘Спасибо за внимание!’);

More Related Content

What's hot

Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFSOSLL
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?Alexey Tokar
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Ontico
 
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на CassandraЗа гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandraodnoklassniki.ru
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор BtrfsOSLL
 
Нереляционный SQL
Нереляционный SQLНереляционный SQL
Нереляционный SQLAndrei Nikolaenko
 
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?Tim Mironov
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephOSLL
 
Профилирование Node.js
Профилирование Node.jsПрофилирование Node.js
Профилирование Node.jsDenis Chistyakov
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Ontico
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDBGleb Lebedev
 

What's hot (20)

Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?MongoDB в продакшен - миф или реальность?
MongoDB в продакшен - миф или реальность?
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
Kubasov
KubasovKubasov
Kubasov
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
 
За гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на CassandraЗа гранью NoSQL: NewSQL на Cassandra
За гранью NoSQL: NewSQL на Cassandra
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Mysql vs postgresql
Mysql vs postgresqlMysql vs postgresql
Mysql vs postgresql
 
Нереляционный SQL
Нереляционный SQLНереляционный SQL
Нереляционный SQL
 
MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?MongoDB. Как готовить, с чем едят?
MongoDB. Как готовить, с чем едят?
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
Профилирование Node.js
Профилирование Node.jsПрофилирование Node.js
Профилирование Node.js
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 
DNSSEC
DNSSECDNSSEC
DNSSEC
 
Кратко о MongoDB
Кратко о MongoDBКратко о MongoDB
Кратко о MongoDB
 

Similar to Apache cassandra (rus)

PostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноPostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноVladislav Bezverhiy
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Ontico
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeARCCN
 
Cassandra:Курс молодого бойца
Cassandra:Курс молодого бойцаCassandra:Курс молодого бойца
Cassandra:Курс молодого бойцаIgor Khokhryakov
 
Максим Шапошников, Nutanix
Максим Шапошников, NutanixМаксим Шапошников, Nutanix
Максим Шапошников, NutanixOntico
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Andrey Akulov
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)OSLL
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Fwdays
 
масштабируемый Sphinx кластер. вячеслав крюков. зал 1
масштабируемый Sphinx кластер. вячеслав крюков. зал 1масштабируемый Sphinx кластер. вячеслав крюков. зал 1
масштабируемый Sphinx кластер. вячеслав крюков. зал 1rit2011
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comOntico
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреDEPO Computers
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBIurii Ogiienko
 
Язык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelЯзык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelMikhail Kurnosov
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем храненияphpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем храненияSlach
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 

Similar to Apache cassandra (rus) (20)

PostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. МолодёжноPostgreSQL. Стильно. Модно. Молодёжно
PostgreSQL. Стильно. Модно. Молодёжно
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Cassandra:Курс молодого бойца
Cassandra:Курс молодого бойцаCassandra:Курс молодого бойца
Cassandra:Курс молодого бойца
 
Максим Шапошников, Nutanix
Максим Шапошников, NutanixМаксим Шапошников, Nutanix
Максим Шапошников, Nutanix
 
Swarm @ web standard days
Swarm @ web standard daysSwarm @ web standard days
Swarm @ web standard days
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
масштабируемый Sphinx кластер. вячеслав крюков. зал 1
масштабируемый Sphinx кластер. вячеслав крюков. зал 1масштабируемый Sphinx кластер. вячеслав крюков. зал 1
масштабируемый Sphinx кластер. вячеслав крюков. зал 1
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Cassandra
CassandraCassandra
Cassandra
 
Язык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelЯзык параллельного программирования Cray Chapel
Язык параллельного программирования Cray Chapel
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем храненияphpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 

Apache cassandra (rus)

  • 2. План 1) Что такое Apache Cassandra 2) Типы данных 3) Как хранятся данные 4) Ключ 5) CQL 6) CQLSH 7) Создание индексов 8) Запись на диск 9) Конфиг файл
  • 3. Что такое Кассандра Касса́ндра (Cassandra, др.-греч. Κασσάνδρα) — в древнегреческой мифологии дочь последнего троянского царя Приама и его второй супруги Гекубы. Получила пророческий дар от влюбившегося в неё Аполлона, однако за то, что она, обманув, не ответила ему взаимностью, он сделал так, что предсказаниям Кассандры никто не верил.
  • 4. Apache Cassandra ● NOSQL database ● Free, Open source ● Лицензия: Apache License 2.0 ● Написана на Java в Facebook (2009) ● 4GB ram минимум (32GB рекоменд.) ● Разработа для хранения больших объемов данных и для частой записи ● Предназначена: ○ Запись данных с устройств ○ Аналитика соц. медиа
  • 5. Типы данных ● int ● bigint ● boolean ● float ● double ● text ● UUID ● timestamp ● blob ● Collections: list, set, map
  • 6. Модель данных Модель данных Cassandra состоит из: 1) Пространства ключей (keyspace) 2) Семейств столбцов (Column Family) 3) Ключ (row key) 4) Запись (row) 5) Колонка (column) a) Имя (name) b) Значение (value) c) Временная метка
  • 7. Ключ Кассандра поддерживает композитные ключи. ● Partition key - первый ключ ● Clustering key - остальные ключи Partition key - определяет где будет хранится запись Clustering key - поля, по которым планируется делать поиск.
  • 8. CQL Что такое CQL - Cassandra query language. Пример синтаксиса: select * from user where id = ‘1000’’; insert into user (id, name) values (‘1001’, ‘Sid’); delete from user where id = ‘1001’;
  • 10. Особенности запросов Мы хотим взять данные в каком-то промежутке. SELECT * FROM user WHERE balance > 5000 AND friends < 100 SELECT * FROM user WHERE balance > 5000 AND friends < 100 ALLOW FILTERING;
  • 11. Создание индексов Индекс - дополнительная таблица, которая позволяет делать поиск по необходимым полям.
  • 12. Согласованность данных Для каждого запроса, как на чтение, так и на запись, есть возможность задать уровень согласованности данных. Для записи этот уровень будет влиять на количество узлов-реплик, с которых будет ожидаться подтверждение удачного окончания операции (данные записались) перед тем, как вернуть пользователю управление. ONE, TWO, THREE, QUORUM, LOCAL_QUORUM, EACH_QUORUM, ALL, ANY
  • 13. Распределение данных Разные стратегии распределения данных между узлами кластера. 1) Случайный разметчик (Random partitioner) 2) Порядковый разметчик (Byte-ordered partitioner)
  • 14.
  • 15. CQLSH Что такое CQLSH - командная оболочка для работы с Cassandra. Ставится при установке Cassandra.
  • 17. TTL CQL поддерживает Time to live записи. То есть записи, которые будут хранится в базе указанное время. Пример: INSERT INTO myTable (id, myField) VALUES (2, 9) USING TTL 86400;
  • 18. Config file cassandra.yaml - файл конфигурации Что прописывается в конфигах? ● Название кластера ● Порт ● Тип авторизации ● Путь к папке с данными ● Шифрование ● Стратегию распределения данных ● Размер memtable (⅓ java heap size)
  • 19. Дополнительно Кто использует: Apple, Cisco, Twitter, IBM, Reddit, and others. Наибольший кластер: 400 машин, 300 TB данных
  • 20. Cassandra cqlsh> insert into end ( text ) values (‘Спасибо за внимание!’);