[PYTHON] [memo] Senden Sie Tabelleninformationen mit BigQuery Schedule und Cloud-Funktionen an GCS

TODO

Konvertieren Sie nach Abschluss des in BigQuery festgelegten Zeitplans die Tabelleninformationen in CSV und senden Sie die Datei an GCS.

Implementierung der von Pub / Sub ausgelösten Übertragungsverarbeitung für Cloud-Funktionen

Pub / Sub-Einstellungen

PUBSUB.png
  1. Geben Sie die Themen-ID ein, die Cloud-Funktionen auslöst

Beispiel: Setzen Sie "Beispiel-1"

Einstellungen für Cloud-Funktionen

FUNK1.png

Wenn sich der Auslöser entzündet Siehe die BQ-Tabelle in GCS Platzieren Sie ein Skript zum Senden von CSV

  1. Setzen Sie den Trigger in "Cloud Pub / Sub" Wählen Sie oben "Beispiel-1"
  2. Ich mag die Sprache, diesmal Inline-Implementierung in Python

REQUIREMENTS.TXT beschreibt notwendige Module etc. Beschreiben Sie, was mit MAIN.PY tatsächlich funktioniert

Der Implementierungsinhalt lautet wie "Senden Sie die gestrigen Tabelleninformationen an GCS on BQ".

#Was ist mit pip installiert
google-cloud-bigquery
from google.cloud import bigquery
from datetime import date, timedelta
def export_table(event, context):
    client = bigquery.Client()
    yesterday = date.today() - timedelta(days=1)
    project = "project_name"
    dataset_id = "data_set_name"
    table_id = "table_name_yyyymmdd_" + yesterday.strftime('%Y%m%d')
    destination_uri = "gs://{}/{}".format("dir_name", yesterday.strftime('%Y%m%d')+".csv")
    dataset_ref = client.dataset(dataset_id, project=project)
    table_ref = dataset_ref.table(table_id)
    extract_job = client.extract_table(
    table_ref,
    destination_uri,
    location="US",
    )
    extract_job.result()

Geben Sie abschließend "export_table" als Ausführungsfunktion ein

Planen Sie mit BigQuery

Als eine der Funktionen von BigQuery wird ein "Zeitplan" bereitgestellt. Verwenden Sie ihn daher.

BQ1.png

Geben Sie eine gültige Abfrage ein und erstellen Sie zunächst einen neuen Zeitplan dafür

BQ2.png

Durch Setzen von "Beispiel-1" in der Pub / Sub-Eingabe unten Der Trigger wird ausgelöst, wenn die Tabelle erstellt wird.

Nach Abschluss des in BigQuery festgelegten Zeitplans werden die Tabelleninformationen in CSV konvertiert und die Datei an GCS gesendet.

Nachwort

Bei der Migration des lokalen Servers von Rundeck in die Cloud Das Dienstkonto wurde gewechselt und die GS-Ausführungsberechtigung wurde nicht erteilt. Der Inhalt selbst lautet wie "Generieren einer Tabelle, die in BQ abgeschlossen ist" und "Senden der Tabellendaten an GCS". Da es sich um eine relativ kleine Verwendung von Funktionen handelte, habe ich beschlossen, sie mit GCP zu vervollständigen.

Es ist keine große Sache, also werde ich hier ein Memo hinterlassen.

Recommended Posts

[memo] Senden Sie Tabelleninformationen mit BigQuery Schedule und Cloud-Funktionen an GCS
Konvertieren Sie eine Tabelle in CSV und laden Sie sie mit Cloud-Funktionen in den Cloud-Speicher hoch
[GCF + Python] So laden Sie Excel in GCS hoch und erstellen eine neue Tabelle in BigQuery
termux × AWS Senden Sie mit IoT Standortinformationen für Smartphones an AWS
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Cloud-Funktionen zum Ändern der Bildgröße mithilfe von OpenCV mit Cloud Storage-Trigger
Vorsichtsmaßnahmen bei der stündlichen Ausgabe an die BigQuery-Tabelle mit Luigi
Laden Sie Dateien mit Django-Speicher in Google Cloud Storages hoch und löschen Sie sie
Stellen Sie mit Python eine Verbindung zu BigQuery her
Extrahieren Sie das Bigquery-Dataset und die Tabellenliste mit Python und geben Sie es in CSV aus
Ich möchte eine externe Bibliothek mit IBM Cloud-Funktionen verwenden
Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
Versuchen Sie, Google Map und Geography Map mit Python anzuzeigen
Laden Sie Dateien in den Cloud Storage (GCS) von GCP hoch. ~ Laden Sie mit lokalem Python