Пробуждение посреди ночи из-за ошибки в данных снова, вы когда-нибудь мечтали об идеальном мире данных, где запросы выполняются за секунды, данные никогда не теряются, а затраты настолько низки, что ваш босс улыбается? Звучит как мечта? Нет! Это становится реальностью.
Помните ту ночь, когда вы были подавлены проблемами с разделением данных, а менеджер продукта неистово толкал вас к прогрессу, пока вы боролись с рассеянными данными? Кросс-источниковые запросы были медленными, как улитка, пытающаяся забраться на гору, а изменения схемы требовали координации семи отделов.
Но сейчас эти проблемы переписываются.
Комбинация Apache Doris и Iceberg переопределяет работу с озерами данных. Это не просто простое 1+1=2; это приносит качественный скачок: запросы на уровне секунд, безшовную эволюцию схемы и гарантии подлинной согласованности данных.
Совершенная Симфония Doris и Iceberg
В области инженерии данных мы часто сталкиваемся с такими проблемами:
Сяо Чжан работает над требованием по анализу данных, требующим анализа данных о поведении пользователей за последние три месяца. Данные разбросаны по хранилищам данных Hive, бизнес-базам данных и объектным хранилищам. Производительность кросс-источникового Join плохая, запросы занимают более 40 минут, и часто возникает несогласованность данных.
Более того, Сяо Чжану также приходится заниматься работой по управлению данными, и каждое изменение структуры таблицы приносит ему головную боль. Несколько зависимых приложений зависят от этих таблиц, и изменения схемы требуют координации между несколькими командами, что может занять неделю для завершения одного изменения.
Эти проблемы стали более острой с взрывным ростом данных. Традиционное разделение хранилищ данных и “озер данных” больше не может удовлетворить потребности.
К счастью, в версии 2.1 архитектура lakehouse Apache Doris была значительно улучшена. Она не только улучшает возможности чтения и записи основных форматов “озер данных” (Hudi, Iceberg, Paimon и т. д.), но также вводит совместимость с множеством диалектов SQL, позволяя бесшовно переключаться с существующих систем на Apache Doris. В сфере науки о данных и сценариях чтения данных большого объема Doris интегрирует высокоскоростной интерфейс чтения Arrow Flight, достигая улучшения эффективности передачи данных в 100 раз.
Таким образом, Сяо Чжан решил использовать Doris + Iceberg для своего выкупа.
Apache Doris обеспечивает нативную поддержку многих основных функций Iceberg:
- Поддерживает различные типы каталогов Iceberg, такие как Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore и DLF.
- Нативно поддерживает форматы таблиц Iceberg V1/V2, а также чтение файлов Position Delete и Equality Delete.
- Поддерживает запросы истории снимков таблицы Iceberg с помощью функций таблицы.
- Поддерживает функционал “путешествия во времени”.
- Поддерживает нативный движок таблиц Iceberg. Apache Doris может напрямую создавать, управлять и записывать данные в таблицы Iceberg. Он поддерживает полный набор функций преобразования разделов, обеспечивая возможности, такие как скрытые разделы и эволюция макета разделов.
Кроме того, в версии 2.1.6 Doris принес значительное обновление Doris + Iceberg:
Apache Doris поддерживает операции DDL и DML в Iceberg. Пользователи могут непосредственно создавать базы данных и таблицы в Iceberg через Apache Doris и записывать данные в таблицы Iceberg.
С помощью этой функции пользователи могут выполнять полные запросы данных и операции записи в Iceberg с использованием Apache Doris, что дополнительно упрощает архитектуру озерной платформы.
Таким образом, Сяо Чжан может быстро построить эффективное решение озерной платформы на основе Apache Doris + Apache Iceberg для гибкого удовлетворения различных потребностей в области анализа и обработки данных в реальном времени:
- Используйте высокопроизводительный движок запросов Doris для объединения и анализа данных из таблиц Iceberg и других источников данных, создавая унифицированную федеративную платформу для анализа данных.
- Непосредственно управляйте и создавайте таблицы Iceberg в Doris, очищайте и обрабатывайте данные, записывайте их в таблицы Iceberg, создавая унифицированную платформу обработки данных озерного типа.
- Делитесь данными Doris с другими системами вверхнего и нижнего уровней для дальнейшей обработки через движок таблиц Iceberg, создавая унифицированную открытую платформу хранения данных.
Это уже не простое поверхностное интегрирование, а глубокое слияние архитектур озерных платформ!
Практическое резюме по работе с Doris и Iceberg
После серии взлетов и падений в исследованиях и практике, Сяо Чжан суммировал некоторый практический опыт работы с Doris + Iceberg:
Управление интеллектуальными метаданными
В традиционных решениях управление метаданными всегда было сложной проблемой. Информация о разделении таблиц, местоположениях файлов и историях изменений схем разбросаны повсюду, что приводит к плохой производительности запросов и сложным операциям и обслуживанию.
Doris + Iceberg предоставляют унифицированный уровень управления метаданными:
Эта архитектура приносит несколько ключевых ценностей:
- Бесшовная эволюция схемы: Изменения структуры таблиц больше не требуют простоев. Doris + Iceberg поддерживает добавление, удаление и изменение полей, а также настройку методов разделения.
- Управление версиями данных: Через механизм снимков Iceberg вы можете вернуться к состоянию данных в любой момент времени.
- Унифицированный каталог сервисов: Поддерживает различные типы каталогов Iceberg, такие как Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore и DLF, без проблем интегрирующиеся с существующей инфраструктурой.
Теперь Сяо Чжан может завершать изменения схемы одним оператором ALTER TABLE
. Система автоматически обрабатывает совместимость, и последующие приложения остаются неосведомленными об изменениях.
Эффективная организация данных
Дорис инновационно сочетает движок MPP с методами организации данных Iceberg:
-- Create a partitioned Iceberg table
-- Partition columns must be in the table's column definition list
CREATE TABLE sales (
ts DATETIME,
user_id BIGINT,
amount DOUBLE,
pt1 STRING,
pt2 STRING
) ENGINE=iceberg
-- Iceberg's partition type corresponds to List partitioning in Doris
PARTITION BY LIST (DAY(ts), pt1, pt2) ()
PROPERTIES (
-- Compression format
-- Parquet: snappy, zstd (default), plain (no compression)
-- ORC: snappy, zlib (default), zstd, plain (no compression)
'write-format'='orc',
'compression-codec'='zlib'
);
Этот SQL-запрос скрывает мощные технические механизмы:
- Организация файлов: Поддерживает общие носители хранения, такие как HDFS и объектное хранилище.
- Умное разделение: Поддерживает функции преобразования разделов для включения неявного разделения и функций эволюции разделов Iceberg.
- Оптимизация хранения: Поддерживает форматы колоночного хранения, такие как Parquet и ORC, в сочетании с различными методами сжатия для повышения производительности.
Благодаря поддержке Doris DDL и DML операций на Iceberg, также полностью решаются проблемы согласованности данных.
Управление операциями и обслуживанием
Для обеспечения стабильности платформы данных Сяо Чжан использует следующие методы мониторинга и управления таблицами Iceberg:
-- View table snapshot information
SELECT * FROM iceberg_meta(
"table" = "iceberg.nyc.taxis",
"query_type" = "snapshots"
);
-- Query a specific snapshot using FOR VERSION AS OF
SELECT * FROM iceberg.nyc.taxis FOR VERSION AS OF {snapshot_id};
-- Query a specific snapshot using FOR TIME AS OF
SELECT * FROM iceberg.nyc.taxis FOR TIME AS OF {committed_at};
-- Manage snapshots
...
Этот инструментарий предоставляет:
- Мониторинг метрик: Управление статусом таблицы в реальном времени и метриками снимков.
- Управление снимками: Очистка истекших снимков для освобождения места на носителе.
- Восстановление отказа: Поддерживает откат к любой исторической версии (чтение данных исторической версии на основе идентификатора снимка или времени создания снимка).
Благодаря этим практикам платформа данных Сяо Чжана на основе Doris + Iceberg достигла новых высот:
- Производительность запросов улучшилась на 300%.
- Снижение затрат на хранение на 40%.
- Эффективность операций и обслуживания увеличилась на 200%.
Захватывающее путешествие к домику на озере Дорис никогда не заканчивается.
Следите за более интересным, полезным и ценным контентом в следующем выпуске!