Начало работы с chDB
В этом руководстве мы научимся, как запустить Python-версию chDB. Сначала мы будем выполнять запрос к JSON-файлу в S3, затем создадим таблицу в chDB на основе этого JSON-файла и выполним несколько запросов к данным. Мы также увидим, как возвращать данные в различных форматах, включая Apache Arrow и Panda, и в конце мы научимся делать запросы к Pandas DataFrames.
Настройка
Сначала создадим виртуальное окружение:
Теперь установим chDB. Убедитесь, что у вас версия 2.0.3 или выше:
Теперь установим ipython:
Мы будем использовать ipython
для выполнения команд в остальной части руководства, который вы можете запустить, выполнив:
Также нам потребуется Pandas и Apache Arrow, поэтому давайте установим эти библиотеки:
Запрос к JSON файлу в S3
Теперь взглянем на то, как выполнять запрос к JSON-файлу, который хранится в S3 бакете. Набор данных с неприязнью к YouTube содержит более 4 миллиардов строк неприязни к видео на YouTube до 2021 года. Мы будем работать с одним из JSON-файлов из этого набора данных.
Импортируем chdb:
Мы можем выполнить следующий запрос, чтобы описать структуру одного из JSON-файлов:
Мы также можем подсчитать количество строк в этом файле:
Этот файл содержит чуть более 300,000 записей.
chdb еще не поддерживает передачу параметров запроса, но мы можем извлечь путь и передать его через 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, чтобы вычислить соотношение лайков к дизлайкам. Мы можем написать следующий код:
Запрос к Pandas DataFrame
Затем мы можем запросить этот DataFrame из chDB:
Вы также можете прочитать больше о запросах к Pandas DataFrames в руководстве разработчика по запросам Pandas.
Следующие шаги
Надеюсь, это руководство дало вам хорошее представление о chDB. Чтобы узнать больше о том, как его использовать, смотрите следующие руководства для разработчиков: