В чем разница между ValueVectors Apache Drill и Apache Arrow?

Apache Drill имеет собственное столбцовое представление, такое как Apache Arrow. Но Apache Arrow поддерживает больше языков программирования. Я с нетерпением жду возможности использовать Apache Drill, но все же мне нужна поддержка языка программирования Apache Arrow.

Некоторые источники говорят, что Apache Arrow уходит корнями в ValueVectors Apache Drill.

Drill представляет данные внутри как документы JSON - аналогично MongoDB и Elasticsearch. Эти документы JSON «разбиты» на столбцы, что позволяет Drill обеспечивать повышение производительности столбцовой аналитики, но сохраняет возможность запрашивать сложные данные. Обратите внимание, это внутреннее представление не основано на Apache Arrow. - Источник

Почему Apache Drill не может использовать проект Apache Arrow? Чем внутреннее представление Drill отличается от Apache Arrow и какие преимущества Arrow имеет перед ValueVectors Drill и наоборот.


person JavaTechnical    schedule 29.11.2018    source источник


Ответы (1)


Библиотека Apache Arrow Java началась как ответвление от Drill ValueVectors, поскольку проект Apache Arrow начался в начале 2016 года. Представление памяти почти такое же; одно существенное отличие состоит в том, что Arrow использует 1 бит для обозначения того, является ли векторный слот нулевым, а Drill использует 1 байт. Мы решили изменить это по причинам эффективности памяти и для использования встроенных операций popcount, чтобы проверить, содержит ли пакет значений какие-либо нули.

Обсуждается, следует ли использовать именно представление Стрелки в Apache Drill, но для этого не существует графика. Соответствующая проблема: https://issues.apache.org/jira/browse/DRILL-4455

Apache Arrow был разработан как открытый стандарт с общедоступным API для многих языков программирования. Сейчас у нас есть некоторый уровень поддержки 11 языков программирования либо через собственные реализации, либо через привязки. Сюда входят C, C ++, C #, Go, Java, JavaScript, MATLAB, Python, R, Ruby и Rust.

Мне неизвестен какой-либо анализ производительности, сравнивающий представления памяти, но разница, связанная с нулевым представлением, вряд ли вызовет значительную разницу.

person Wes McKinney    schedule 30.11.2018