В этом руководстве мы начнем работу с версией chDB для Python.
Сначала мы выполним запрос к JSON‑файлу в S3, затем создадим в chDB таблицу на основе этого JSON‑файла и выполним несколько запросов к данным.
Мы также посмотрим, как получать результаты запросов в разных форматах, включая Apache Arrow и Pandas, а в конце научимся выполнять запросы к DataFrame из Pandas.
Сначала создадим виртуальное окружение:
А теперь установим chDB.
Убедитесь, что у вас установлена версия 2.0.3 или выше:
Теперь установим ipython:
Мы будем использовать ipython для выполнения команд в оставшейся части этого руководства. Запустить его можно так:
В этом руководстве мы также будем использовать Pandas и Apache Arrow, поэтому установим и эти библиотеки:
Теперь давайте посмотрим, как выполнить запрос к 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 г.