Перейти к основному содержанию
В этом руководстве мы начнем работу с версией chDB для Python. Сначала мы выполним запрос к JSON‑файлу в S3, затем создадим в chDB таблицу на основе этого JSON‑файла и выполним несколько запросов к данным. Мы также посмотрим, как получать результаты запросов в разных форматах, включая Apache Arrow и Pandas, а в конце научимся выполнять запросы к DataFrame из Pandas.

Подготовка

Сначала создадим виртуальное окружение:
А теперь установим chDB. Убедитесь, что у вас установлена версия 2.0.3 или выше:
Теперь установим ipython:
Мы будем использовать ipython для выполнения команд в оставшейся части этого руководства. Запустить его можно так:
В этом руководстве мы также будем использовать Pandas и Apache Arrow, поэтому установим и эти библиотеки:

Запрос к JSON‑файлу в S3

Теперь давайте посмотрим, как выполнить запрос к JSON‑файлу, который хранится в S3 бакете. Датасет YouTube dislikes содержит более 4 миллиардов строк с дизлайками видео на YouTube по состоянию на 2021 год. Мы будем работать с одним из JSON‑файлов из этого датасета. Импортируйте chdb:
Мы можем выполнить следующий запрос, чтобы описать структуру одного из JSON‑файлов:
Можно также подсчитать количество строк в этом файле:
Этот файл содержит чуть более 300 000 записей. chdb пока не поддерживает передачу параметров запроса, но мы можем извлечь path и передать его через f-строку.
Это допустимо делать с переменными, определёнными в вашей программе, но не делайте этого с пользовательским вводом, иначе ваш запрос будет уязвим для SQL-инъекций.

Настройка выходного формата

По умолчанию используется выходной формат CSV, но его можно изменить с помощью параметра output_format. chDB поддерживает форматы данных ClickHouse, а также некоторые собственные, включая DataFrame, который возвращает объект Pandas DataFrame:
Или, если нужно снова получить таблицу Apache Arrow:

Создание таблицы из JSON‑файла

Далее рассмотрим, как создать таблицу в chDB. Для этого нужно использовать другой API, поэтому сначала импортируем его:
Далее инициализируем сеанс. Если нужно сохранять сеанс на диске, укажите имя каталога. Если оставить его пустым, база данных будет храниться в памяти и исчезнет, как только процесс Python будет завершён.
Далее создадим базу данных:
Теперь мы можем создать таблицу dislikes на основе схемы из JSON‑файла, используя подход CREATE...EMPTY AS. Мы будем использовать настройку schema_inference_make_columns_nullable, чтобы не все типы столбцов становились Nullable.
Затем можно использовать оператор DESCRIBE, чтобы посмотреть схему:
Далее заполним эту таблицу:
Мы также можем выполнить оба этих шага сразу, используя конструкцию CREATE...AS. Давайте создадим другую таблицу с помощью этой конструкции:

Запрос к таблице

Наконец, выполним запрос к таблице:
Допустим, затем мы добавим в DataFrame дополнительный столбец, чтобы вычислить соотношение лайков и дизлайков. Можно написать следующий код:

Запросы к DataFrame Pandas

Затем можно выполнять запросы к этому DataFrame из chDB:
Вы также можете подробнее узнать о выполнении запросов к DataFrame в Pandas в руководстве для разработчиков «Выполнение запросов к DataFrame в Pandas».

Следующие шаги

Надеемся, это руководство дало вам хорошее представление о chDB. Чтобы узнать больше о его использовании, см. следующие руководства для разработчиков:
Последнее изменение 2 июля 2026 г.