Руководство по доступу к файлу Excel с несколькими листами из хранилища BLOB-объектов Azure с помощью Python.

В сегодняшнем блоге я расскажу, как мы можем загрузить файл Excel с несколькими листами из хранилища BLOB-объектов Azure. Вы можете проверить его репозиторий GitHub здесь.

Доступ к такому файлу на платформе Azure очень прост, но что, если мы хотим загрузить этот файл в нашу локальную систему или в любое другое хранилище? Мы можем добиться этого, используя любой язык программирования, но здесь я буду говорить конкретно о Python. Python предоставляет специальную библиотеку для доступа к службам Azure с помощью такого кода, как azure.storage.blob.

Для доступа к файлу Excel с несколькими листами существует специальный код, но он не работает с файлом, хранящимся в хранилище BLOB-объектов Azure. Хранилище BLOB-объектов Azure хранит файл в объектном формате, что означает, что когда мы пытаемся получить доступ к файлу, он предоставляет нам свой объект и использует его, чтобы получить доступ к его данным.

В этом блоге я расскажу о следующих моментах:

  1. Краткое введение в хранилище BLOB-объектов Azure
  2. Доступ к листу Excel с помощью Python

1. Краткое введение в хранилище BLOB-объектов Azure

Azure — это облачная платформа, которая предоставляет пользователю множество сервисов облачных вычислений. Одной из таких служб является хранилище BLOB-объектов Azure.

Облачная платформа Azure – это более 200 продуктов и облачных сервисов, призванных помочь вам воплотить в жизнь новые решения, решить сегодняшние задачи и создать будущее. Создавайте, запускайте и управляйте приложениями в нескольких облаках, локально и на периферии с помощью инструментов и платформ по вашему выбору. [1]

Хранилище BLOB-объектов Azure [2] — это служба хранения, в которой хранятся огромные объемы данных с высокой эффективностью и безопасностью. Все фоновые задачи, такие как безопасность, масштабируемость, управление и т. д., будут выполняться хранилищем BLOB-объектов Azure.

Мы можем хранить в большом двоичном объекте данные любого типа, включая текстовые файлы, изображения, аудио и т. д. Эти файлы хранятся в шаблоне больших двоичных объектов, что означает, что хранилище больших двоичных объектов имеет определенный размер больших двоичных объектов. В случае больших файлов файл будет храниться в нескольких больших двоичных объектах, но эта деталь скрыта от пользователя. Для пользователя этот файл кажется только одним файлом (а не несколькими большими двоичными объектами). Чтобы получить быстрый доступ к большому файлу, файл хранится в нескольких больших двоичных объектах, поэтому с помощью параллельных вычислений наша цель может быть достигнута. Чтобы получить больше информации о хранилище BLOB-объектов, перейдите по этой ссылке.

2. Доступ к листу Excel с помощью Python

Код для загрузки файлов Excel для доступа из хранилища BLOB-объектов с использованием Python приведен ниже:

Функция BlobServiceClient используется для создания клиента для службы BLOB-объектов. Этот клиент является объектом для доступа к вашему хранилищу BLOB-объектов. Используя этот клиент, вы можете выполнять различные операции с Blob. Чтобы создать клиент для определенного большого двоичного объекта, нам понадобится connection_string. Эта строка содержит ключ доступа к определенной учетной записи хранилища BLOB-объектов.

После инициализации BlobServiceClient мы можем указать имя контейнера, в котором размещен наш большой двоичный объект, а затем имя большого двоичного объекта, в котором хранится наш файл.

Поэтому у нас должно быть имя нашего соответствующего контейнера и большого двоичного объекта. Получив доступ к определенному хранилищу BLOB-объектов, мы теперь можем получить доступ к нашему файлу. Если упомянутый большой двоичный объект/контейнер еще не существует, azure сама создает новый большой двоичный объект/контейнер с заданным именем.

Теперь идет основная часть, «download_blob». Этот модуль используется для загрузки данных из заданного большого двоичного объекта. В нашем случае данные находятся в файле Excel с несколькими листами. Этот модуль «download_blob» не будет загружать лист Excel в ваше хранилище, вместо этого он получит объект этого файла. Этот объект далее используется для чтения данных в виде файла Excel.

 get_blob_data = pd.ExcelFile(blob_downloader , engine=’openpyxl’)

В приведенной выше строке кода «get_blob_data» создаст указатель на данный файл. «get_blob_data» не будет содержать данные файла. Он содержит всю необходимую информацию, включая все имена листов. Итак, теперь, чтобы получить доступ к данным определенного листа, мы должны прочитать файл Excel с конкретным именем листа.

Мы перечислили все имена листов данного файла Excel, используя get_blob_data.sheet_names.

Чтобы увидеть данные всех листов вместе, я сохранил данные во фрейме данных, используя функцию contact() библиотеки pandas.

all_sheets_data = pd.concat([all_sheets_data , file], axis = 0)

Теперь all_sheets_data будет содержать полные данные со всех листов Excel.

Лист Excel ограничен 100 000 строк, поэтому для хранения большего количества данных мы можем хранить данные на нескольких листах, а затем использовать их.

3. Резюме

В этом блоге я объяснил, как мы можем загружать данные, хранящиеся на нескольких листах файла Excel, которые хранятся в учетной записи хранилища BLOB-объектов Azure.

Спасибо за чтение!

Больше контента на plainenglish.io