Движок таблиц AzureBlobStorage
Этот движок предоставляет интеграцию с Azure Blob Storage экосистемой.
Создание таблицы
Параметры движка
- endpoint— URL-адрес конечной точки AzureBlobStorage с контейнером и префиксом. При необходимости может содержать account_name, если используемый метод аутентификации требует этого. (- http://azurite1:{port}/[account_name]{container_name}/{data_prefix}) или эти параметры могут быть предоставлены отдельно с использованием storage_account_url, account_name и container. Для указания префикса следует использовать endpoint.
- endpoint_contains_account_name- Этот флаг используется для указания, содержит ли конечная точка account_name, так как это необходимо только для определенных методов аутентификации. (По умолчанию: true)
- connection_string|storage_account_url— connection_string включает имя аккаунта и ключ (Создайте строку подключения) или вы также можете предоставить URL-адрес учетной записи хранения здесь, а имя аккаунта и ключ аккаунта как отдельные параметры (см. параметры account_name и account_key)
- container_name- Имя контейнера
- blobpath- путь к файлу. Поддерживает следующие подстановочные знаки в режиме только для чтения:- *,- **,- ?,- {abc,def}и- {N..M}, где- N,- M— числа,- 'abc',- 'def'— строки.
- account_name- если используется storage_account_url, то имя аккаунта можно указать здесь
- account_key- если используется storage_account_url, то ключ аккаунта можно указать здесь
- format— формат файла.
- compression— Поддерживаемые значения:- none,- gzip/gz,- brotli/br,- xz/LZMA,- zstd/zst. По умолчанию он будет автоматически определять сжатие по расширению файла. (то же самое, что установка на- auto).
Пример
Пользователи могут использовать эмулятор Azurite для локальной разработки Azure Storage. Дополнительные сведения здесь. Если вы используете локальный экземпляр Azurite, пользователи могут заменить http://localhost:10000 на http://azurite1:10000 в командах ниже, где мы предполагаем, что Azurite доступен на хосте azurite1.
Виртуальные колонки
- _path— Путь к файлу. Тип:- LowCardinality(String).
- _file— Имя файла. Тип:- LowCardinality(String).
- _size— Размер файла в байтах. Тип:- Nullable(UInt64). Если размер неизвестен, значение равно- NULL.
- _time— Время последнего изменения файла. Тип:- Nullable(DateTime). Если время неизвестно, значение равно- NULL.
Аутентификация
В настоящее время есть 3 способа аутентификации:
- Managed Identity- Может быть использован, предоставив- endpoint,- connection_stringили- storage_account_url.
- SAS Token- Может быть использован, предоставив- endpoint,- connection_stringили- storage_account_url. Он идентифицируется по наличию '?' в url. См. azureBlobStorage для примеров.
- Workload Identity- Может быть использован, предоставив- endpointили- storage_account_url. Если параметр- use_workload_identityустановлен в конфигурации, (workload identity) используется для аутентификации.
Кэш данных
Движок таблиц Azure поддерживает кэширование данных на локальном диске. См. параметры конфигурации кэша файловой системы и использование в этом разделе. Кэширование выполняется в зависимости от пути и ETag объекта хранения, поэтому ClickHouse не будет читать устаревшую версию кэша.
Чтобы включить кэширование, используйте настройку filesystem_cache_name = '<name>' и enable_filesystem_cache = 1.
- добавьте следующий раздел в файл конфигурации ClickHouse:
- повторно используйте конфигурацию кэша (и, следовательно, хранилище кэша) из раздела конфигурации storage_configurationClickHouse, описанного здесь
