Как читать данные в облачном хранилище данных с помощью облачных функций - PullRequest
0 голосов
/ 07 августа 2020

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

У меня было несколько попыток получить доступ к облачному хранилищу, но безуспешно, раньше я разрабатывал нечто подобное в google colab, читая эти схемы из каталога на диске, но теперь все кажется совсем другим.

Может кто-нибудь помочь я?

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Вы можете проверить потоковую передачу данных из облачного хранилища в BigQuery с помощью облачных функций руководство по решению GCP.

Если вам нужен другой подход, вы можете обратиться к руководству по загружаемым объектам на GCP выполните c, чтобы получить данные из GCS, см. пример кода ниже.

from google.cloud import storage


def download_blob(bucket_name, source_blob_name, destination_file_name):
"""Downloads a blob from the bucket."""
# bucket_name = "your-bucket-name"
# source_blob_name = "storage-object-name"
# destination_file_name = "local/path/to/file"

storage_client = storage.Client()

bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)
blob.download_to_filename(destination_file_name)

print(
    "Blob {} downloaded to {}.".format(
        source_blob_name, destination_file_name
    )
)
1 голос
/ 07 августа 2020

Вы можете создать облачную функцию и прочитать данные загрузки из файла в облачном хранилище

def loader(event, context):
    """Triggered by a change to a Cloud Storage bucket.
    Args:
         event (dict): Event payload.
         context (google.cloud.functions.Context): Metadata for the event.
    """
    try:
        file_name = event['name']
        bucket_name = event['bucket']

        client = storage.Client()

        bucket = client.get_bucket(bucket_name)
        file_blob = storage.Blob(file_name, bucket)
        data = file_blob.download_as_string().decode()

Получив данные, вы можете создать таблицу в BigQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...