SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
#SECONRU
Колоночные структуры
данных на примере
Parquet
Блохин Леонид
BigDataEngineer at Provectus
21-22 АПРЕЛЯ | ПЕНЗА
Содержание доклада:
● Отличия строковых и колоночных баз данных.
○ особенности
○ области применения
○ преимущества и недостатки
● Apache Parquet,
○ области применения,
○ преимущества и недостатки.
● Apache Spark,
○ области применения, отличительные особенности,
○ приемущества и недостатки, работа с parquet файлами в Hadoop File System.
● RDD, DataFrames, и Datasets в Apache Spark,
○ зачем они нужны,
○ как ими пользоваться,
○ какие профиты.
● Mist, используем Spark, как сервис
Отличия колоночных БД от строковых
Области применения колоночных БД
● Событийные таблицы, над которыми выполняются сложные выборки
(агрегации, фильтры, сортировки). Например, добавление товаров в
корзину в Интернет магазине. Метрики рекламы, нагрузок ...
● Агрегатные таблицы с большим количеством данных для аналитических
выборок. Это часто таблицы, которые строятся из событийных таблицы.
Это может быть таблицы со статистикой добавления товаров в корзину
по дням, категориям, ценам и другим параметрам.
Преимущества
Колоночные базы данных позволяют эффективно делать сложные выборки
на больших таблицах.
Изменение структуры больших таблиц происходит мгновенно.
Сжатие данных позволяет сэкономить место
Недостатки
Медленно работают на запись
Не поддерживают транзакции
Имеют ряд ограничений для разработчика (sql синтаксис не полный)
Обычные выборки по ключу всех столбцов без профита
Hadoop Distributed File System,
hbase,
S3,
cassandra,
gfs,
ceph ...
CSV, JSON,
XML
Sequence
file
Avro Parquet ORC
Строко
ориентированный
формат
Бинарный с
компрессией и
сериализацией
Колоночно
ориентированный
формат
Смешанный
строко и
колоночно
ориентированный
Колоночный формат, Работает в HDFS
Поддерживает сжатие(snappy, gzip, lzo, brotli)
Метадата кодируется Apache Thrift
Поддерживает вложенные данные
The striping and assembly algorithms from the Dremel paper
Файлы имеют несколько уровней разбиения на части,
благодаря чему возможно довольно эффективное
параллельное выполнение операций поверх них:
Row-group — это разбиение, позволяющее
параллельно работать с данными на уровне
Map-Reduce
Column chunk — разбиение на уровне колонок,
позволяющее распределять IO операции
Page — Разбиение колонок на страницы, позволяющее
распределять работу по кодированию и сжатию
типы
● BOOLEAN: 1 bit boolean
● INT32: 32 bit signed ints
● INT64: 64 bit signed ints
● INT96: 96 bit signed ints
● FLOAT: IEEE 32-bit floating point values
● DOUBLE: IEEE 64-bit floating point values
● BYTE_ARRAY: arbitrarily long byte arrays.
Достоинства Parquet
● Эффективное хранение
● Высокая скорость сложных выборок, если не нужны
все колонки сразу
● Быстрая работа на чтение, по сравнению с
использованием других файловых форматов
● HDFS, NFS, GlusterFS
Недостатки parquet
● parquet ведёт себя как неизменяемая таблица или БД
● Для колонок определён тип, нельзя комбинировать
сложный тип данных с простым.
● Не поддерживаются транзакции
val peopleDF = spark.read.json("examples/src/main/resources/people.json")
peopleDF.write.parquet("people.parquet")
val parquetFileDF = spark.read.parquet("people.parquet")
parquetFileDF.createOrReplaceTempView("parquetFile")
val namesDF = spark.sql("SELECT name FROM parquetFile WHERE age BETWEEN 13 AND 19")
namesDF.map(attributes => "Name: " + attributes(0)).show()
+----------------+
| value |
+----------------+
|Name: Justin|
+----------------+
Resilient Distributed Dataset
Распределенный набор данных, который знает как себя вычислить.
RDD может быть лениво вычисляемой при запросе
может быть и материализована — распределенно, в памяти или на диске
(или в памяти с вытеснением на диск)
разбита на партиции — это минимальный объем RDD, который будет
обработан каждым рабочим узлом.
Блохин Леонид
BigDataEngineer at Provectus
Blokhin@provectus.com
8 917 295-40-49

Mais conteúdo relacionado

Semelhante a SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet

Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийFuenteovejuna
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСYury Petrov
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogAndrew Panfilov
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest
 
Hadoop > cascading -> cascalog (short version)
Hadoop  > cascading -> cascalog (short version)Hadoop  > cascading -> cascalog (short version)
Hadoop > cascading -> cascalog (short version)Andrew Panfilov
 
Anton Shloma. Custom tables
Anton Shloma. Custom tablesAnton Shloma. Custom tables
Anton Shloma. Custom tablesi20 Group
 
Anton Shloma. Custom tables
Anton Shloma. Custom tablesAnton Shloma. Custom tables
Anton Shloma. Custom tablesDrupalSib
 
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...DataConf
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиFProg
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetOntico
 
django-and-postgresql
django-and-postgresqldjango-and-postgresql
django-and-postgresqlOleg Churkin
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Alexey Rusnak
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинIT61
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)Alexey Kovyazin
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреDEPO Computers
 
Death And Resurrection Of Yandex Statistics Pavel Aleshin
Death And Resurrection Of Yandex Statistics Pavel AleshinDeath And Resurrection Of Yandex Statistics Pavel Aleshin
Death And Resurrection Of Yandex Statistics Pavel AleshinDigital Zone
 

Semelhante a SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet (20)

Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> Cascalog
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
 
