Как ограничить количество элементов в столбце массива и / или общий размер в Афине / Престо? - PullRequest
0 голосов
/ 17 июня 2019

Я просматривал документацию Athena и PrestoDB и не могу найти ссылку на ограничение количества элементов в столбце массива и / или максимальный общий размер.Файлы будут в формате Parquet, но это можно обсудить, если Parquet является ограничивающим фактором.

Это известно?

БОЛЬШЕ КОНТЕКСТА:

Я собираюсь отправить данныев пожарный шланг, который будет передавать файлы Parquet на S3, которые я планирую запросить с помощью Athena.Данные представляют собой сопоставление S3 URI «один-ко-многим» с набором идентификаторов, например,

s3://bucket/key_one, 123
s3://bucket/key_one, 456
....
s3://bucket/key_two, 321
s3://bucket/key_two, 654
...

. Альтернативно, я мог бы хранить в этой форме:

s3://bucket/key_one, [123, 456, ...]
s3://bucket/key_two, [321, 654, ...]

Поскольку Parquet являетсясжатый Я не обеспокоен размером файлов на S3.Об повторяющихся URI следует заботиться при сжатии.

Больше всего беспокоит количество вызовов, которые мне нужно сделать в Firehose для вставки записей.В первом случае есть запись на кортеж (объект, ID), из которых приблизительно 6000 на объект.Есть «пакетный» вызов, но он ограничен 500 записями на пакет, поэтому я бы сделал несколько вызовов.Этот код будет выполняться в лямбда-функции, которую я пытаюсь сохранить, насколько это возможно.

1 Ответ

0 голосов
/ 18 июня 2019

Не должно быть никаких явных ограничений со стороны Presto / Athena для количества элементов в типе столбца массива.В конце концов, это приводит к ограничению JVM, которое будет огромным.Просто убедитесь, что у вас достаточно памяти узла для обработки этих полей.Было бы здорово, если бы вы могли просмотреть свой вариант использования и избежать хранения очень больших значений столбца (типа массива)

...