Как запрашивать данные в bucket S3
Много данных в мире хранится в bucket'ах Amazon S3.
В этом руководстве мы узнаем, как запрашивать эти данные с помощью chDB.
Настройка
Сначала создадим виртуальную среду:
Теперь мы установим chDB.
Убедитесь, что у вас версия 2.0.2 или выше:
Теперь мы установим IPython:
Мы будем использовать ipython
для выполнения команд в остальной части руководства, который можно запустить, выполнив:
Вы также можете использовать код в Python-скрипте или в вашем любимом блокноте.
Список файлов в bucket S3
Давайте начнем с того, чтобы вывести список всех файлов в bucket S3, который содержит отзывы Amazon.
Для этого мы можем использовать s3
функцию таблицы и передать путь к файлу или шаблон для набора файлов.
Если вы передадите только имя bucket, это вызовет исключение.
Мы также будем использовать формат ввода One
, чтобы файл не анализировался, вместо этого будет возвращена одна строка на файл, и мы сможем получить доступ к файлу через виртуальную колонку _file
и путь через виртуальную колонку _path
.
Этот bucket содержит только файлы Parquet.
Запрашиваем файлы в bucket S3
Далее давайте узнаем, как запрашивать эти файлы.
Если мы хотим подсчитать количество строк в каждом из этих файлов, мы можем выполнить следующий запрос:
Мы также можем передать HTTP URI для bucket S3 и получить те же результаты:
Давайте взглянем на схему этих файлов Parquet с использованием оператора DESCRIBE
:
Теперь давайте вычислим топ категории продуктов на основе количества отзывов, а также вычислим средний рейтинг звезд:
Запрашиваем файлы в приватном bucket S3
Если мы запрашиваем файлы в приватном bucket S3, нам нужно передать ключ доступа и секрет.
Мы можем передать эти учетные данные функции таблицы s3
:
Этот запрос не будет работать, потому что это публичный bucket!
Альтернативный способ - использовать именованные коллекции, однако этот подход пока не поддерживается chDB.