Gespeicherte Prozeduren für die tägliche Wartung¶
Einführung¶
Snowflake Connector for Google Analytics Aggregate Data bietet mehrere gespeicherte Prozeduren, mit denen Sie die Datenaufnahme und die Konfiguration der Konnektoren programmgesteuert verwalten können. Im Folgenden finden Sie eine detaillierte Beschreibung der einzelnen gespeicherten Prozeduren, einschließlich deren Verwendung, Parameter und Beispiele.
Konfigurieren eines neuen Berichts¶
Die Prozedur CONFIGURE_REPORT
konfiguriert einen neuen Bericht für die Datenaufnahme von Google Analytics 4 (GA4) in Snowflake. Diese Prozedur verwendet die Parameter des Berichts als Eingabe, einschließlich Dimensionen, Kennzahlen und Datenaufnahme-Zeitplan.
CALL CONFIGURE_REPORT( <report_name>, <property_id>, <dimensions>, <metrics>, <start_date>, <refresh_interval>[, <keep_empty_rows>][, <avoid_sampling>]);
Wobei:
report_name
Eine Zeichenfolge, die den Namen des zu konfigurierenden Berichts angibt. Dieser Name wird als Präfix für die Tabellen mit Rohdaten verwendet, die in der Zieldatenbank erstellt wurden. Nach der erstmaligen Datenaufnahme wird der Berichtsname als Name für die in der Zieldatenbank erstellten Ansichten verwendet. Erforderlich
- Für den Berichtsnamen muss Folgendes gelten:
Er muss entweder mit einem Buchstaben (Groß- oder Kleinbuchstaben) oder einem Unterstrich beginnen,
worauf eines oder mehrere Zeichen folgen, die Buchstaben (Groß- oder Kleinbuchstaben), Ziffern oder Unterstriche sein können,
und er darf höchstens 150 Zeichen lang sein.
property_id
Eine Zeichenfolge, die die ID der Google Analytics 4-Eigenschaft angibt, die für den Bericht verwendet werden soll. Die Eigenschafts-ID ist als Zahl formatiert, die aus dem GA4-Konto ermittelt wird. Stellen Sie sicher, dass die PROPERTY_ID einer GA4-Eigenschaft entspricht, auf die über die Authentifizierungsmethode des Konnektors zugegriffen werden kann (oauth2 oder Dienstkonto). Erforderlich
dimensions
Eine durch Kommas getrennte Liste von GA4-Dimensionen, die in den Bericht aufgenommen werden sollen. Die Dimensionen müssen durch Kommas getrennt werden. Wenn die
date
-Dimension nicht explizit angegeben ist, wird sie automatisch hinzugefügt. Es können maximal neun Dimensionen angegeben werden (einschließlichdate
). ErforderlichBeispiel:
'country,city,deviceCategory,sessions'
metrics
Eine durch Kommas getrennte Liste von GA4-Kennzahlen, die in den Bericht aufgenommen werden sollen. Es ist mindestens eine Kennzahl erforderlich und es sind maximal zehn Kennzahlen zulässig. Erforderlich
Beispiel:
'sessions,pageViews'.
start_date
Eine Zeichenfolge, die das Startdatum des Berichts angibt. Das Datum muss im Format
YYYY-MM-DD
vorliegen. Es werden Daten ab diesem Datum aufgenommen. Erforderlichrefresh_interval
Eine Zeichenfolge, die das Aktualisierungsintervall für den Bericht angibt. Erforderlich. Das Intervall muss eines der folgenden Formate haben:
'EVERY <Anzahl Minuten> MINUTE'
'EVERY <Anzahl Stunden> HOUR'
'EVERY <Anzahl Tage> DAY'
keep_empty_rows
Optional. Der Standardwert ist
false
. Wenn dies auftrue
festgelegt ist, enthält die Ausgabetabelle Datensätze mit Dimensionskombinationen, bei denen alle Kennzahlen null sind. Dies ist nützlich für die Analyse von Dimensionskombinationen ohne Ereignisse.avoid_sampling
Optional. Der Standardwert ist
false
. Wenn dies auftrue
festgelegt ist, kann der Konnektor die Art und Weise anpassen, wie er die Daten von der GA4 API abruft, um zu versuchen, ein Datensampling zu vermeiden. Kann die Datengenauigkeit verbessern, kann jedoch die Häufigkeit von API-Aufrufen erhöhen.Bemerkung
Es gibt keine Garantie, dass kein Sampling der Daten erfolgt. Der Konnektor versucht, das Sampling zu vermeiden, aber dies ist möglicherweise nicht in allen Fällen möglich. Dies ist auf die Einschränkungen der GA4 API zurückzuführen.
Beispiel:
CALL CONFIGURE_REPORT( REPORT_NAME => 'USER_ENGAGEMENT_REPORT', PROPERTY_ID => '123456789', DIMENSIONS => 'country,deviceCategory', METRICS => 'activeUsers,newUsers', START_DATE => '2023-01-01', REFRESH_INTERVAL => 'EVERY 1 DAY', KEEP_EMPTY_ROWS => TRUE, AVOID_SAMPLING => TRUE );
Entfernen des vorhandenen Berichts¶
Die Prozedur DELETE_REPORT
löscht eine bestehende Berichtskonfiguration aus dem Konnektor und stoppt damit jede weitere Datenaufnahme für diesen Bericht. Bereits aufgenommene Daten werden nicht entfernt.
CALL DELETE_REPORT( <report_name> );
Wobei:
report_name
Eine Zeichenfolge, die den Namen des zu löschenden Berichts angibt. Muss mit dem REPORT_NAME übereinstimmen, der in CONFIGURE_REPORT verwendet wird. Erforderlich
Beispiel:
CALL DELETE_REPORT('USER_ENGAGEMENT_REPORT');
Eigenschaften des Google Analytics 4-Kontos auflisten¶
Die Prozedur GET_PROPERTIES
gibt eine Liste aller Google Analytics 4-Eigenschaften zurück, die für die Erfassung durch den Konnektor verfügbar sind.
CALL GET_PROPERTIES();
Beispielausgabe der Prozedur:
{[ { "propertyName": "test1", "propertyId": "1" }, { "propertyName": "test2", "propertyId": "2" }, { "propertyName": "test3", "propertyId": "3" } ]}Bemerkung
Der Konnektor muss über die erforderlichen Berechtigungen für den Zugriff auf die Eigenschaften verfügen. Wenn ein Ergebnis leer ist, überprüfen Sie die Zugriffsrechte in GA4.
Abrufen von Dimensionen und Kennzahlen für GA4-Eigenschaften¶
Die Prozedur GET_DIMENSIONS_AND_METRICS
ruft die Liste der verfügbaren Dimensionen und Kennzahlen für eine angegebene GA4-Eigenschaft ab.
CALL GET_DIMENSIONS_AND_METRICS( <property_id> );
Wobei:
property_id
Eine Zeichenfolge, die die ID der Google Analytics 4-Eigenschaft angibt, die für den Bericht verwendet werden soll. Die Eigenschafts-ID ist als Zahl formatiert, die aus dem GA4-Konto ermittelt wird. Stellen Sie sicher, dass die
property_id
einer GA4-Eigenschaft entspricht, auf die über die Authentifizierungsmethode des Konnektors zugegriffen werden kann (oauth2 oder Dienstkonto). ErforderlichBeispiel:
CALL GET_DIMENSIONS_AND_METRICS('123456789');Beispielausgabe für die Prozedur:
{ "dimensions": [ { "dimension": "achievementId", "category": "Other", "description": "Some description." } ], "metrics": [ { "metric": "active1DayUsers", "category": "User", "description": "Some description." }, { "metric": "active28DayUsers", "category": "User", "description": "Some description." } ] }Bemerkung
Die verfügbaren Dimensionen und Kennzahlen können zwischen den Eigenschaften variieren.
Pausieren des Konnektors¶
Die Prozedur PAUSE_CONNECTOR
hält den Konnektor an und stoppt die gesamte Datenaufnahme und -verarbeitung.
CALL PAUSE_CONNECTOR();Bemerkung
Beim Anhalten des Konnektors wird die Datenaufnahme für alle konfigurierten Berichte angehalten.
Die Datenaufnahme kann mit RESUME_CONNECTOR fortgesetzt werden.
Vorhandene Daten bleiben während des Anhaltens zugänglich.
Fortsetzen des Konnektors¶
Die Prozedur RESUME_CONNECTOR
setzt den Konnektor fort und beginnt mit der gesamten Datenaufnahme und Verarbeitung, die zuvor angehalten wurden. Die Datenaufnahme wird an dem Punkt fortgesetzt, an dem sie unterbrochen wurde.
CALL RESUME_CONNECTOR();
Aufnahme nach Bedarf¶
Die Prozedur INGEST_NOW
plant die Datenaufnahme für den angegebenen Bericht im Konnektor. Diese Prozedur kann verwendet werden, um die Datenaufnahme für einen bestimmten Bericht außerhalb der geplanten Intervalle manuell zu initiieren.
Bemerkung
Die Prozedur plant die sofortige Datenaufnahme für den angegebenen Bericht unter Verwendung von
EXECUTE TASK ...
. Das bedeutet, dass die Datenaufnahme so schnell wie möglich beginnt, aber möglicherweise nicht sofort erfolgt, insbesondere wenn die Datenaufnahme für denselben Bericht bereits ausgeführt wird. Stellen Sie sicher, dass der Konnektor nicht angehalten wurde, bevor Sie diese Prozedur aufrufen.CALL INGEST_NOW('<report_name>');
Wobei:
report_name
Eine Zeichenfolge, die den Namen des aufzunehmenden Berichts angibt. Muss mit dem REPORT_NAME übereinstimmen, der in CONFIGURE_REPORT verwendet wird. Erforderlich
Beispiel:
CALL INGEST_NOW('USER_ENGAGEMENT_REPORT');
Abrufen des aktuellen Status des Konnektors¶
Bemerkung
Die Konnektorbezeichnungen
state
undstatus
werden im Kontext dieses Dokuments austauschbar verwendet. Der Status des Konnektors kann über die ProzedurGET_CONNECTOR_STATUS
abgerufen werden.CALL GET_CONNECTOR_STATUS();Beispielausgabe der Prozedur:
{ "response_code": "OK", "status": "STARTED", "configurationStatus": "PREREQUISITES_DONE" }
Gibt ein JSON-Objekt mit den folgenden Feldern zurück:
response_code
: wenn die Prozedur erfolgreich ausgeführt wurde, wird der Wert OK zurückgegeben. Ein anderer Antwortcode als OK gibt einen Fehler an.status
: Der aktuelle Status des Konnektors. Dieser Status kann sich nur ändern, wenn Sie den Konnektor installieren/neu installieren, pausieren, fortsetzen oder den Konfigurationsprozess abschließen. Kann einen der folgenden Werte haben:CONFIGURING
: Dies ist der Standardstatus, der eingestellt wird, nachdem der Konnektor aus dem Freigabeangebot oder Anwendungspaket installiert wurde. Der Konnektor bleibt in diesem Zustand, bis der Konfigurationsprozess abgeschlossen ist. Nachdem die Konfiguration abgeschlossen ist, geht der Konnektor in den Status STARTED über.STARTED
: Sobald der Konnektor vollständig konfiguriert oder fortgesetzt wurde, wechselt er in den Status STARTED.PAUSED
: Wenn der Konnektor erfolgreich angehalten wurde, wechselt er in den Status PAUSED.ERROR
: Wenn der Konnektor auf einen nicht rückgängig zu machenden Fehler stößt, geht er zum in den Status ERROR über, der anzeigt, dass er nicht aktiv genutzt werden kann. In diesem Status kann die ProzedurRECOVER_CONNECTOR_STATE
verwendet werden, um in einen gültigen Status überzugehen.
configurationStatus
: Dies ist ein Unterstatus des HauptstatusCONFIGURING
. Der Prozess der Konnektorkonfiguration ist in mehrere Schritte unterteilt, die durch diesen Unterstatus verfolgt werden. Kann einen der folgenden Werte haben:INSTALLED
: Die Konfiguration beginnt im Status INSTALLED, nachdem die Konnektor-Instanz erstellt wurde.PREREQUISITES_DONE
: Nachdem der Benutzer die Voraussetzungen erfüllt hat und die ProzedurMARK_ALL_PREREQUISITES_AS_DONE
aufruft, geht die Konfiguration in den Status PREREQUISITES_DONE über. Voraussetzungen sind manuelle Schritte, die vom Benutzer ausgeführt werden müssen, z. B. das Konfigurieren der Verbindung zu einer Datenquelle eines Drittanbieters oder das Erstellen einer Zieldatenbank.CONFIGURED
: Die ProzedurCONFIGURE_CONNECTOR(VARIANT)
wurde aufgerufen.CONNECTED
: Die ProzedurSET_CONNECTION_CONFIGURATION(VARIANT)
wurde aufgerufen.FINALIZED
: Nach Abschluss der Konfiguration geht die Konfiguration schließlich in den Status FINALIZED über (die ProzedurFINALIZE_CONNECTOR_CONFIGURATION(VARIANT)
wurde aufgerufen).
Neustart des Konfigurationsprozesses¶
Die gespeicherte Prozedur RESET_CONFIGURATION
setzt die Konfiguration des Konnektors auf den Standardstatus zurück. Diese Prozedur kann verwendet werden, um die Konfiguration des Konnektors zurückzusetzen, bevor die Konfiguration abgeschlossen ist. Damit die Prozedur funktioniert, muss sich der Konnektor im Status CONFIGURING
befinden. Weitere Informationen zu den Hauptstatus und Unterstatus der Konfiguration von Konnektoren finden Sie unter Abrufen des aktuellen Status des Konnektors.
Falls die Konfigurationsphase abgeschlossen ist (FINALIZED), gibt diese Prozedur einen Fehler zurück.
CALL RESET_CONFIGURATION();
Wiederherstellung nach einem Zwischen- oder Fehlerstatus¶
Die Prozedur RECOVER_CONNECTOR_STATE
ist dazu gedacht, den Konnektor wiederherzustellen, wenn er in einem Zwischen- oder Fehlerzustand feststeckt (ERROR
, STARTING
, PAUSING
), indem sein Status manuell entweder auf STARTED
oder PAUSED
festgelegt wird. Einige Operationen können dazu führen, dass der Konnektor in einem inkonsistenten Zustand bleibt, was aus verschiedenen Gründen geschehen kann. Beispiel: Wenn der Benutzer Berechtigungen für bestimmte Datenbankobjekte löscht, die der Konnektor benötigt.
Die Prozedur gibt einen Fehler zurück, wenn der neue Status ungültig ist oder wenn sich der Konnektor in keinem der vorgegebenen Status befindet. Die folgenden Übergänge sind zulässig:
ERROR -> PAUSED
ERROR -> STARTED
PAUSING -> PAUSED
PAUSING -> STARTED
STARTING -> PAUSED
STARTING -> STARTED
CALL RECOVER_CONNECTOR_STATE('<new_state>');
Wobei:
new_state
Eine Zeichenfolge, die den neuen Status des Konnektors angibt. Der Status muss entweder
STARTED
oderPAUSED
sein. ErforderlichBeispiel:
CALL RECOVER_CONNECTOR_STATE('STARTED');
Wiederherstellen von Berichten, nachdem ein Konnektor gelöscht wurde¶
Die Prozedur IMPORT_STATE
wird verwendet, um konfigurierte Berichte und den Datenaufnahmeverlauf wiederherzustellen, nachdem der Konnektor deinstalliert wurde. Diese Prozedur soll verwendet werden, nachdem der Konnektor neu installiert wurde und der neue Konnektor so konfiguriert wurde, dass er dieselbe Datenbank verwendet, die von dem deinstallierten Konnektor verwendet wurde. Der Status, der importiert wird, befindet sich in der Zieldatenbank, die von der vorherigen Instanz des Konnektors verwendet wurde, in Form von Tabellen mit dem Suffix SFSDKEXPORT
. Um mehr über den Prozess zu erfahren, lesen Sie das Notfallwiederherstellung-Benutzerhandbuch. Die Prozedur überschreibt den bestehenden Status im Konnektor nicht, wenn sie feststellt, dass der Status nicht sauber ist, es sei denn, der Parameter force
ist auf true
festgelegt. Ein sauberer Status ist ein Status direkt nach Abschluss des Konfigurationsprozesses, wenn noch keine Berichte konfiguriert sind. Wenn Berichte konfiguriert, aber später gelöscht wurden, wird ebenfalls davon ausgegangen, dass der Status nicht sauber ist.
Bemerkung
Wenn der Konnektor mit den Optionen
CASCADE
deinstalliert (gelöscht) wurde, funktioniert diese Prozedur nicht.CALL IMPORT_STATE([force]);
Wobei:
force
Optional. Der Standardwert ist
false
. Wenntrue
, überschreibt die Prozedur den bestehenden Status des Konnektors. Einschließlich aller Berichte, die bereits konfiguriert sind. Wennfalse
, gibt die Prozedur einen Fehler zurück, wenn sie feststellt, dass der Status nicht sauber ist.Beispiel:
CALL IMPORT_STATE();