Как запрашивать данные в бакете 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.