Новое в Apache Aceberg 3.0: Свежие типы данных, нулевые клады, смена захвата

Рассел Спитцер

Версия 3 Apache Aceberg была выпущена. Был добавлен ряд функций, которые расширяют гибкость формата таблицы данных, включая несколько очень заслуженных типов данных, более быстрые удаления, линию строк и значения по умолчанию для нулевых типов.

Эта новая версия — а также версия V4, с которой собирается начать основную команду разработчиков, — лучше оснащена айсберг для новых видов использования, объяснил Рассел Спитцер, руководитель программы Apache Araceberg.

В качестве открытого формата данных Apache Aceberg сыграл важную роль в создании Lakehouses, которые объединяют несколько источников структурированных и неструктурированных данных для крупномасштабного анализа. Он использует сложный набор метаданных, чтобы отслеживать треки изменений в различных файлах, которые он индексирует.

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

Айсберг Apache — это как набор спецификаций, так и ряд эталонных реализаций. Существует спецификация представления, спецификация отдыха для того, как общаться с сервером. Он также включает в себя спецификацию для формата файлов puffin для хранения индексов, статистики и других битов данных, которые нельзя хранить в манифесте айсберга. Существует также ряд реализаций, написанных на разных языках (Java, Python, Rust, Go, C ++), и на основе различных платформ, таких как Apache Spark и Apache Flink.

Спитцер

Spritzer, вместе со старшим менеджером по связям с разработчиками Danica Danica Danica Fine, провела объяснительную сессию о спецификации версии 3 айсберга на ежегодном саммите снежинок, проводимой в начале этого месяца в Сан -Франциско. Новые функции, которые они охватили, включали:

  • Векторы удаления
  • Вариант типа
  • Геометрический тип
  • Роуда
  • Нулевые значения по умолчанию

Векторы удаления

Файн объяснил, что когда дело доходит до удаления данных, айсберг имеет два пути: копия на записи и слияние на чтении. Копия на записи Просто делает копию любого файла, который меняется минус любые строки (ы), которые необходимо удалить; слияние на чтение сохраняет оригинал, но затем делает файл удаления, отмечая содержимое удаления. Удаления могут быть всеми экземплярами значения (удаление равенства) или только один в определенном месте (Delete Position).

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

Для v3 файлы удаления позиции будут заменены высокопрофессиональными файлами Puffin. Tuffin также был перепрофилирован для хранения файлов удаления. Каждый файл получит свой вектор удаления.

«Вы увидите гораздо меньше задач по техническому обслуживанию с вашей стороны. Вам не нужно на самом деле проходить и объединять свои данные», — сказал Файн.

Новые типы данных

Новые типы данных изобилуют в v3.0.

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

По словам Спитцера, сама снежинка уже поддерживает типы вариантов, поэтому имело смысл расширить это на айсберг.

«Варианты действительно хороши для многих разных вещей», — сказал он. Вы получаете «все преимущества наличия структурированного типа, в то же время имея возможность хранить практически все, что вы хотите в каждой ячейке».

Например, он указал на использование типов вариантов для сбора данных из развертывания Интернета вещей. Подумайте о датчике, который обеспечивает значения широты и долготы, а также коды ошибок.

Конечному пользователю необходимо будет записать тип варианта в двигатель (и/или приложения), написание данных в столбцы айсберга. Вскоре вы также сможете разбить типы вариантов в правильные столбцы паркета для более быстрого анализа, хотя это еще не поддерживается.

Релиз также предлагает несколько новых геометрических типов данных. Варианты геотипа разблокируют много функциональности: геометрия захватывает двухмерные поверхности, и география может использоваться для трехмерных и сферических объектов (этот тип будет доступен позже этим летом).

Геотипы будут доступны только для новых столбцов — вы не можете вернуть тип данных в существующие столбцы, предупредил. Код пользователя также должен быть обновлен, чтобы насладиться новыми типами данных.

Роуда

По словам Спитцера, Row Lineage — еще одна особенность, которая поступила из снежинки и фактически используется во многих функциях снежинки.

Row Lineage предоставляет способ проверить каждую строку таблицы на наличие изменений: когда данные были изменены и что было изменено («Изменить снятие данных»). По сути, строка Lineage позволяет вам проверять изменения ваших данных.

