BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Hadoop для Data Engineer » Файловые форматы для больших данных: Parquet, ORC, Avro, JSON, SequenceFile

Файловые форматы для больших данных: Parquet, ORC, Avro, JSON, SequenceFile

Современные ETL-пайплайны и аналитические системы работают с огромными массивами данных, которые хранятся в распределённых файловых системах. Эффективность обработки, скорость запросов и управляемость данных во многом зависят от форматов файлов, их архитектуры и множества параметров компрессии и схемы. В данной главе рассмотрены ключевые форматы, используемые в экосистеме Hadoop и Spark: Parquet, ORC, Avro, JSON и SequenceFile. Для каждого формата освещаются принципы хранения, особенности схемы, поддержка эволюции данных, компрессия и влияние на производительность ETL-процессов, а также сценарии интеграции с Hive и Spark. Особое внимание уделяется критериям выбора форматов под разные задачи: от обмена сообщениями и сериализации до хранения аналитических наборов и промежуточных данных в рамках больших данных.

  • Обозначение общих принципов: схема как первый класс, колоночное хранение против строкового, компрессия и статистика, поддержка эволюции схем и интеграции с инструментами анализа.
  • Разбор Parquet и ORC как ведущих форматов для аналитических нагрузок: структура, кодеки, векторизованный доступ и автоматическоеpredicate pushdown.
  • Avro как формат обмена и для стриминга: сериализация, эволюция схем и совместимость.
  • JSON и SequenceFile как альтернативы: гибкость и ограничения, сценарии использования и компромиссы.
  • Практические рекомендации по выбору формата в контексте ETL-архитектур, интеграции с Hive/Spark и управлению данными.

 

Архитектура и принципы колоночности

Ключевая идея колоночного формата состоит в том, что данные сохраняются column-wise, а не row-wise. Такой подход существенно уменьшает объём чтения данных для аналитических запросов, поскольку запросы часто касаются большого количества столбцов, но читаются только подмножества. В колоночном формате каждая колонка хранится отдельно, что даёт возможность пропускать блоки (страницы) для неинтересующих значений, использовать эффективные схемы компрессии и выполнять predicate pushdown на уровне метаданных.

Основные элементы архитектуры: структура файла, разделение на RowGroup или Stripe, хранение статистики по колонкам, механизм схемы и поддержка вложенных структур. В Parquet и ORC метаданные (схема, статистика, инференция типа) хранятся в манифестах внутри файла и/или в службах метаданных, что позволяет Spark и Hive выполнять эффективное чтение без полного сканирования данных. Эволюция схем - важный аспект. Avro ориентирован на схему как на первый класс в рамках сериализации и передачи данных, Parquet и ORC - на схему в контексте чтения и фильтрации больших объёмов.

Важно помнить, что выбор формата влияет на производительность и складирование данных: колоночные форматы лучше подходят для аналитических запросов с фильтрацией, агрегацией и predicate-pushdown, тогда как строковые или гибкие форматы лучше подходят для обмена сообщениями и протокольной интеграции в сценариях streaming и микросервисной архитектуры. При проектировании ETL важно учитывать эволюцию схем, требования к совместимости между системами, частоту обновления данных и требования к хранению.

 

Parquet

Parquet - это открытый столбцовый формат, оптимизированный для обработки больших наборов данных в распределённых системах. Архитектура Parquet строится вокруг RowGroup и ColumnChunk: каждый RowGroup представляет собой логическую порцию строк, внутри которой данные разделяются на колонки, каждая колонка кодируется и сжимаются независимо. Это обеспечивает эффективное считывание только тех колонок, которые необходимы запросу, и поддерживает параллельный доступ к RowGroup-ам.

 

Ключевые характеристики Parquet:

  • Структура хранения: RowGroup, внутри которого каждая колонка имеет ColumnChunk и Page. Это позволяет выполнять чтение только нужных столбцов и применяить колоночное сжатие без потери наполняемости.
  • Эффективная компрессия: сочетание кодеков (Snappy, GZIP, Brotli) и методов кодирования (dictionary encoding, bit-packed, RLE) обеспечивает высокую плотность данных при сохранении скорости чтения.
  • Статистика и фильтрация: каждый столбец сопровождается статистикой (min, max, null-count и пр.), что позволяет системой чтения выполнять eager-filtering и падение чтения незначительных колонок.
  • Поддержка вложенных структур: Parquet поддерживает сложные схемы с вложенными полями и списками, что делает его подходящим для аналитических наборов данных.
  • Эволюция схем: Parquet позволяет добавлять новые столбцы к существующим данным без необходимости переписывать файлы; однако удаление столбцов требует аккуратного управления схемами и совместимости.
  • Интеграция: Parquet стал де-факто форматом хранения в Spark и Hive благодаря эффективному чтению, поддержке колонной фильтрации и совместимости с метаданными из Hive Metastore.

