Monday, March 27, 2023

Berichte in BigQuery planen - Google Analytics-Hilfe [gg-analytics-de]

Berichte in BigQuery planen

Ein häufiger Anwendungsfall für den GA360-BigQuery-Export ist das Planen eines Jobs zum Erstellen einer Reihe von (flachen) aggregierten Tabellen. Diese Tabellen sind für Benutzer aufgrund ihrer geringeren Größe und Komplexität im Vergleich zur Haupttabelle oft einfacher zu verwenden.

Dieser Leitfaden bietet eine Beispielmethode zum regelmäßigen Planen einer Abfrage und zum Erstellen einer Tabelle mit der Ausgabe in Google BigQuery . In diesem Dokument wird der Prozess zum Einrichten einer Lösung mit einer virtuellen GCP-Maschine beschrieben. In der Praxis wäre es auf Wunsch auch möglich, eine Lösung auf einer lokalen Maschine zu implementieren.

Beachten Sie, dass beim Erstellen einer virtuellen Maschine Kosten in der Google Cloud Platform anfallen . Auch alle geplanten Abfragen und gespeicherten Tabellen verursachen BigQuery-Kosten . Wenn Sie ein GA360-Kunde sind, haben Sie möglicherweise einen Gutschein zur Deckung einiger Cloud-Kosten. Beachten Sie, dass dieser Gutschein BigQuery-Abfrage- und Speicherkosten von bis zu 500 $ pro Monat abdeckt, aber nicht für Kosten für virtuelle Maschinen gilt. Möglicherweise möchten Sie eine kleine VM auswählen, um die Kosten zu minimieren.

Richten Sie die virtuelle Maschine ein

Stellen Sie beim Erstellen einer virtuellen Maschine sicher, dass Sie das Kontrollkästchen Vollständigen Zugriff auf alle Cloud-APIs zulassen aktiviert haben.

Richten Sie grundlegende Bibliotheken ein

Holen Sie sich Pip und installieren Sie einige grundlegende Bibliotheken

username@project-vm-us:~$ sudo easy_install pip
username@project-vm-us:~$ sudo pip install --upgrade-Anforderungen
username@project-vm-us:~$ sudo pip install --upgrade httplib2
username@project-vm-us:~$ sudo pip install --upgrade google-api-python-client --ignore-installed six
username@project-vm-us:~$ sudo pip install --upgrade google-cloud-bigquery

Ordner erstellen

Verbinden Sie sich per SSH mit Ihrer virtuellen Maschine und erstellen Sie ein Verzeichnis, in dem Sie arbeiten können.
username@project-vm-us:~$ mkdir Zeitplanabfrage

Autorisieren

In jedem Fall müssen Sie sicherstellen, dass das Dienstkonto für das Projekt Zugriff auf alle Datasets hat, die Sie abfragen möchten.
Die folgenden Schritte sind optional , wenn Sie Vollständigen Zugriff auf alle Cloud-APIs während der API-Erstellung zulassen aktiviert haben. Dennoch demonstrieren sie, wie eine manuelle Authentifizierung erreicht werden kann.
  1. Erstellen Sie eine Authentifizierungsdatei für die APIs
    username@project-vm-us:~$ nano auth.py

    Der Inhalt der Datei sollte wie folgt sein:

    auth.py
    #!/usr/bin/python2.7
    '''Handhabt Anmeldeinformationen und Autorisierung.
    Dieses Modul wird von den Beispielskripten verwendet, um Anmeldeinformationen zu verarbeiten und
    autorisierte Kunden generieren. Das Modul kann auch direkt ausgeführt werden
    um den HTTP-Autorisierungsheader zur Verwendung in curl-Befehlen auszudrucken.
    Betrieb:
    python auth.py
    druckt den Header auf stdout.
    '''
    Importieren Sie httplib2

    importiere google.auth
    aus google.auth.transport.requests import AuthorizedSession

    def get_creds():
    Anmeldeinformationen, Projekt = google.auth.default()
    wenn nicht Credentials.Token:
    authed_session = AuthorizedSession (Anmeldeinformationen)
    Anmeldedaten.refresh(google.auth.transport.requests.Request())
    Anmeldeinformationen zurückgeben

    def print_creds (Anmeldeinformationen):
    '''Druckt den Autorisierungs-Header zur Verwendung in HTTP-Anforderungen.'''
    print 'Autorisierung: Träger %s' % (credentials.token,)

    def main():
    print_creds(get_creds())

    if __name__ == "__main__":
    hauptsächlich()
  2. Führen Sie das Authentifizierungsskript aus
    username@project-vm-us:~$ python auth.py

Abfrageskript erstellen

Erstellen Sie das folgende Python-Skript namens run-query.py , um die Abfrage auszuführen, und speichern Sie sie in einer permanenten Tabelle.
aus google.cloud import bigquery
Importzeit

def warten_auf_job(job):
während wahr:
job.reload() # Aktualisiert den Status über eine GET-Anfrage.
if job.state == 'FERTIG':
if job.error_result:
RuntimeError(job.error_result) auslösen
zurückkehren
time.sleep(10)

def example_query():
query_id = str(int(time.time()))
print 'Beispiel-Abfrage-Abfrage mit ID starten: ' + query_id
client = bigquery.Client()
Abfrage = """\
FRAGE HIER EINFÜGEN
"""
dataset = client.dataset('datasetName')
table = dataset.table(name='destination_table_name')
job = client.run_async_query('your-job-name-' + query_id, query)
job.destination = Tabelle
job.write_disposition = 'WRITE_TRUNCATE'
job.begin()
warten_auf_job(job)

if __name__ == '__main__':
example_query()

Erstellen Sie ein Skript, um die Abfrage auszuführen

Erstellen Sie ein Shell-Skript namens run-query.sh , um die Abfrage auszuführen und Fehler/Protokolle in eine Datei auszugeben.
#!/bin/sch
python /home/username/schedule-query/run-query.py >> /home/username/schedule-query/log.txt 2>&1

Planen Sie die Abfrage

Öffnen Sie crontab, um einen Cron-Job einzurichten, der das Shell-Skript zum gewünschten Zeitpunkt ausführt:
username@project-vm-us:~$ crontab -e


Hier ist ein Beispiel für eine Crontab, um ein Skript jeden Tag um 19.05 Uhr auszuführen.

# Befehl mh dom mon dow
05 19 * * * sh /home/username/schedule-query/run-query.sh

No comments:

Post a Comment