TODO
Konvertieren Sie nach Abschluss des in BigQuery festgelegten Zeitplans die Tabelleninformationen in CSV und senden Sie die Datei an GCS.
Beispiel: Setzen Sie "Beispiel-1"
Wenn sich der Auslöser entzündet Siehe die BQ-Tabelle in GCS Platzieren Sie ein Skript zum Senden von CSV
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
Als eine der Funktionen von BigQuery wird ein "Zeitplan" bereitgestellt. Verwenden Sie ihn daher.
Geben Sie eine gültige Abfrage ein und erstellen Sie zunächst einen neuen Zeitplan dafür
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.
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