SlideShare a Scribd company logo
1 of 28
#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

More Related Content

Similar to Леонид Блохин (Big Data Engineer): КОЛОНОЧНЫЕ БД НА ПРИМЕРЕ PARQUET

Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСYury Petrov
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)Alexey Kovyazin
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogAndrew Panfilov
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиElizaveta Alekseeva
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.mikhaelsmirnov
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
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
 
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Dima Dzuba
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиYuri Yashkin
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Andrew Avdeev
 
Net Аpp. Лучший фундамент для облака
Net Аpp. Лучший фундамент для облакаNet Аpp. Лучший фундамент для облака
Net Аpp. Лучший фундамент для облакаYulia Sedova
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)Alexander Gornik
 
Review of all-flash array market and benefits
Review of all-flash array market and benefitsReview of all-flash array market and benefits
Review of all-flash array market and benefitsBogdan Vakulyuk
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Ontico
 
Организация базы знаний проектной деятельности предприятия
Организация базы знаний проектной деятельности предприятияОрганизация базы знаний проектной деятельности предприятия
Организация базы знаний проектной деятельности предприятияVasily Kazakov
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub.NET User Group Dnipro
 
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
 

Similar to Леонид Блохин (Big Data Engineer): КОЛОНОЧНЫЕ БД НА ПРИМЕРЕ PARQUET (20)

Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
 
9946
99469946
9946
 
Hadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> CascalogHadoop -> Cascading -> Cascalog
Hadoop -> Cascading -> Cascalog
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
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
 
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
 
Net Аpp. Лучший фундамент для облака
Net Аpp. Лучший фундамент для облакаNet Аpp. Лучший фундамент для облака
Net Аpp. Лучший фундамент для облака
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
Review of all-flash array market and benefits
Review of all-flash array market and benefitsReview of all-flash array market and benefits
Review of all-flash array market and benefits
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
 
Организация базы знаний проектной деятельности предприятия
Организация базы знаний проектной деятельности предприятияОрганизация базы знаний проектной деятельности предприятия
Организация базы знаний проектной деятельности предприятия
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
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...
 
Опыт внедрения Greenplum в Aviasales.ru
Опыт внедрения Greenplum в Aviasales.ruОпыт внедрения Greenplum в Aviasales.ru
Опыт внедрения Greenplum в Aviasales.ru
 

More from Provectus

Choosing the right IDP Solution
Choosing the right IDP SolutionChoosing the right IDP Solution
Choosing the right IDP SolutionProvectus
 
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.Provectus
 
Choosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare OrganizationsChoosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare OrganizationsProvectus
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionProvectus
 
AI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and BeyondAI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and BeyondProvectus
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningProvectus
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerProvectus
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRProvectus
 
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...Provectus
 
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K..."Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...Provectus
 
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ..."How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...Provectus
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...Provectus
 
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2..."Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...Provectus
 
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma..."Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...Provectus
 
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ..."Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...Provectus
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019Provectus
 
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019Provectus
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...Provectus
 
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019Provectus
 
How to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAMHow to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAMProvectus
 

More from Provectus (20)

Choosing the right IDP Solution
Choosing the right IDP SolutionChoosing the right IDP Solution
Choosing the right IDP Solution
 
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
 
Choosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare OrganizationsChoosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare Organizations
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in Production
 
AI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and BeyondAI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and Beyond
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine Learning
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
 
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
 
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K..."Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
 
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ..."How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
 
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2..."Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
 
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma..."Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
 
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ..."Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
 
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
 
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
 
How to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAMHow to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAM
 

Леонид Блохин (Big Data Engineer): КОЛОНОЧНЫЕ БД НА ПРИМЕРЕ 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

Editor's Notes

  1. Основная идея колоночных СУБД — это хранение данных не по строкам, а по колонкам. Такая организация данных приводит к тому, что при выполнении select в котором фигурируют только 3 поля из 50 полей таблицы, с диска физически будут прочитаны только 3 колонки. Это означает что нагрузка на канал ввода-вывода будет приблизительно в 50/3=17 раз меньше чем при выполнении такого же запроса в традиционной СУБД. Кроме того, при поколоночном хранении данных появляется замечательная возможность сильно компрессировать данные, так как в одной колонке таблицы данные как правило однотипные, чего не скажешь о строке.
  2. Spark умеет мерджить схему, если у вас она меняется со временем (для этого надо указать специальную опцию при чтении), но, чтобы что-то изменить в уже существующим файле, нельзя обойтись без перезаписи.
  3. хадуп считается одной из основополагающих технологий «больших данных». Вокруг Hadoop образовалась целая экосистема.