Einführung in Reservations

Mit BigQuery Reservations können Sie zwischen On-Demand-Preisen und Pauschalpreisen wechseln. Bei Pauschalpreisen erwerben Sie eine bestimmte Menge an Kapazitäten zur Abfrageverarbeitung. Sie können diese Kapazität innerhalb Ihrer Organisation zuweisen. Dafür reservieren Sie Kapazitätspools für verschiedene Projekte oder verschiedene Teile Ihrer Organisation. Sie können die beiden Abrechnungsmodelle auch kombinieren und so die Vorteile von On-Demand- und Pauschalpreisen nutzen.

Übersicht

BigQuery bietet zwei Preismodelle für Analysen:

  • On-Demand-Preis: Sie bezahlen nur für die Daten, die von Ihren Abfragen gescannt wurden. Die Kosten basieren auf der Anzahl der verarbeiteten Byte.
  • Pauschalpreise: Sie erwerben eine bestimmte Menge an Kapazitäten zur Abfrageverarbeitung.

Abfragen werden standardmäßig gemäß dem On-Demand-Preismodell abgerechnet. Mit BigQuery-Reservierungen können Sie zur Pauschalabrechnung wechseln. Dazu kaufen Sie Zusicherungen. Zusicherungen werden in BigQuery-Sloteinheiten gekauft. Im Pauschalpreis sind die Kosten für alle verarbeiteten Byte enthalten.

BigQuery Reservations bietet unter anderem folgende Vorteile:

  • Planbarkeit: Pauschalpreise bieten vorhersehbare und gleichbleibende Kosten. Sie wissen im Voraus, was Sie ausgeben.

  • Flexibilität: Sie entscheiden, wie viel Kapazität Sie kaufen möchten. Ihnen wird ein Pauschalpreis pro Sekunde in Rechnung gestellt, bis Sie die Kapazitätszusicherung löschen. Sie können beide Abrechnungsmodelle miteinander kombinieren. Sie können zum Beispiel einige Arbeitslasten mit On-Demand-Preisen und andere mit Pauschalpreisen ausführen.

    BigQuery bietet Pauschalpreise zu einem reduzierten Preis, wenn Sie zumindest eine monatliche oder jährliche Zusicherung erwerben.

  • Arbeitslastverwaltung. Nachdem Sie Slots erworben haben, können Sie sie Arbeitslasten zuweisen. Auf diese Weise steht für eine Arbeitslast ein dedizierter Pool von BigQuery-Rechenressourcen zur Verfügung. Wenn eine Arbeitslast nicht alle zugewiesenen Slots nutzt, werden die nicht genutzten Slots automatisch auf Ihre anderen Arbeitslasten aufgeteilt.

  • Zentralisierter Kauf. Sie können Slots für Ihre gesamte Organisation erwerben und zuweisen. Sie müssen Slots nicht für jedes Projekt kaufen, das BigQuery verwendet.

Zusicherungen

Grafik: Konzepte für Reservations

Eine Kapazitätszusicherung ist der Kauf einer BigQuery-Rechenkapazität für einen Mindestzeitraum. Zusicherungen werden in BigQuery-Slots gemessen, die eine Einheit für die Rechenkapazität bilden. Slots stellen eine dynamische Menge von CPU, RAM und verteiltem Arbeitsspeicher dar. Wenn Sie mehr Slots erwerben, können Sie mehr Abfragen gleichzeitig und komplexe Abfragen schneller ausführen.

BigQuery bietet mehrere Zusicherungspläne zur Auswahl an. Diese unterscheiden sich hauptsächlich nach Kosten und der Mindestdauer Ihrer Zusicherung. Die aktuellen Preisinformationen finden Sie unter Pauschalpreise.

  • Monatliche Zusicherung. Sie erwerben eine Zusicherung von mindestens 30 Tagen. Nach 30 Tagen können Sie diesen Plan jederzeit kündigen.

  • Jährliche Zusicherung. Sie erwerben eine Zusicherung von 365 Tagen. Sie können nach 365 Tagen auswählen, ob Sie den Plan automatisch verlängern, stornieren oder zu einem anderen Plan wechseln möchten.

  • Flex-Slots. Sie erwerben eine Zusicherung von 60 Sekunden. Sie können nach 60 Sekunden jederzeit kündigen. Flex-Slots sind eine gute Möglichkeit, um zu testen, wie leistungsstark Ihre Arbeitslasten mit Pauschalabrechnung sind, bevor Sie eine langfristige Zusicherung erwerben. Sie eignen sich außerdem für die Verarbeitung zyklischer oder saisonaler Nachfragen oder für Ereignisse mit hoher Auslastung, z. B. die Steuersaison.

Unabhängig vom ausgewählten Plan laufen Ihre Slots am Ende des Zusicherungszeitraums nicht ab. Sie behalten die Slots und sie werden Ihnen in Rechnung gestellt, bis Sie sie löschen. Nach Ablauf der Mindestdauer können Sie den Plantyp auch ändern.

Weitere Informationen zu diesen Plänen finden Sie unter Zusicherungspläne.

Reservierungen

Nachdem Sie Slots gekauft haben, können Sie sie verschiedenen Buckets zuweisen, sogenannten Reservierungen. Mit Reservierungen können Sie die Slots für Ihre Organisation sinnvoll zuweisen.

Sie können beispielsweise eine Reservierung mit dem Namen prod für Produktionsarbeitslasten und eine separate Reservierung mit dem Namen test für Tests erstellen. So nutzen Ihre Testjobs nicht diejenigen Ressourcen, die Ihre Produktionsarbeitslasten benötigen. Alternativ können Sie Reservierungen für verschiedene Abteilungen in Ihrer Organisation erstellen.

Eine Reservierung mit dem Namen default wird automatisch beim Kauf von Slots erstellt. Die Reservierung default hat keine spezielle Bedeutung und wurde nur der Einfachheit halber erstellt. Sie können entscheiden, ob Sie zusätzliche Reservierungen benötigen oder einfach die Standardreservierung verwenden möchten.

Aufgaben

Damit Sie die erworbenen Slots verwenden können, weisen Sie Projekten, Ordnern oder Organisationen Reservierungen zu. Jede Ebene in der Ressourcenhierarchie übernimmt die Zuweisung von der nächsthöheren Ebene, falls Sie dies nicht überschreiben. Ein Projekt übernimmt also die Zuweisung des zugehörigen übergeordneten Ordners und ein Ordner übernimmt die Zuweisung der zugehörigen Organisation. Weitere Informationen zur Google Cloud-Ressourcenhierarchie finden Sie unter diesem Link.

Wenn ein Job über ein Projekt gestartet wird, das einer Reservierung zugewiesen ist, verwendet der Job die Slots dieser Reservierung. Wenn ein Projekt keiner Reservierung zugewiesen ist (weder direkt, noch durch Übernahme aus dem zugehörigen übergeordneten Ordner oder der zugehörigen übergeordneten Organisation), wird für die Jobs in diesem Projekt die On-Demand-Abrechnung verwendet.

None-Zuweisungen weisen darauf hin, dass keine Zuweisung vorhanden ist. Wenn Projekten None zugewiesen ist, wird die On-Demand-Abrechnung verwendet. Ein häufiger Anwendungsfall für None-Zuweisungen ist die Zuweisung einer Organisation zur Reservierung. Anschließend werden einige Projekte oder Ordner für diese Reservierung deaktiviert und stattdessen None zugewiesen. Weitere Informationen erhalten Sie unter Projekt "None" zuweisen.

