Движок таблиц 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_configuration
ClickHouse, описанного здесь