Чтение данных из GCS и загрузка в ОБЛАЧНЫЙ SQL

#python #google-cloud-platform #google-cloud-storage #google-cloud-sql

#python #google-облачная платформа #google-облачное хранилище #google-cloud-sql

Вопрос:

Я новичок в GCP, а также в Python.

Я пытаюсь прочитать csv-файлы, которые присутствуют в облачном хранилище Google, и записать данные в облачную таблицу sql с помощью Python.Кто-нибудь может помочь в этом.Любая помощь будет оценена.

Заранее спасибо

Ответ №1:

Вы не должны читать и загружать данные, если у вас нет обновления / очистки для выполнения с данными. Вы можете использовать облачный SQL для загрузки CSV из облачного хранилища. Он также работает с PostgreSQL (измените для этого сверху на странице)

Вам нужен пример кода для вызова REST API на Python? (сегодня это довольно просто, но, возможно, безопасность может вас раздражать!)

Комментарии:

1. На самом деле мне нужно выполнить некоторую операцию преобразования, поэтому я хочу использовать python в облачных функциях, чтобы он мог выполнять etl из облачного хранилища в облачный sql

2. Понятно. Каков максимальный размер вашего CSV-файла?

3. Размер будет составлять несколько МБ

Ответ №2:

Мне нравится использовать google-cloud-storage при работе с GCS. Пакет по сути является оболочкой для API GCloud.

Вот как вы можете использовать эту библиотеку:

 from google.cloud import storage

# create the client
path_to_service_account = "path/foo.json"
client = storage.Client.from_service_account_json(path_to_service_account)

# get the bucket
bucket_name = "my-bucket"
bucket = client.lookup_bucket(bucket_name)

# loop through the bucket to get the resource you want
for resource in bucket.list_blobs(prefix="dir-name/"):
    # file type doesn't need to be a csv...
    if resource.endswith("my_file.csv"):
        my_blob = bucket.get_blob(resource)
        my_blob_name = resource.split("/")[-1]
        my_blob.download_to_filename(os.path.join("save-dir", my_blob_name))

# finally, load the file from local storage:
...

  

Комментарии:

1. Вы можете. Но нет необходимости проходить аутентификацию с помощью json. Просто запустите клиент с помощью client = storage.Client()