Пример чтения и записи Parquet в Spark (PySpark):

 
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ParquetExample").getOrCreate()

## Чтение Parquet-файлов с возможностью объединения схем
df = spark.read.option("mergeSchema", "true").parquet("hdfs:///data/parquet/")

## Примеры операций ETL
df_filtered = df.filter("country = 'US'").select("id", "country", "order_amount")

## Запись в Parquet с разбиением по колонкам
df_filtered.write.mode("overwrite").partitionBy("year", "month").parquet("hdfs:///data/parquet/partitioned")

Преимущества Parquet в контексте Hadoop и Spark очевидны: снижение числа считанных блоков за счёт колонного формата, экономия места за счёт эффективной компрессии и возможность агрессивной оптимизации через статистику колонок. Однако Parquet требует поддержки форматов сертификатов вложенных структур и корректной эволюции схем, чтобы извлечь максимальную пользу в рамках сложных ETL-пайплайнов.

 

ORC

ORC (Optimized Row Columnar) - это другой ведущий колоночный формат, который изначально был разработан в контексте экосистемы Hadoop и оптимизирован под Hive. Архитектура ORC предусматривает полосовую структуру (Stripe), где данные, колонки и индексы упакованы в последовательные блоки. В ORC применяются дополнительные техники ускорения чтения, включая встроенные индексы по позиции и min/max-статистику, что позволяет значительно снижать объем чтения в аналитических запросах.

 

Ключевые особенности ORC:

  • Структура и индексация: ORC разделяет данные на Stripes и предоставляет статистику на уровне полос и колонок, что ускоряет отборку необходимых данных.
  • Векторизированный доступ: поддержка векторизированного чтения в Spark и Hive обеспечивает эффективное выполнение операций над колонками, особенно для больших наборов.
  • Компрессия и кодеки: поддерживает несколько уровней компрессии (Snappy, Zlib, и т. д.), что позволяет балансировать между пропускной способностью и временем декомпрессии.
  • Эволюция схем: ORC также поддерживает эволюцию схем, хотя в некоторых случаях добавление столбцов требует управления совместимостью и чтения данных.
  • Статистика и битовые фильтры: наличие статистики на уровне шкалирования и возможность использования Bloom-фильтров для ускорения чтения.
  • Интеграция: Hive изначально оптимизирован под ORC; Spark также поддерживает ORC с векторизованным чтением, что делает этот формат привлекательным для аналитических задач на кластерах Hadoop и EMR-типов.

Пример кода (Spark) для работы с ORC:

 
df = spark.read.orc("hdfs:///data/orc/")
df.createOrReplaceTempView("orders_orc")

## Пример запроса
spark.sql("SELECT country, SUM(order_amount) FROM orders_orc WHERE year = 2024 GROUP BY country")

## Запись в ORC
df.write.mode("overwrite").orc("hdfs:///data/orc/output/")

ORC часто предпочтительнее Parquet в сценариах, где важна скорость чтения для очень больших наборов столбцов и когда требования к коллекции метаданных и индексов позволяют максимально использовать полосовую структуру и векторизованный доступ. В то же время, Parquet может быть более гибким в отношении эволюции схем и совместимости между различными инструментами анализа.

 

Avro

Avro представляет собой формат сериализации, ориентированный на схему как на первый класс. В отличие от Parquet и ORC, Avro чаще применяется как формат обмена данными между системами, а также в стриминге и очередях сообщений (например, в Kafka). Основная идея Avro - это бинарная сериализация, где данные кодируются согласно заранее согласованной схеме, которая хранится вместе с данными или управляется в реестре схем.

 

Ключевые особенности Avro:

  • Схема как часть данных: каждая запись сериализуется в соответствии с определённой схемой, что обеспечивает компактность и однозначность восприятия данных.
  • Эволюция схем: Avro поддерживает различные режимы совместимости (backward, forward, full). Это позволяет добавлять или удалять поля, задавать значения по умолчанию и удовлетворять требованиям изменений в источниках и потребителях данных.
  • Поддержка логических типов: Avro поддерживает логические типы для дат, времени, decimal и т. д., что облегчает точную интерпретацию значений.
  • Обмен данных и стриминг: Avro широко используется для передачи данных между системами и в стриминговых конвейерах, особенно вместе с Kafka и потоковыми сервисами.
  • Совместимость с инструментами: Spark имеет обёртку через пакет spark-avro (или встроенную поддержку в последних версиях), что упрощает чтение и запись Avro-данных.