Hadoop > cascading -> cascalog (short version)
Hadoop  > cascading -> cascalog (short version)Hadoop  > cascading -> cascalog (short version)
Hadoop > cascading -> cascalog (short version)
 
Anton Shloma. Custom tables
Anton Shloma. Custom tablesAnton Shloma. Custom tables
Anton Shloma. Custom tables
 
Anton Shloma. Custom tables
Anton Shloma. Custom tablesAnton Shloma. Custom tables
Anton Shloma. Custom tables
 
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...
Anastasiya Kaminskaya "How to optimize Tabular model in PowerPivot or in Anal...
 
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
 
Purely practical data structures
Purely practical data structuresPurely practical data structures
Purely practical data structures
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
django-and-postgresql
django-and-postgresqldjango-and-postgresql
django-and-postgresql
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
 
Death And Resurrection Of Yandex Statistics Pavel Aleshin
Death And Resurrection Of Yandex Statistics Pavel AleshinDeath And Resurrection Of Yandex Statistics Pavel Aleshin
Death And Resurrection Of Yandex Statistics Pavel Aleshin
 

Mais de SECON

SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем? SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?SECON
 
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON
 
SECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON
 
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON
 
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON
 
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON
 
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON
 
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON
 
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON
 

Mais de SECON (20)

SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем? SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
 
SECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в production
 
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
 
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
 
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
 
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
 
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
 
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
 

SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet

  • 1. #SECONRU Колоночные структуры данных на примере Parquet Блохин Леонид BigDataEngineer at Provectus 21-22 АПРЕЛЯ | ПЕНЗА
  • 2.
  • 3. Содержание доклада: ● Отличия строковых и колоночных баз данных. ○ особенности ○ области применения ○ преимущества и недостатки ● Apache Parquet, ○ области применения, ○ преимущества и недостатки. ● Apache Spark, ○ области применения, отличительные особенности, ○ приемущества и недостатки, работа с parquet файлами в Hadoop File System. ● RDD, DataFrames, и Datasets в Apache Spark, ○ зачем они нужны, ○ как ими пользоваться, ○ какие профиты. ● Mist, используем Spark, как сервис
  • 4.
  • 6. Области применения колоночных БД ● Событийные таблицы, над которыми выполняются сложные выборки (агрегации, фильтры, сортировки). Например, добавление товаров в корзину в Интернет магазине. Метрики рекламы, нагрузок ... ● Агрегатные таблицы с большим количеством данных для аналитических выборок. Это часто таблицы, которые строятся из событийных таблицы. Это может быть таблицы со статистикой добавления товаров в корзину по дням, категориям, ценам и другим параметрам.
  • 7. Преимущества Колоночные базы данных позволяют эффективно делать сложные выборки на больших таблицах. Изменение структуры больших таблиц происходит мгновенно. Сжатие данных позволяет сэкономить место
  • 8. Недостатки Медленно работают на запись Не поддерживают транзакции Имеют ряд ограничений для разработчика (sql синтаксис не полный) Обычные выборки по ключу всех столбцов без профита
  • 9.
  • 10. Hadoop Distributed File System, hbase, S3, cassandra, gfs, ceph ...
  • 11.
  • 12. CSV, JSON, XML Sequence file Avro Parquet ORC Строко ориентированный формат Бинарный с компрессией и сериализацией Колоночно ориентированный формат Смешанный строко и колоночно ориентированный
  • 13.
  • 14. Колоночный формат, Работает в HDFS Поддерживает сжатие(snappy, gzip, lzo, brotli) Метадата кодируется Apache Thrift Поддерживает вложенные данные The striping and assembly algorithms from the Dremel paper
  • 15. Файлы имеют несколько уровней разбиения на части, благодаря чему возможно довольно эффективное параллельное выполнение операций поверх них: Row-group — это разбиение, позволяющее параллельно работать с данными на уровне Map-Reduce Column chunk — разбиение на уровне колонок, позволяющее распределять IO операции Page — Разбиение колонок на страницы, позволяющее распределять работу по кодированию и сжатию
  • 16. типы ● BOOLEAN: 1 bit boolean ● INT32: 32 bit signed ints ● INT64: 64 bit signed ints ● INT96: 96 bit signed ints ● FLOAT: IEEE 32-bit floating point values ● DOUBLE: IEEE 64-bit floating point values ● BYTE_ARRAY: arbitrarily long byte arrays.
  • 17. Достоинства Parquet ● Эффективное хранение ● Высокая скорость сложных выборок, если не нужны все колонки сразу ● Быстрая работа на чтение, по сравнению с использованием других файловых форматов ● HDFS, NFS, GlusterFS
  • 18. Недостатки parquet ● parquet ведёт себя как неизменяемая таблица или БД ● Для колонок определён тип, нельзя комбинировать сложный тип данных с простым. ● Не поддерживаются транзакции
  • 19.
  • 20.
  • 21. val peopleDF = spark.read.json("examples/src/main/resources/people.json") peopleDF.write.parquet("people.parquet") val parquetFileDF = spark.read.parquet("people.parquet") parquetFileDF.createOrReplaceTempView("parquetFile") val namesDF = spark.sql("SELECT name FROM parquetFile WHERE age BETWEEN 13 AND 19") namesDF.map(attributes => "Name: " + attributes(0)).show() +----------------+ | value | +----------------+ |Name: Justin| +----------------+
  • 22. Resilient Distributed Dataset Распределенный набор данных, который знает как себя вычислить. RDD может быть лениво вычисляемой при запросе может быть и материализована — распределенно, в памяти или на диске (или в памяти с вытеснением на диск) разбита на партиции — это минимальный объем RDD, который будет обработан каждым рабочим узлом.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Блохин Леонид BigDataEngineer at Provectus Blokhin@provectus.com 8 917 295-40-49