В чем разница между значениями Apache Drill ValueVectors и Apache Arrow? - PullRequest
0 голосов
/ 29 ноября 2018

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 по сравнению с Drill ValueVectors и наоборот.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Сообщество Drill рассматривает возможность перехода на Apache Arrow.Пожалуйста, обратите внимание на следующие билеты: https://issues.apache.org/jira/browse/ARROW-3164
https://issues.apache.org/jira/browse/DRILL-4455

Но сейчас оно приостановлено, поскольку в обоих проектах было много изменений и улучшений.Таким образом, существуют некоторые различия в терминологии, нотации метаданных, типах данных, расположении данных.
Вы можете ответить на эту тему в списке рассылки Dr Dev, чтобы обсудить его дополнительно: https://lists.apache.org/thread.html/8d895fb40702f3120532f15594ea935a818ac0eb5acdb4fd1248d89f@%3Cdev.drill.apache.org%3E
Также вкладыочень приветствуется:)

0 голосов
/ 30 ноября 2018

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

Обсуждается, следует ли использовать представление Arrow в 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.

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

...