«Это то, что вы просто не могли сделать раньше в таблицах айсберга», — сказал Спитцер. «Мы построили кучу кода, чтобы попытаться приблизиться к этому с помощью просмотров CDC, но вы действительно просто не могли знать наверняка, что случилось с одним рядом и откуда это произошло».

Два новых столбца метаданных захватывают это действие: одно для обновления строки, а другой для последнего снимка, который был обновлен.

Роуда -строка включается автоматически для айсберга V3.

Нулевые значения по умолчанию

NULL, NULL, NULL. Разработчики ненавидят ноль. Нуль повсюду на таблицах айсберга. Проблема заключалась в том, что в айсберге не было никакого значения по умолчанию. Когда дело доходит до времени расчета, как вы математике?

Теперь айсберг предоставляет способ изменить все недостающие значения в установленное значение, прежде чем будут сделаны расчеты.

Таким образом, NULL получает два новых параметра. Один из них является начальным делом. Это будет значение, которое заменит NULL после обновления, в первый раз, когда двигатель скажет таблицу, он заменит Nulls на начальный деф. Идея заключается в том, что вы установите начальный дефект один раз и забываете об этом.

Существует также декорация, которая добавляет в указанном значении, когда в таблице записывается нуль. Это может быть изменено в любое время.

«Причина, по которой есть два разных значения по умолчанию, заключается в том, что в тот момент, когда вы это сделали, и строка уплотняется или перемещается в другой файл, значение, которое раньше было NULL, теперь написано как реальное значение, поэтому вы не можете изменить его во второй раз», — объяснил Спитцер.

За пределами V3: потоковая и низкая задержка

Те, кто обновляется до таблицы Apache Arace V3, понадобится двигатель, соответствующий V3, и некоторым обновлениям потребуются изменения в коде, который работает на айсберге.

Спитцер сказал, что рабочие группы уже запускаются на версии айсберга 4. Предложения по новым функциям распространяются в списке рассылки.

«Мы смотрим на целую кучу вещей, чтобы попытаться сделать айсберг лучшим форматом таблицы для вариантов использования, в которых в настоящее время это не очень хорошо»,-сказал Спитцер в последующем интервью TNS.

К ним относятся маленькие столы и столы с множеством обновлений. Они ищут способы лучше приспособить потоковые приложения, и они хотят снизить задержку в целом. Это включало бы уменьшение количества записей до слоя метаданных.

Apache Polaris тоже приближается к большому релизу

Несмотря на то, что он первоначально разработан в Netflix и впоследствии поддерживается Dremio, Areberg получил немалую помощь снежного снежина-с точки зрения инженерного времени и даже определенных функций, которые снежинка изначально разработала внутренние для своих собственных форматов данных.

В прошлом году Snowflake выпустила в качестве собственного каталога Rest, который он разработал для айсберга, под названием Polaris. Айсберг требует каталога метаданных для централизации управления метаданными, управления и контроля доступа для таблиц айсберга.

Идея состояла в том, чтобы «абстрагировать логику совершения от клиента и получить их в центре центрального сервера», — сказал Спитцер. Каталог часто опирается на базу данных для фактического уровня постоянства. Собственная коммерческая реализация Polaris, открытый каталог, использует FoundationDB.

Выпуск версии Polaris произойдет «скоро», сказал Спитцер. В последнюю минуту вносятся корректировки для производства и гарантии безопасности. У программного обеспечения было много спецификаций снежинки, которые необходимо изменить.

И, конечно, программное обеспечение должно быть масштабируемым.

«Есть люди, которые хотят использовать его для своих собственных внутренних организаций, где 20 транзакций в секунду в каталоге более чем достаточно. Но у нас есть некоторые люди, которые хотят управлять им в качестве услуги, или управлять им для огромной организации, где вам нужно справиться с тысячами транзакций на секунду. Это, вероятно, очень редко, но мы хотим, чтобы это было так, чтобы это было в этом,-сказал он.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Joab Jackson является старшим редактором нового стека, охватывающего облачные нативные вычисления и системы системы. Он сообщил об инфраструктуре и развитии IT более 25 лет, в том числе в IDG и государственных компьютерных новостях. До этого он … читал больше от Джоаба Джексона

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *