TODO
Convertissez les informations du tableau en CSV et envoyez le fichier vers GCS une fois la planification définie dans BigQuery terminée.
Exemple: Définissez "exemple-1"
Lorsque la gâchette s'enflamme Reportez-vous au tableau BQ dans GCS Placer un script pour envoyer le CSV
REQUIREMENTS.TXT
décrit les modules nécessaires, etc.
Décrivez ce qui fonctionne réellement avec MAIN.PY
Le contenu de la mise en œuvre est tel que "Envoyer les informations de la table d'hier à GCS sur BQ"
#Qu'est-ce qui est installé avec pip
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()
Enfin, entrez "export_table" comme fonction d'exécution
Une "planification" est fournie comme l'une des fonctions de BigQuery, alors utilisez-la.
Entrez une requête valide et commencez par créer une nouvelle planification pour elle
En définissant "exemple-1" dans l'entrée Pub / Sub en bas, Le déclencheur se déclenchera lorsque la table sera créée.
Avec ce qui précède, une fois la planification définie dans BigQuery terminée, les informations du tableau seront converties au format CSV et le fichier sera envoyé à GCS.
Lors de la migration du serveur sur site de Rundeck vers le cloud Le compte de service a été changé et l'autorisation d'exécution GS n'a pas été accordée. Le contenu lui-même est tel que "Générer une table qui est complétée dans BQ" et "Envoyer les données du tableau à GCS" Comme il s'agissait d'une utilisation des fonctions à petite échelle, j'ai décidé de la compléter avec GCP.
Ce n'est pas un gros problème, alors je vais laisser un mémo implémenté ici.
Recommended Posts