Wenn Sie eine Zuweisung erstellen, geben Sie den Jobtyp für diese Zuweisung an:

  • QUERY: Verwenden Sie diese Reservierung für Abfragejobs, einschließlich SQL-, DDL-, DML- und BigQuery ML-Abfragen.

  • PIPELINE: Verwenden Sie diese Reservierung für Lade-, Export- und andere Pipelinejobs.

    Standardmäßig sind Lade- und Exportjobs kostenlose Vorgänge, die einen gemeinsamen Slot-Pool nutzen. BigQuery gibt keine Garantien für die verfügbaren Kapazitäten dieses gemeinsamen Pools. Wenn Sie große Datenmengen laden, wartet Ihr Job eventuell darauf, dass Slots verfügbar werden. In diesem Fall bietet es sich an, dedizierte Slots zu erwerben und ihnen Pipelinejobs zuzuweisen. Wir empfehlen, eine zusätzliche dedizierte Reservierung mit deaktivierter Freigabe inaktiver Slots zu erstellen.

    Wenn Ladejobs einer Reservierung zugewiesen sind, können sie nicht mehr auf den kostenlosen Pool zugreifen. Behalten Sie die Leistung im Blick, um zu gewährleisten, dass die Jobs über ausreichend Kapazität verfügen. Andernfalls könnte die Leistung schlechter als bei Nutzung des kostenlosen Pools ausfallen.

  • ML_EXTERNAL: Verwenden Sie diese Reservierung für BigQuery ML-Abfragen, die Dienste außerhalb von BigQuery verwenden.

    Bestimmte BigQuery ML-Abfragen verwenden Dienste außerhalb von BigQuery. Damit Sie reservierte Slots mit diesen externen Diensten nutzen können, müssen Sie eine Aufgabe mit dem Jobtyp ML_EXTERNAL erstellen. Weitere Informationen finden Sie unter BigQuery ML-Arbeitslasten Slots zuweisen.

Slot-Planung

Slots werden gleichmäßig auf Projekte und dann auf die Jobs innerhalb des Projekts verteilt.

Der BigQuery-Planer erzwingt die gleichmäßige Aufteilung von Slots zwischen Projekten mit in Ausführung befindlichen Abfragen innerhalb einer Reservierung und anschließend zwischen Jobs eines bestimmten Projekts. Der Planer sorgt für eine finale Gleichmäßigkeit. Es kann zu kurzen Zeiträumen kommen, in denen einige Jobs einen unverhältnismäßig hohen Anteil an Slots erhalten. Dies wird letztendlich vom Planer korrigiert. Ziel des Planers ist es, ein Gleichgewicht zwischen einer zu großen Aggressivität beim zwangsweisen Beenden laufender Aufgaben und einer zu großen Nachsichtigkeit zu erzielen. Ersteres würde eine Verschwendung von Slot-Zeit bedeuten und Letzteres würde dazu führen, dass Jobs mit lang andauernden Aufgaben einen unverhältnismäßig hohen Anteil an Slot-Zeit erhalten.

Wenn ein wichtiger Job durchgängig mehr Slots benötigt, als der Planer ihm bereitstellt, sollten Sie eventuell eine zusätzliche Reservierung mit einer garantierten Anzahl von Slots erstellen und den Job der Reservierung zuweisen. Weitere Informationen finden Sie unter Arbeitslastverwaltung.

Inaktive Slots

Es kann jederzeit vorkommen, dass einige Slots inaktiv sind. Dazu können die folgenden gehören:

  • Slots, die keiner Reservierung zugewiesen sind
  • Slots, die einer Reservierung zugewiesen sind, derzeit aber nicht verwendet werden

Standardmäßig verwenden Abfragen, die in einer Reservierung ausgeführt werden, inaktive Slots aus anderen Reservierungen automatisch. Ein Job kann also immer ausgeführt werden, solange Kapazität vorhanden ist. Nicht genutzte Kapazitäten können bei Bedarf sofort wieder der ursprünglich zugewiesenen Reservierung zugewiesen werden. Das Ganze geschieht automatisch und in Echtzeit.

Wenn Sie diese Funktion deaktivieren und dafür sorgen möchten, dass eine Reservierung nur die ihr bereitgestellten Slots verwendet, setzen Sie ignore_idle_slots auf true. Wenn ignore_idle_slots für Reservierungen auf true gesetzt ist, erhalten diese keine inaktiven Slots.

Solange ignore_idle_slots "false" ist, kann eine Reservierung mit der Slot-Anzahl 0 trotzdem auf ungenutzte Slots zugreifen. Wenn Sie nur die default-Reservierung verwenden, wird diese Einrichtung empfohlen.

Aufgaben vom Typ ML_EXTERNAL bilden eine Ausnahme vom oben beschriebenen Verhalten. Von diesen Jobs verwendete Slots sind nicht auf Abruf verfügbar. Das bedeutet, dass sie anderen in der Reservierung laufenden Jobs nicht zur Verfügung stehen. Außerdem nutzen diese Jobs keine inaktiven Slots aus anderen Reservierungen.

Nächste Schritte