Einführung in kontinuierliche Abfragen

In diesem Dokument werden kontinuierliche Abfragen in BigQuery beschrieben.

Kontinuierliche Abfragen in BigQuery sind SQL-Anweisungen, die kontinuierlich ausgeführt werden. Mit kontinuierlichen Abfragen können Sie eingehende Daten in BigQuery in Echtzeit analysieren. Sie können die von einer kontinuierlichen Abfrage erzeugten Ausgaberow in eine BigQuery-Tabelle einfügen oder in Pub/Sub, Bigtable oder Spanner exportieren. Kontinuierliche Abfragen können Daten verarbeiten, die mit einer der folgenden Methoden in Standard-BigQuery-Tabellen geschrieben wurden:

Mit kontinuierlichen Abfragen können Sie zeitkritische Aufgaben ausführen, z. B. Erkenntnisse erstellen und sofort darauf reagieren, Echtzeit-Inferenzen für maschinelles Lernen (ML) anwenden und Daten auf andere Plattformen replizieren. So können Sie BigQuery als ereignisgesteuerte Datenverarbeitungs-Engine für die Entscheidungslogik Ihrer Anwendung verwenden.

Das folgende Diagramm zeigt gängige Workflows für kontinuierliche Abfragen:

Diagramm mit gängigen Workflows für kontinuierliche BigQuery-Abfragen, einschließlich Datenerfassung, -verarbeitung und -export zu Zielen wie Bigtable und Pub/Sub.

Anwendungsfälle

Häufige Anwendungsfälle, in denen Sie möglicherweise kontinuierliche Abfragen verwenden möchten:

  • Personalisierte Kundenservice-Dienste: Mit generativer KI können Sie maßgeschneiderte Nachrichten erstellen, die für jede Kundeninteraktion angepasst sind.
  • Anomalieerkennung: Erstellen Sie Lösungen, mit denen Sie Anomalien und Bedrohungen in komplexen Daten in Echtzeit erkennen können, damit Sie schneller auf Probleme reagieren können.
  • Anpassbare ereignisgesteuerte Pipelines: Verwenden Sie die Integration von kontinuierlichen Abfragen mit Pub/Sub, um nachgelagerte Anwendungen basierend auf eingehenden Daten auszulösen.
  • Datenanreicherung und Entitätsextraktion: Verwenden Sie kontinuierliche Abfragen, um Daten in Echtzeit anzureichern und zu transformieren. Dazu können Sie SQL-Funktionen und ML-Modelle verwenden.
  • Umgekehrte ETL-Prozesse (Extrahieren, Transformieren, Laden): Führen Sie umgekehrte ETL-Prozesse in Echtzeit in andere Speichersysteme aus, die besser für die Bereitstellung von Anwendungen mit niedriger Latenz geeignet sind. Beispielsweise können Sie Ereignisdaten analysieren oder verbessern, die in BigQuery geschrieben wurden, und sie dann für die Anwendungsbereitstellung in Bigtable oder Spanner streamen.
  • Autonomes Auslösen von Agenten: Lösen Sie agentische Datenpipelines in Echtzeit basierend auf komplexen Ereignissen aus, die in Live-Datenstreams erkannt werden. Ein Beispiel finden Sie im Codelab Ereignisgesteuerten Datenagenten mit BigQuery und Agent Development Kit (ADK) erstellen.
  • Autonomes Agenten-Monitoring: Entwickeln Sie automatisierte Echtzeitüberwachung und Benachrichtigungen für agentische Echtzeitinteraktionen mit dem BigQuery-Plug-in für Agentenanalysen, das alle Agenten-Tracedaten, die Toolnutzung und Betriebsprotokolle direkt in BigQuery streamt, um umfassende Beobachtbarkeit Ihrer KI-Mitarbeiter zu erhalten.

Unterstützte Funktionen

Die folgenden Vorgänge werden in kontinuierlichen Abfragen unterstützt:

Unterstützte zustandsbehaftete Vorgänge

Wenn Sie Support anfordern oder Feedback zu dieser Funktion geben möchten, senden Sie eine E-Mail an bq-continuous-queries-feedback@google.com.

Mit zustandsbehafteten Vorgängen können kontinuierliche Abfragen komplexe Analysen durchführen, bei denen Informationen über mehrere Rows oder Zeitintervalle hinweg beibehalten werden müssen. Während zustandslose Funktionen jede Row unabhängig verarbeiten, behalten zustandsbehaftete Vorgänge den Zustand der aufgenommenen Daten bei, um Funktionen wie JOINs, Aggregationen und Fensteraggregationen zu unterstützen. Mit dieser Funktion können Sie Ereignisse aus verschiedenen Streams korrelieren oder Messwerte im Zeitverlauf berechnen, z. B. einen 30-Minuten-Durchschnitt, indem Sie die erforderlichen Daten während der Ausführung der Abfrage im Arbeitsspeicher speichern.

Kontinuierliche Abfragen unterstützen die folgenden zustandsbehafteten Vorgänge:

Autorisierung

Die Google Cloud Zugriffstokens , die beim Ausführen von Jobs für kontinuierliche Abfragen verwendet werden, haben eine Gültigkeitsdauer von zwei Tagen, wenn sie von einem Nutzerkonto generiert werden. Daher werden solche Jobs nach zwei Tagen beendet. Die von Dienstkonten generierten Zugriffstokens können länger ausgeführt werden, müssen aber dennoch die maximale Laufzeit der Abfrage einhalten. Weitere Informationen finden Sie unter Kontinuierliche Abfrage mit einem Dienstkonto ausführen.

Standorte

Eine Liste der unterstützten Regionen finden Sie unter Standorte für kontinuierliche Abfragen in BigQuery.

Beschränkungen

Kontinuierliche Abfragen unterliegen den folgenden Einschränkungen:

Reservierungseinschränkungen

  • Sie müssen eine Reservierung der Enterprise- oder Enterprise Plus Version mit dem Zuweisungstyp CONTINUOUS erstellen, um kontinuierliche Abfragen auszuführen. Kontinuierliche Abfragen unterstützen das Abrechnungsmodell für On-Demand-Computing nicht.
  • Wenn Sie eine CONTINUOUS Reservierungszuweisung erstellen, ist die zugehörige Reservierung auf maximal 500 Slots beschränkt. Sie können eine Erhöhung dieses Limits unter bq-continuous-queries-feedback@google.com anfordern.
  • Sie können in derselben Reservierung keine Reservierungszuweisung erstellen, die einen anderen Jobtyp verwendet als eine Reservierungszuweisung für eine kontinuierliche Abfrage.
  • BigQuery bestimmt die Anzahl der kontinuierlichen Abfragen, die pro Projekt gleichzeitig ausgeführt werden können, basierend auf der konfigurierten Größe der Reservierungszuweisung, die den Jobtyp CONTINUOUS verwendet. Um neue Jobs zuzulassen, benötigt BigQuery einen Schwellenwert von 10 Slots pro Job für kontinuierliche Abfragen. Die Abfrage verbraucht während der normalen Ausführung nicht unbedingt alle 10 Slots. Dieser Schwellenwert sorgt dafür, dass jede ausgeführte kontinuierliche Abfrage über genügend Referenzrechenkapazität verfügt, um plötzliche Spitzen im eingehenden Datenvolumen zu bewältigen, ohne in Verzug zu geraten oder die Verarbeitung mit niedriger Latenz zu beeinträchtigen.

    Damit Ihre Abfragen erfolgreich zugelassen werden, ohne die Limits für die Nebenläufigkeit zu erreichen, empfehlen wir die Verwendung von Slot-Autoscaling. Mit Autoscaling wird die Gesamtzahl der verwendeten Slots dynamisch an den tatsächlichen Ressourcenbedarf angepasst. Sie können eine kleinere Referenzreservierung konfigurieren und ein maximales Autoscaling-Limit festlegen, das die 10 Slots pro Abfrage für Ihre erwarteten gleichzeitigen Abfragen problemlos abdeckt.

  • Wenn mehrere kontinuierliche Abfragen mit derselben Reservierung ausgeführt werden, werden die verfügbaren Ressourcen möglicherweise nicht fair auf die einzelnen Jobs aufgeteilt, wie in der BigQuery-Fairnessdefiniert.

Slot-Autoscaling

Kontinuierliche Abfragen können Slot-Autoscaling verwenden, um die zugewiesene Kapazität dynamisch an die Arbeitslast anzupassen. Wenn die Arbeitslast Ihrer kontinuierlichen Abfragen zu- oder abnimmt, passt BigQuery Ihre Slots dynamisch an.

Nachdem eine kontinuierliche Abfrage gestartet wurde, wartet sie aktiv auf eingehende Daten, wodurch Slot-Ressourcen verbraucht werden. Eine Reservierung mit einer ausgeführten kontinuierlichen Abfrage wird zwar nicht auf null Slots herunterskaliert, aber eine inaktive kontinuierliche Abfrage, die hauptsächlich auf eingehende Daten wartet, verbraucht in der Regel nur eine minimale Anzahl von Slots, normalerweise etwa einen Slot.

Freigabe inaktiver Slots

Kontinuierliche Abfragen können die Freigabe inaktiver Slots verwenden, um nicht verwendete Slot-Ressourcen für andere Reservierungen und Jobtypen freizugeben.

  • Für die Ausführung einer kontinuierlichen Abfrage ist weiterhin eine CONTINUOUS Reservierungszuweisung erforderlich. Sie kann nicht ausschließlich auf inaktive Slots aus anderen Reservierungen angewiesen sein. Daher erfordert eine CONTINUOUS-Reservierungszuweisung entweder eine Referenz für Slots ungleich null oder eine Autoscaling-Konfiguration für Slots ungleich null.
  • Nur inaktive Referenzslots oder zugesicherte Slots aus einer CONTINUOUS-Reservierungszuweisung können freigegeben werden. Automatisch skalierte Slots können nicht als inaktive Slots für andere Reservierungen freigegeben werden.

Preise

Kontinuierliche Abfragen können die flexible Skalierung von BigQuery nutzen.

Für kontinuierliche Abfragen gelten die BigQuery-Preise für die Kapazitätsberechnung, die in Slots gemessen werden. Zum Ausführen kontinuierlicher Abfragen benötigen Sie eine Reservierung mit dem Enterprise oder Enterprise Plus, und eine Reservierungszuweisung mit dem CONTINUOUS Jobtyp.

Die Nutzung anderer BigQuery-Ressourcen wie Datenaufnahme und Speicherung wird zu den Preisen berechnet, die unter BigQuery-Preise aufgeführt sind.

Die Nutzung anderer Dienste, die Ergebnisse von kontinuierlichen Abfragen erhalten oder während der Verarbeitung von kontinuierlichen Abfragen aufgerufen werden, wird zu den für diese Dienste veröffentlichten Preisen berechnet. Die Preise für andere Google Cloud Dienste, die von kontinuierlichen Abfragen verwendet werden, finden Sie in den folgenden Themen:

Anforderungen an Slotkapazität schätzen

Da jede Arbeitslast unterschiedlich ist, ist eine genaue Schätzung der Slots für kontinuierliche Abfragen oft nicht im Voraus möglich. Die Anzahl der für Ihre kontinuierlichen Abfragen erforderlichen Slots hängt von einer Kombination mehrerer Faktoren ab:

  • Die Anzahl der gleichzeitig ausgeführten kontinuierlichen Abfragen.
  • Die Komplexität der SQL-Anweisung.
  • Die Verwendung zustandsbehafteter Verarbeitungsfunktionen, einschließlich Fensterdauern, JOIN-Vorgängen und Aggregationen.
  • Die Rate oder Geschwindigkeit eingehender Daten.
  • Die Struktur und Größe der aufgenommenen Daten.

Konzeptionell können Sie den Gesamtbedarf an Slots als Funktion Ihrer Arbeitslast für kontinuierliche Abfragen schätzen:

Geschätzte Slots ≈ Anzahl der kontinuierlichen Abfragen × ∑ (Datenrate × Komplexität der Abfrage)

Da der tatsächliche Slotverbrauch stark von Ihrer individuellen Arbeitslast und Ihren Datenmustern abhängt, ist die genaueste Methode zur Kostenschätzung die Überwachung eines laufenden Jobs. Sie können die maximale Slotnutzung einer isolierten Ausführung einer kontinuierlichen Abfrage mit INFORMATION_SCHEMA-Ansichten messen. Eine detaillierte Anleitung und Beispielabfragen zum Verfolgen der Slotnutzung im Zeitverlauf finden Sie unter Informationen zum Slotverbrauch ansehen.

Nächste Schritte

Versuchen Sie, eine kontinuierliche Abfrage zu erstellen.