Ich möchte ein Tool bereitstellen, mit dem Planungsingenieure und Marketingmitarbeiter selbst Daten in BigQuery hochladen können. Es ist für mich schwierig, Excel-Daten selbst in BigQUery hochzuladen. Daher habe ich es so erstellt, dass es mit der GUI betrieben werden kann Es war.
GS: // Bucket-Name (optional) / Dataset-Name / Tabellenname .xlsx
.csv GS: // Bucket-Name (optional) / Dataset-Name / Tabellenname .csv
Erstellen Sie einen Bucket für das Hochladen von Daten
Nehmen Sie die folgenden Einstellungen vor (Details weggelassen)
Python 3.7
Auslösertyp: Cloud Storage
Bucket: GCS-Bucket oben erstellt
GCF
requestments.txt
pandas
pandas-gbq
google-cloud-storage
google-cloud-bigquery
xlrd
main.py
from google.cloud import storage
from google.cloud import bigquery
import pandas as pd
import re
def gsc_to_bigquery_createtable(data, context):
# log
print(data)
print(context)
print('Folder Name : {}'.format(data['name']))
GETPATH = data['name']
m = re.match(
r'(?P<getDatasetId>.*)/(?P<getFileId>.*)\.(?P<getFileType>.*)',
GETPATH)
#Geben Sie den Bucket-Namen und den Projektnamen an
BUCKET = 'Eimername'
PROJECT_ID = 'Projektname'
#Rufen Sie den Datensatznamen ab
DATASET_ID = m.group('getDatasetId')
#Dateinamen abrufen
FILE_ID = m.group('getFileId')
#Kennung abrufen
FILE_TYPE = m.group('getFileType')
TMP_PATH = '/tmp/' + FILE_ID + '.' + FILE_TYPE
#Importieren Sie Daten von GSC nach Python
gcs = storage.Client(PROJECT_ID)
bucket = gcs.get_bucket(BUCKET)
blob = bucket.get_blob(GETPATH)
blob.download_to_filename(TMP_PATH)
#Bedingter Zweig des Bezeichners
if FILE_TYPE == 'xlsx':
df = pd.read_excel(TMP_PATH)
elif FILE_TYPE == 'csv':
df = pd.read_csv(TMP_PATH)
#Erstellen Sie eine Tabelle von Python zu BigQuery
full_table_id = DATASET_ID + '.' + FILE_ID
df.to_gbq(full_table_id, project_id=PROJECT_ID, if_exists='replace')
# log
print('Folder Name : {}'.format(data['name']))
Recommended Posts