Перейти к основному содержанию
Перейти к основному содержанию

Табличная функция azureBlobStorageCluster

Позволяет обрабатывать файлы из Azure Blob Storage параллельно на множестве узлов в указанном кластере. На узле-инициаторе создаётся подключение ко всем узлам кластера, раскрываются звёздочки в пути к файлу S3, и каждый файл динамически распределяется между узлами. Рабочий узел запрашивает у инициатора следующую задачу и обрабатывает её. Это повторяется до тех пор, пока все задачи не будут завершены. Эта табличная функция аналогична функции s3Cluster.

Синтаксис

azureBlobStorageCluster(cluster_name, connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression, structure])

Аргументы

ArgumentDescription
cluster_nameИмя кластера, используемое для построения набора адресов и параметров подключения к удалённым и локальным серверам.
connection_stringstorage_account_urlconnection_string включает имя и ключ учётной записи (Create connection string), либо здесь можно указать URL учётной записи хранилища, а имя и ключ учётной записи передать отдельными параметрами (см. параметры account_name и account_key).
container_nameИмя контейнера.
blobpathПуть к файлу. Поддерживает следующие шаблоны (wildcards) в режиме только для чтения: *, **, ?, {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).
structureСтруктура таблицы. Формат: 'column1_name column1_type, column2_name column2_type, ...'.

Возвращаемое значение

Таблица с указанной структурой для чтения данных из указанного файла или записи данных в него.

Примеры

Аналогично табличному движку AzureBlobStorage пользователи могут использовать эмулятор Azurite для локальной разработки с использованием Azure Storage. Дополнительные сведения см. здесь. Ниже мы предполагаем, что Azurite доступен по имени хоста azurite1.

Подсчитайте количество строк в файле test_cluster_*.csv, используя все узлы кластера cluster_simple:

SELECT count(*) FROM azureBlobStorageCluster(
        'cluster_simple', 'http://azurite1:10000/devstoreaccount1', 'testcontainer', 'test_cluster_count.csv', 'devstoreaccount1',
        'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==', 'CSV',
        'auto', 'key UInt64')

Использование подписей общего доступа (Shared Access Signatures, SAS)

См. примеры в разделе azureBlobStorage.