В то время как Google Cloud Storage, Amazon S3 и Azure Blob упрощают создание корзин и загрузку в них файлов с помощью их простых в использовании интерфейсов, эта статья представляет собой пошаговый подход для начинающих о том, как легко загружать данные в Google Cloud Storage с помощью питон.

Стоит отметить, что при построении пайплайна вы, скорее всего, захотите автоматизировать рабочий процесс, графические пользовательские интерфейсы не самые лучшие.

Эта статья разделена на следующие разделы:

💡Введение в облачное хранилище

💡Функции и емкость облачного хранилища

💡Обязательное условие

💡Как создать корзину в облачном хранилище

💡Как загрузить файлы в корзину облачного хранилища

💡 Заключение

Введение в облачное хранилище Google

Облачное хранилище Google — это веб-служба онлайн-хранилища файлов RESTful для хранения и доступа к данным в инфраструктуре Google. Облачное хранилище — это масштабируемое, полностью управляемое, высоконадежное и экономичное хранилище объектов/BLOB-объектов. Теперь давайте рассмотрим некоторые функции и емкость облачного хранилища.

Функциональность и емкость Google Cloud Storage

Проще говоря, это сервис, который позволяет вам хранить и извлекать файлы любого типа и любого размера. GCS для GCP — это то же самое, что S3 для AWS и Azure Blob для Azure. Облачное хранилище Google рассчитано на одиннадцать девяток надежности. Это 99,999999999% долговечности.

Он практически бесконечно масштабируем, да, он может вместить любой размер компании и их данные. Прежде чем мы перейдем к созданию ведра, давайте выясним некоторые предварительные условия, которые вам понадобятся.

Предпосылка

  • Базовые знания питона
  • Учетная запись в Google Cloud Platform (достаточно вашей учетной записи gmail)
  • Сервисный аккаунт с орнерным доступом. Подождите 5 минут, чтобы заполнить.
  • Создайте и загрузите ключ, который представляет собой файл json (поместите файл в ту же папку, что и ваши основные файлы python).

Как создать корзину в облачном хранилище

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

По этой причине предпочтительнее создавать корзину с использованием любого из поддерживаемых языков программирования или terraform.

Структура проекта

Здесь у нас есть папка cloud_storage с четырьмя другими папками в ней. Я использовал .gitignore для указания файлов, которые не хотел бы помещать в свой репозиторий. Это хорошая практика, поскольку у меня есть файл аутентификации GCP.

Load_file.py содержит функцию, которую я использовал для загрузки набора данных/объекта. В main.py находится функция, которую я использовал для создания корзины в облачном хранилище. Наконец, serviceKeyGoogle.json — это файл, который я скачал, когда создавал учетную запись службы в GCP.

📝 Вы можете назвать свой файл аутентификации как угодно. Помните, что это уже файл .json

Код Python, который легко создал ведро

import os from google.cloud import storage os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = r"C:\Users\kings\Documents\projects\cloud_storage\serviceKeyGoogle.json" def create_bucket_class_location(bucket_name): """ Create a new bucket in the US region with the coldline storage class """ # bucket_name = "your-new-bucket-name" storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) bucket.storage_class = "COLDLINE" new_bucket = storage_client.create_bucket(bucket, location="us") print( "Created bucket {} in {} with storage class {}".format( new_bucket.name, new_bucket.location, new_bucket.storage_class ) ) return new_bucket create_bucket_class_location('ebay-products-prices') create_bucket_class_location('my-ebay-laptop-prices')

Код Пояснение

Здесь я импортировал os, который позволяет мне ссылаться на путь к файлу учетных данных Google, а затем из google.cloud импортировать класс хранилища для создания корзины и хранения в ней объекта.

Фрагмент кода — это простая функция, которая принимает на вход имя корзины. В нем я создал экземпляр класса Client в хранилище, сохранил его в переменной storage_client, а затем метод ведра, который принимает имя ведра name_name. Сохранил это в переменной с именем Bucket.

Это позволяет мне связать класс storage_class как «COLDLINE». Затем я вызвал метод create_bucket в storage_client. Этот метод берет корзину и регион и сохраняет их в переменной new_bucket.

Далее следует напечатать имя корзины, регион и класс хранилища. Наконец, верните файл new_bucket.

В последних двух строках кода я вызывал функции, которые создавали два разных сегмента.

В этом важность функции, возможности повторного использования кода.

📝 Структура функций, использованная при создании корзины, взята из официальной Документации Google CloudStorage. Я не могу не упомянуть, насколько важна официальная документация. Это единственный источник истины. Любая другая информация, которая у вас есть, является просто произведением искусства и творчества.

Как загрузить файлы в корзину облачного хранилища

Я перейду сразу к объяснению фрагмента кода.

from google.cloud import storage import os os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = r"C:\Users\kings\Documents\projects\cloud_storage\serviceKeyGoogle.json" def upload_blob(bucket_name, source_file_name, destination_blob_name): """Uploads a file to the bucket.""" # The ID of your GCS bucket # bucket_name = "your-bucket-name" # The path to your file to upload # source_file_name = "local/path/to/file" # The ID of your GCS object # destination_blob_name = "storage-object-name" storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) blob = bucket.blob(destination_blob_name) blob.upload_from_filename(source_file_name) print( f"File {source_file_name} uploaded to {destination_blob_name}." ) source_file_name = "../ebay_prices/ebay_laptops.csv" bucket_name = "my-ebay-laptop-prices" destination_blob_name = "my_ebay_laptops.csv" upload_blob(bucket_name, source_file_name, destination_blob_name)

Код Пояснение

Опять же, это функция, которая принимает имя корзины, исходный файл и имя назначения. Это означает, что вы можете дать имени файла в корзине имя, отличное от имени, которое изначально было на вашем локальном компьютере.

Перед вызовом функции я сначала создал переменную, содержащую три аргумента, и выводом является код ниже.

Набор данных, который я использовал, был таким же, который я удалил с ebay.co.uk, и вы можете найти мою статью о том, как я удалил данные здесь. Опять же, функция, которая привела в действие эту загрузку, была взята из документации GCP.

Заключение

В этой статье вы узнали, что такое облачное хранилище Google, как создавать сегменты в облачном хранилище с помощью python и как легко загружать данные в облачное хранилище Google с помощью python. Следующая часть этого проекта посвящена изучению другой важной функции Google Cloud Storage, а именно извлечению данных с помощью Python и их загрузке в Google Bigquery.

Первоначально опубликовано на https://blog.dekings.dev 16 октября 2022 г.