Перейти к основному содержимому
Перейти к основному содержимому

Как выполнять запросы к данным в ведре S3

Много данных мира находится в ведрах Amazon S3.
В этом руководстве мы узнаем, как выполнять запросы к этим данным с помощью chDB.

Настройка

Сначала создадим виртуальное окружение:

Теперь установим chDB.
Убедитесь, что у вас версия 2.0.2 или выше:

Теперь мы установим IPython:

Мы будем использовать ipython для выполнения команд в остальной части руководства, который можно запустить, выполнив:

Вы также можете использовать код в Python-скрипте или в вашем любимом блокноте.

Перечисление файлов в ведре S3

Начнем с перечисления всех файлов в ведре S3, содержащем отзывы Amazon.
Для этого мы можем использовать s3 табличную функцию и передать путь к файлу или маске для набора файлов.

подсказка

Если вы передадите только имя ведра, будет выброшено исключение.

Мы также будем использовать One входной формат, чтобы файл не разбирался, а возвращалась одна строка на файл, и мы могли получить доступ к файлу через виртуальный столбец _file, а к пути через виртуальный столбец _path.

Это ведро содержит только файлы формата Parquet.

Запрос файлов в ведре S3

Теперь давайте узнаем, как выполнять запросы к этим файлам.
Если мы хотим подсчитать количество строк в каждом из этих файлов, мы можем выполнить следующий запрос:

Мы также можем передать HTTP URI для ведра S3 и получить те же результаты:

Давайте посмотрим на схему этих файлов Parquet, используя оператор DESCRIBE:

Теперь давайте вычислим топовые категории продуктов на основе количества отзывов, а также вычислим средний рейтинг:

Запрос файлов в частном ведре S3

Если мы запрашиваем файлы в частном ведре S3, нам нужно передать ключ доступа и секрет.
Мы можем передать эти учетные данные в s3 табличную функцию:

примечание

Этот запрос не будет работать, потому что это публичное ведро!

Альтернативный способ - использовать именованные коллекции, но этот подход еще не поддерживается chDB.