Установка
dbc:
dbc для chDB имеет версию 26.7.0. Чтобы проверить доступные версии, выполните:
chdb с помощью менеджера драйверов ADBC.
Поддерживаются Linux и macOS на архитектурах x86-64 и arm64.
Подключение из Python
dbc, по имени:
Жизненный цикл подключений
- Все одновременно открытые ADBC-подключения в одном процессе должны указывать на один и тот же путь к хранилищу.
- Поддерживается несколько подключений к этому пути, в том числе одновременно используемых из разных потоков. Для параллельных запросов используйте отдельное подключение для каждого воркера, а не выполняйте одновременные операции через одно подключение.
- При закрытии последнего подключения встроенный движок завершает работу. Последующее подключение может снова запустить его, в том числе с другим путём к хранилищу, однако повторные остановка и запуск требуют времени и памяти. Для повторяющихся операций держите открытым хотя бы одно подключение.
- Один каталог на диске может быть одновременно открыт только одним процессом операционной системы. Используйте отдельный каталог для каждого процесса или базу данных в памяти.
Использование ADBC с пакетом Python chDB
dbc устанавливает автономный нативный драйвер ADBC. Он отличается от нативной библиотеки, которую загружает пакет Python chdb.
В рамках одного процесса Python не следует ожидать, что ADBC-подключение, загруженное через dbc, и обычное подключение chdb будут совместно использовать таблицы в памяти или состояние движка. Для одного пути к базе данных одновременно используйте либо драйвер ADBC, либо API Python chdb; не держите оба подключения открытыми для одного пути на диске. Чтобы перенести данные между двумя API, перед открытием подключений с другой стороны закройте все подключения с первой либо явно передайте данные через Arrow или файлы.
Реализованные возможности
Not yet обозначает возможность драйвера ADBC, которая может быть добавлена позднее. Not applicable обозначает возможность, неприменимую к текущей модели выполнения chDB или ClickHouse.
База данных
Подключение
Оператор
Массовая ингестия поддерживает режимы
create, append, create_append и replace в базу данных по умолчанию или указанную базу данных.
ClickHouse SQL и поведение типов
- Столбцы не допускают NULL, если не объявлены как
Nullable(...). Типизированное значение NULL, привязанное к обычному столбцуString, сохраняется как пустая строка, а не как NULL. - Используйте правила экранирования идентификаторов ClickHouse; в примерах используются обратные кавычки.
- Базы данных ClickHouse сопоставляются с
db_schemaв ADBC. Над ними нет уровня каталога, поэтому операции на уровне каталога неприменимы. Decimalне поддерживает отрицательные масштабы, аDate32охватывает диапазон от 1900-01-01 до 2299-12-31.DateTime64без часового пояса интерпретируется в часовом поясе движка.- Текущий вывод ClickHouse Arrow не поддерживает тип
Time, поэтому его нельзя считать обратно через ADBC.
Бинарные данные хранятся как
String и считываются обратно как UTF-8. Поэтому полезные нагрузки, не являющиеся допустимым UTF-8, не поддерживаются как значения binary с сохранением при записи и последующем чтении.
Примеры
Массовая ингестия данных из Arrow
Параметры
C
dbc install chdb менеджер драйверов C сможет найти драйвер по имени:
Проверка драйвера
- набор тестов на соответствие Apache Arrow ADBC, проверяющий контракт C
- набор проверок ADBC Driver Foundry, проверяющий поведение на уровне SQL, преобразование типов в обоих направлениях, метаданные и массовую ингестию