Пример чтения Avro в Spark:

 
df = spark.read.format("avro").load("hdfs:///data/avro/")

Avro особенно полезен в условиях, когда требуется строгая эволюция схем, «управляемая» совместимость между потребителями и продюсерами и когда данные требуют явной сериализации для передачи между компонентами цифровой экосистемы. Для аналитических хранилищ он может использоваться, но чаще отправной точкой остаются Parquet или ORC из-за их преимуществ в колоночной аналитике и поддержки эффективного predicate pushdown.

 

JSON и SequenceFile

JSON представляет собой гибкий текстовый формат, который широко применяется для обмена данными и для логов. В контексте больших данных JSON может выступать как формат входных данных на первичной стадии, формат передачи между микросервисами или как промежуточный формат для миграции. Однако JSON лишён строгой схемы, что накладывает сложности на консистентность и производительность анализа, особенно при больших объёмах и вложенных структурах. В рамках больших данных обычно применяют line-delimited JSON (JSON Lines), что упрощает стриминг и параллельную обработку, но чтение больших вложенных структур требует дополнительной обработки и памяти.

SequenceFile - древний бинарный контейнер Hadoop для хранения пар ключ-значение. Этот формат часто применяется внутри MR-пайплайнов и как промежуточное средство передачи между этапами обработки. Несмотря на устойчивость к высоким нагрузкам и встроенную поддержку компрессии, SequenceFile уступает Parquet/ORC в плане производительности аналитических запросов и поддержки сложных схем. В современных пайплайнах SequenceFile чаще используют как совместимый слой, когда существуют устоявшиеся MR- или PySpark-цепочки, требующие именно этого формата.

 

Сценарии использования JSON и SequenceFile:

  • JSON: лог-файлы, внешние данные из систем мониторинга, интеграции с сервисами, где важна читаемость и гибкость структуры; линия данных может быть ограничена количеством полей и глубиной вложенности.
  • SequenceFile: промежуточные данные между этапами MapReduce или в устаревших конвейерах, где важна детерминированная последовательность записи и совместимость с существующими инфраструктурными стеками.

Пример чтения и записи JSON в Spark:

 
df = spark.read.json("hdfs:///data/json/")
df.write.mode("overwrite").json("hdfs:///data/json/output/")

Пример записи SequenceFile в Spark (через RDD):

 
rdd = sc.parallelize([(1, "one"), (2, "two")])
rdd.saveAsSequenceFile("hdfs:///data/seq/")

JSON и SequenceFile подходят для определённых задач скорости внедрения и совместимости, но они часто требуют дополнительных слоёв обработки и не обеспечивают такой же уровень производительности аналитических запросов, как Parquet или ORC, особенно при работе с вложенными структурами и больших объемах столбцов.

 

Выбор формата и интеграционные сценарии

Правильный выбор формата файлов определяется совокупностью факторов: характер данных, требования к схеме и её эволюции, частота обновления и режимы доступа, требования к аналитическим запросам и интеграции с существующей инструментальной средой, а также аспекты управления данными и соответствие политик безопасности.

Ниже приводятся ориентиры, помогающие выбрать подходящий формат в рамках ETL и аналитических конвейеров:

  • Если важна строгая схема и обмен данными между системами, особенно в стриминге (Kafka, Flink), Avro хорош как формат сериализации и обмена с понятной эволюцией схем.
  • Для аналитических хранилищ и больших наборов данных, где критична скорость чтения и фильтрации по нескольким столбцам, Parquet предпочтителен благодаря колонному хранению и эффективному predicate pushdown.
  • Если требуется максимальная скорость чтения больших наборов столбцов в рамках Hive или Spark, особенно с прекрасно оптимизированной векторизацией, ORC часто приносит наилучшую производительность благодаря Stripe-структуре и статистике.
  • Для гибкой разработки и прототипирования, когда структура данных может изменяться динамически и важна читаемость, JSON может служить хорошим входным форматом на стадии инфляции, но для долговременного хранения он требует конвертации в Parquet или ORC.
  • SequenceFile полезен тогда, когда требуется совместимость с существующими MR-конвейерами, промежуточное хранение внутри Hadoop-архитектур, и если инфраструктура ещё не переведена на более современные форматы.

Таблица: сравнительная характеристика форматов

Формат Основной характер Преимущества Основные сценарии Ограничения
Parquet Колонный Эффективное сжатие, predicate pushdown, хорошая эволюция схем Аналитика, хранилища данных, Spark/Hive Требуется аккуратная эволюция схем и совместимости
ORC Колонный Статистика на уровне stripe, векторизация, быстрые чтения Аналитика, Hive/ Spark на больших наборах Могут быть нюансы совместимости с некоторыми инструментами
Avro Рядовый/обмен данными Схема в составе данных, строгая эволюция, легко интегрируется Стриминг, обмен сообщениями, API-сервисы Менее эффективен для столбц-подобной аналитики
JSON Текстовый Гибкость структуры, простота сериализации Интеграция с внешними системами, логи Нет строгой схемы, медленная аналитика на больших данных
SequenceFile Бинарный MR-формат Прежняя инфраструктура MR, простая структура ключ-значение Промежуточное хранение внутри MR-конвейеров Ограниченная производительность и гибкость по сравнению с Parquet/ORC

Выбор формата следует рассматривать в контексте всего конвейера данных:

  • Для ingestion и стриминга предпочтительны Avro (как сериализация) и JSON (для быстрых входов), затем данные конвертируются в Parquet/ORC для анализа.
  • Для подстановки в Hive Metastore и совместимости с Spark рекомендуется Parquet или ORC в качестве основного формата хранения аналитических данных, с Avro как форматом обмена между системами.
  • Для старых MR-конвейеров SequenceFile может сохранять совместимость, но суть современных аналитических пайплайнов диктует переход на Parquet/ORC.

     

Практические рекомендации:

  • Разработайте политику схемы на уровне данных и метаданных: кто владелец эволюции схем, какие версии поддерживаются, как регламентируется совместимость потребителей.
  • Используйте Parquet или ORC как основной формат хранения аналитических данных; Avro - для обмена и стриминга; JSON - для инпута и внешних источников, с конвертацией в аналитический формат при загрузке.
  • Применяйте компрессия и кодеки осознанно: Snappy часто балансирует скорость и размер; Zlib обеспечивает лучший сжатие, но хуже по скорости; выберите уровень компрессии с учётом latency и throughput.
  • В рамках Hive/Spark активируйте соответствующие оптимизации: объединение схем (mergeSchema), векторизация чтения, использование Bloom-фильтров в ORC, статистику по колонкам и подходы к секционированию (partitioning) и кластеризации (bucketing).

     

Key takeaways

  • Колоночные форматы существенно улучшают производительность аналитических запросов за счёт чтения только необходимых столбцов и эффективной компрессии.
  • Parquet и ORC предоставляют мощные механизмы фильтрации и статистики на уровне колонок, что позволяет снизить объем данных, обрабатываемых запросами.
  • Avro является надёжным выбором для сериализации и обмена схемами между системами, особенно в стриминговых конвейерах и интеграциях.
  • JSON отлично подходит для входных данных и прототипирования, но не является оптимальным вариантом для долговременного аналитического хранения без конвертации.
  • Выбор формата требует баланса между требованиями к схеме эволюции, характеристиками чтения/записи, совместимостью инструментов и политиками управления данными.
  • Интеграция форматов с Hive и Spark требует учёта возможностей векторизации, фильтрации по колонкам и возможности чтения эволюционных схем.
  • В большинстве аналитических пайплайнов рекомендуется сочетать Avro (для обмена) и Parquet/ORC (для хранения и аналитики), сохраняя JSON/SequenceFile для инпута и межсистемной передачи там, где это действительно необходимо.

     

FAQ

  1. Что такое Parquet и почему он столь популярен в экосистеме Hadoop и Spark?
  • Parquet - это колонночный формат, оптимизированный под аналитическую обработку больших наборов данных. Он обеспечивает эффективное считывание конкретных столбцов, поддержку сложных схем, гибкую компрессию и статистику, что позволяет Spark и Hive применять predicate pushdown и сократить количество данных, загружаемых в память. Плюсом является хорошая совместимость с главными инструментами анализа и возможность эволюции схем без полной перезаписи файлов.

 

  1. Чем Parquet отличается от ORC?
  • Оба формата являются колоночными и ориентированы на аналитическую обработку. Parquet отличается широкой поддержкой экосистемы и гибкой схемой, в то время как ORC предлагает усиленную статистику на уровне Stripe, встроенные индексы и более агрессивную векторизацию чтения. В реальных пайплайнах выбор может зависеть от конкретной инфраструктуры: Spark может отдавать предпочтение векторизированному чтению в ORC, тогда как Parquet может быть проще для интеграции между различными компонентами, включая внешние источники данных.

 

  1. Когда выбрать Avro по Parquet или ORC?
  • Avro лучше подходит для сериализации, обмена данными и стриминга, когда критична эволюция схем и совместимость между продюсерами и потребителями. Он обеспечивает компактную бинарную сериализацию и поддерживает логические типы. В аналитическом хранилище Parquet/ORC обычно предпочтительнее за счёт колоночной структуры и эффективной фильтрации.

 

  1. Какие факторы влияют на производительность чтения Parquet?
  • Размер RowGroup и PageSize: чем больше RowGroup, тем больше данных читается за одну операцию, но ниже степень параллелизма. Статистика по колонкам позволяет заранее исключать ненужные части файла. Наличие правильной компрессии и индексации (на уровне колонок) помогает снизить IO. Векторизация чтения в Spark и наличие фильтров по колонкам существенно ускоряют выполнение запросов.

 

  1. Как обеспечить эволюцию схем без сбоев потребителей?
  • Важно определить политику совместимости: backward, forward, full. Avro в особенности хорошо поддерживает эволюцию схем через дефолтные значения и совместимость. Parquet/ORC поддерживают добавление столбцов и управление значениями по умолчанию через схему, однако потребители должны быть в курсе изменений, чтобы правильно обрабатывать новые поля и пропускать отсутствующие данные.

 

  1. Какие примеры практических паттернов можно применить в ETL?
  • etl-пайплайн: источники данных → формат Avro (для обмена и стриминга) → преобразование и агрегации → хранение в Parquet/ORC для аналитики → Hive/Spark-аналитика.
  • Промежуточный слой: SequenceFile может использоваться в устаревших MR-конвейерах как промежуточный формат, но в новых проектах он заменяется Parquet/ORC для производительности.
  • Интеграция с Hive Metastore: таблицы в Hive чаще ассоциируются с Parquet/ORC как основными форматами хранения, с Avro как форматом обмена. Это обеспечивает совместимую схему, эффективное хранение и поддержку фильтраций.

 

  1. Какую роль играет компрессия и какие выборы обычны?
  • Snappy обычно обеспечивает хороший компромисс между скоростью и размером данных. GZIP может дать лучшее сжатие, но увеличивает задержку чтения и записи. Выбор зависят от пропускной способности сети, скорости И/O и требований к latency в конвейере.

 

  1. Какова роль JSON в современных пайплайнах?
  • JSON удобен на входе и для интеграции с внешними системами, но для аналитических хранилищ он менее эффективен по сравнению с Parquet/ORC, особенно при больших объёмах и глубокой вложенности данных. Часто JSON используется на входе, после чего данные конвертируются в Parquet или ORC для дальнейшей аналитики.

 

  1. Как обеспечить совместимость между различными версиями инструментов?
  • Важно фиксировать версии форматов и соответствующие конвертеры/поставщиков в пайплайне, а также тестировать миграцию схем в тестовой среде. Мониторинг изменений в схемах и правила журналирования необходимых миграций помогут избежать неожиданных ошибок в проде.

 

  1. Какие лучшие практики по управлению форматами в крупных командах?
  • Разработайте политику хранения метаданных (кто владеет схемами, как эволюционируют схемы, как управлять дефолтами). Вам понадобятся процессы тестирования схематических изменений, мониторинг качества данных и стратегии миграций между форматами. Внедрите единый переход к Parquet/ORC как основному формату хранения и Avro/JSON для обмена и входных данных, поддерживая SequenceFile только там, где действительно есть устаревшие конвейеры.

 

Глава завершает набор руководств по выбору форматов и их интеграции в Hadoop и Spark. В рамках проектирования ETL-конвейеров и архитектуры больших данных рекомендуется исходить из требований к схеме, эволюции, скорости чтения и совместимости между системами. Принципы должны быть закреплены в виде политики управления данными, методологии тестирования изменений схем и практических правил эксплуатации форматов в кластере.

← Предыдущая статья
Хранение данных на HDFS: принципы, репликация, безопасность и производительность
Следующая статья →
Метаданные и управление данными: Hive Metastore, Atlas, Data Catalog

 

Узнать стоимость решенияЗапросить видео презентацию

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • MoneyCare — кредитная платформа и сервис для ПОС-кредитования в магазинах, установленная в более чем 18 тысячах трейдинговых точек и сотрудничающая с 11 главными банками России.

  • КАМИ – компания-лидер по поставкам тяжёлых станков в России, занимающаяся продажей и обслуживанием оборудования для обработки металла и дерева, изготовления мебели и не только. На сегодняшний день в компании работают более 1300 человек, запущено 10 обучающих центров, в продаже более 7000 единиц техники. 

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • "Уральский банк реконструкции и развития" входит в топ-25 крупнейших банков России и список значимых кредитных организаций на рынке платежных услуг по версии ЦБ РФ.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.