reservations
Creates, updates, deletes, gets or lists a reservations
resource.
Overview
Name | reservations |
Type | Resource |
Id | google.bigqueryreservation.reservations |
Fields
The following fields are returned by SELECT
queries:
- get
- list
Successful response
Name | Datatype | Description |
---|---|---|
name | string | Identifier. The resource name of the reservation, e.g., projects/*/locations/*/reservations/team1-prod . The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters. |
autoscale | object | Optional. The configuration parameters for the auto scaling feature. (id: Autoscale) |
concurrency | string (int64) | Optional. Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as target job concurrency in the Information Schema, DDL and BigQuery CLI. |
creationTime | string (google-datetime) | Output only. Creation time of the reservation. |
edition | string | Optional. Edition of the reservation. |
ignoreIdleSlots | boolean | Optional. If false, any query or pipeline job using this reservation will use idle slots from other reservations within the same admin project. If true, a query or pipeline job using this reservation will execute with the slot capacity specified in the slot_capacity field at most. |
labels | object | Optional. The labels associated with this reservation. You can use these to organize and group your reservations. You can set this property when you create or update a reservation. |
maxSlots | string (int64) | Optional. The overall max slots for the reservation, covering slot_capacity (baseline), idle slots (if ignore_idle_slots is false) and scaled slots. If present, the reservation won't use more than the specified number of slots, even if there is demand and supply (from idle slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may exceed the max_slots value. However, in terms of autoscale.current_slots (which accounts for the additional added slots), it will never exceed the max_slots - baseline. This field must be set together with the scaling_mode enum value, otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . If the max_slots and scaling_mode are set, the autoscale or autoscale.max_slots field must be unset. Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . However, the autoscale field may still be in the output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots will represent the current slots from autoscaler excluding idle slots. For example, if the max_slots is 1000 and scaling_mode is AUTOSCALE_ONLY, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value between 0 and 1000. If the max_slots is 1000, scaling_mode is ALL_SLOTS, the baseline is 100 and idle slots usage is 200, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots will not be higher than 700. If the max_slots is 1000, scaling_mode is IDLE_SLOTS_ONLY, then in the output, the autoscaler field will be null. If the max_slots and scaling_mode are set, then the ignore_idle_slots field must be aligned with the scaling_mode enum value.(See details in ScalingMode comments). Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . Please note, the max_slots is for user to manage the part of slots greater than the baseline. Therefore, we don't allow users to set max_slots smaller or equal to the baseline as it will not be meaningful. If the field is present and slot_capacity>=max_slots, requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . Please note that if max_slots is set to 0, we will treat it as unset. Customers can set max_slots to 0 and set scaling_mode to SCALING_MODE_UNSPECIFIED to disable the max_slots feature. |
multiRegionAuxiliary | boolean | Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field. |
originalPrimaryLocation | string | Output only. The location where the reservation was originally created. This is set only during the failover reservation's creation. All billing charges for the failover reservation will be applied to this location. |
primaryLocation | string | Output only. The current location of the reservation's primary replica. This field is only set for reservations using the managed disaster recovery feature. |
replicationStatus | object | Output only. The Disaster Recovery(DR) replication status of the reservation. This is only available for the primary replicas of DR/failover reservations and provides information about the both the staleness of the secondary and the last error encountered while trying to replicate changes from the primary to the secondary. If this field is blank, it means that the reservation is either not a DR reservation or the reservation is a DR secondary or that any replication operations on the reservation have succeeded. (id: ReplicationStatus) |
reservationGroup | string | Optional. The reservation group that this reservation belongs to. You can set this property when you create or update a reservation. Reservations do not need to belong to a reservation group. Format: projects/{project}/locations/{location}/reservationGroups/{reservation_group} or just {reservation_group} |
scalingMode | string | Optional. The scaling mode for the reservation. If the field is present but max_slots is not present, requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . |
secondaryLocation | string | Optional. The current location of the reservation's secondary replica. This field is only set for reservations using the managed disaster recovery feature. Users can set this in create reservation calls to create a failover reservation or in update reservation calls to convert a non-failover reservation to a failover reservation(or vice versa). |
slotCapacity | string (int64) | Optional. Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes. |
updateTime | string (google-datetime) | Output only. Last update time of the reservation. |
Successful response
Name | Datatype | Description |
---|---|---|
name | string | Identifier. The resource name of the reservation, e.g., projects/*/locations/*/reservations/team1-prod . The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters. |
autoscale | object | Optional. The configuration parameters for the auto scaling feature. (id: Autoscale) |
concurrency | string (int64) | Optional. Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as target job concurrency in the Information Schema, DDL and BigQuery CLI. |
creationTime | string (google-datetime) | Output only. Creation time of the reservation. |
edition | string | Optional. Edition of the reservation. |
ignoreIdleSlots | boolean | Optional. If false, any query or pipeline job using this reservation will use idle slots from other reservations within the same admin project. If true, a query or pipeline job using this reservation will execute with the slot capacity specified in the slot_capacity field at most. |
labels | object | Optional. The labels associated with this reservation. You can use these to organize and group your reservations. You can set this property when you create or update a reservation. |
maxSlots | string (int64) | Optional. The overall max slots for the reservation, covering slot_capacity (baseline), idle slots (if ignore_idle_slots is false) and scaled slots. If present, the reservation won't use more than the specified number of slots, even if there is demand and supply (from idle slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may exceed the max_slots value. However, in terms of autoscale.current_slots (which accounts for the additional added slots), it will never exceed the max_slots - baseline. This field must be set together with the scaling_mode enum value, otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . If the max_slots and scaling_mode are set, the autoscale or autoscale.max_slots field must be unset. Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . However, the autoscale field may still be in the output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots will represent the current slots from autoscaler excluding idle slots. For example, if the max_slots is 1000 and scaling_mode is AUTOSCALE_ONLY, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value between 0 and 1000. If the max_slots is 1000, scaling_mode is ALL_SLOTS, the baseline is 100 and idle slots usage is 200, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots will not be higher than 700. If the max_slots is 1000, scaling_mode is IDLE_SLOTS_ONLY, then in the output, the autoscaler field will be null. If the max_slots and scaling_mode are set, then the ignore_idle_slots field must be aligned with the scaling_mode enum value.(See details in ScalingMode comments). Otherwise the request will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . Please note, the max_slots is for user to manage the part of slots greater than the baseline. Therefore, we don't allow users to set max_slots smaller or equal to the baseline as it will not be meaningful. If the field is present and slot_capacity>=max_slots, requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . Please note that if max_slots is set to 0, we will treat it as unset. Customers can set max_slots to 0 and set scaling_mode to SCALING_MODE_UNSPECIFIED to disable the max_slots feature. |
multiRegionAuxiliary | boolean | Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field. |
originalPrimaryLocation | string | Output only. The location where the reservation was originally created. This is set only during the failover reservation's creation. All billing charges for the failover reservation will be applied to this location. |
primaryLocation | string | Output only. The current location of the reservation's primary replica. This field is only set for reservations using the managed disaster recovery feature. |
replicationStatus | object | Output only. The Disaster Recovery(DR) replication status of the reservation. This is only available for the primary replicas of DR/failover reservations and provides information about the both the staleness of the secondary and the last error encountered while trying to replicate changes from the primary to the secondary. If this field is blank, it means that the reservation is either not a DR reservation or the reservation is a DR secondary or that any replication operations on the reservation have succeeded. (id: ReplicationStatus) |
reservationGroup | string | Optional. The reservation group that this reservation belongs to. You can set this property when you create or update a reservation. Reservations do not need to belong to a reservation group. Format: projects/{project}/locations/{location}/reservationGroups/{reservation_group} or just {reservation_group} |
scalingMode | string | Optional. The scaling mode for the reservation. If the field is present but max_slots is not present, requests will be rejected with error code google.rpc.Code.INVALID_ARGUMENT . |
secondaryLocation | string | Optional. The current location of the reservation's secondary replica. This field is only set for reservations using the managed disaster recovery feature. Users can set this in create reservation calls to create a failover reservation or in update reservation calls to convert a non-failover reservation to a failover reservation(or vice versa). |
slotCapacity | string (int64) | Optional. Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes. |
updateTime | string (google-datetime) | Output only. Last update time of the reservation. |
Methods
The following methods are available for this resource:
Name | Accessible by | Required Params | Optional Params | Description |
---|---|---|---|---|
get | select | projectsId , locationsId , reservationsId | Returns information about the reservation. | |
list | select | projectsId , locationsId | pageSize , pageToken | Lists all the reservations for the project in the specified location. |
create | insert | projectsId , locationsId | reservationId | Creates a new reservation resource. |
patch | update | projectsId , locationsId , reservationsId | updateMask | Updates an existing reservation resource. |
delete | delete | projectsId , locationsId , reservationsId | Deletes a reservation. Returns google.rpc.Code.FAILED_PRECONDITION when reservation has assignments. | |
failover_reservation | exec | projectsId , locationsId , reservationsId | Fail over a reservation to the secondary location. The operation should be done in the current secondary location, which will be promoted to the new primary location for the reservation. Attempting to failover a reservation in the current primary location will fail with the error code google.rpc.Code.FAILED_PRECONDITION . |
Parameters
Parameters can be passed in the WHERE
clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
Name | Datatype | Description |
---|---|---|
locationsId | string | |
projectsId | string | |
reservationsId | string | |
pageSize | integer (int32) | |
pageToken | string | |
reservationId | string | |
updateMask | string (google-fieldmask) |
SELECT
examples
- get
- list
Returns information about the reservation.
SELECT
name,
autoscale,
concurrency,
creationTime,
edition,
ignoreIdleSlots,
labels,
maxSlots,
multiRegionAuxiliary,
originalPrimaryLocation,
primaryLocation,
replicationStatus,
reservationGroup,
scalingMode,
secondaryLocation,
slotCapacity,
updateTime
FROM google.bigqueryreservation.reservations
WHERE projectsId = '{{ projectsId }}' -- required
AND locationsId = '{{ locationsId }}' -- required
AND reservationsId = '{{ reservationsId }}' -- required;
Lists all the reservations for the project in the specified location.
SELECT
name,
autoscale,
concurrency,
creationTime,
edition,
ignoreIdleSlots,
labels,
maxSlots,
multiRegionAuxiliary,
originalPrimaryLocation,
primaryLocation,
replicationStatus,
reservationGroup,
scalingMode,
secondaryLocation,
slotCapacity,
updateTime
FROM google.bigqueryreservation.reservations
WHERE projectsId = '{{ projectsId }}' -- required
AND locationsId = '{{ locationsId }}' -- required
AND pageSize = '{{ pageSize }}'
AND pageToken = '{{ pageToken }}';
INSERT
examples
- create
- Manifest
Creates a new reservation resource.
INSERT INTO google.bigqueryreservation.reservations (
data__name,
data__slotCapacity,
data__ignoreIdleSlots,
data__autoscale,
data__concurrency,
data__multiRegionAuxiliary,
data__edition,
data__secondaryLocation,
data__maxSlots,
data__scalingMode,
data__labels,
data__reservationGroup,
projectsId,
locationsId,
reservationId
)
SELECT
'{{ name }}',
'{{ slotCapacity }}',
{{ ignoreIdleSlots }},
'{{ autoscale }}',
'{{ concurrency }}',
{{ multiRegionAuxiliary }},
'{{ edition }}',
'{{ secondaryLocation }}',
'{{ maxSlots }}',
'{{ scalingMode }}',
'{{ labels }}',
'{{ reservationGroup }}',
'{{ projectsId }}',
'{{ locationsId }}',
'{{ reservationId }}'
RETURNING
name,
autoscale,
concurrency,
creationTime,
edition,
ignoreIdleSlots,
labels,
maxSlots,
multiRegionAuxiliary,
originalPrimaryLocation,
primaryLocation,
replicationStatus,
reservationGroup,
scalingMode,
secondaryLocation,
slotCapacity,
updateTime
;
# Description fields are for documentation purposes
- name: reservations
props:
- name: projectsId
value: string
description: Required parameter for the reservations resource.
- name: locationsId
value: string
description: Required parameter for the reservations resource.
- name: name
value: string
description: >
Identifier. The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.
- name: slotCapacity
value: string
description: >
Optional. Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes.
- name: ignoreIdleSlots
value: boolean
description: >
Optional. If false, any query or pipeline job using this reservation will use idle slots from other reservations within the same admin project. If true, a query or pipeline job using this reservation will execute with the slot capacity specified in the slot_capacity field at most.
- name: autoscale
value: object
description: >
Optional. The configuration parameters for the auto scaling feature.
- name: concurrency
value: string
description: >
Optional. Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as target job concurrency in the Information Schema, DDL and BigQuery CLI.
- name: multiRegionAuxiliary
value: boolean
description: >
Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. NOTE: this is a preview feature. Project must be allow-listed in order to set this field.
- name: edition
value: string
description: >
Optional. Edition of the reservation.
valid_values: ['EDITION_UNSPECIFIED', 'STANDARD', 'ENTERPRISE', 'ENTERPRISE_PLUS']
- name: secondaryLocation
value: string
description: >
Optional. The current location of the reservation's secondary replica. This field is only set for reservations using the managed disaster recovery feature. Users can set this in create reservation calls to create a failover reservation or in update reservation calls to convert a non-failover reservation to a failover reservation(or vice versa).
- name: maxSlots
value: string
description: >
Optional. The overall max slots for the reservation, covering slot_capacity (baseline), idle slots (if ignore_idle_slots is false) and scaled slots. If present, the reservation won't use more than the specified number of slots, even if there is demand and supply (from idle slots). NOTE: capping a reservation's idle slot usage is best effort and its usage may exceed the max_slots value. However, in terms of autoscale.current_slots (which accounts for the additional added slots), it will never exceed the max_slots - baseline. This field must be set together with the scaling_mode enum value, otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. If the max_slots and scaling_mode are set, the autoscale or autoscale.max_slots field must be unset. Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. However, the autoscale field may still be in the output. The autopscale.max_slots will always show as 0 and the autoscaler.current_slots will represent the current slots from autoscaler excluding idle slots. For example, if the max_slots is 1000 and scaling_mode is AUTOSCALE_ONLY, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots may be any value between 0 and 1000. If the max_slots is 1000, scaling_mode is ALL_SLOTS, the baseline is 100 and idle slots usage is 200, then in the output, the autoscaler.max_slots will be 0 and the autoscaler.current_slots will not be higher than 700. If the max_slots is 1000, scaling_mode is IDLE_SLOTS_ONLY, then in the output, the autoscaler field will be null. If the max_slots and scaling_mode are set, then the ignore_idle_slots field must be aligned with the scaling_mode enum value.(See details in ScalingMode comments). Otherwise the request will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. Please note, the max_slots is for user to manage the part of slots greater than the baseline. Therefore, we don't allow users to set max_slots smaller or equal to the baseline as it will not be meaningful. If the field is present and slot_capacity>=max_slots, requests will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`. Please note that if max_slots is set to 0, we will treat it as unset. Customers can set max_slots to 0 and set scaling_mode to SCALING_MODE_UNSPECIFIED to disable the max_slots feature.
- name: scalingMode
value: string
description: >
Optional. The scaling mode for the reservation. If the field is present but max_slots is not present, requests will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.
valid_values: ['SCALING_MODE_UNSPECIFIED', 'AUTOSCALE_ONLY', 'IDLE_SLOTS_ONLY', 'ALL_SLOTS']
- name: labels
value: object
description: >
Optional. The labels associated with this reservation. You can use these to organize and group your reservations. You can set this property when you create or update a reservation.
- name: reservationGroup
value: string
description: >
Optional. The reservation group that this reservation belongs to. You can set this property when you create or update a reservation. Reservations do not need to belong to a reservation group. Format: projects/{project}/locations/{location}/reservationGroups/{reservation_group} or just {reservation_group}
- name: reservationId
value: string
UPDATE
examples
- patch
Updates an existing reservation resource.
UPDATE google.bigqueryreservation.reservations
SET
data__name = '{{ name }}',
data__slotCapacity = '{{ slotCapacity }}',
data__ignoreIdleSlots = {{ ignoreIdleSlots }},
data__autoscale = '{{ autoscale }}',
data__concurrency = '{{ concurrency }}',
data__multiRegionAuxiliary = {{ multiRegionAuxiliary }},
data__edition = '{{ edition }}',
data__secondaryLocation = '{{ secondaryLocation }}',
data__maxSlots = '{{ maxSlots }}',
data__scalingMode = '{{ scalingMode }}',
data__labels = '{{ labels }}',
data__reservationGroup = '{{ reservationGroup }}'
WHERE
projectsId = '{{ projectsId }}' --required
AND locationsId = '{{ locationsId }}' --required
AND reservationsId = '{{ reservationsId }}' --required
AND updateMask = '{{ updateMask}}'
RETURNING
name,
autoscale,
concurrency,
creationTime,
edition,
ignoreIdleSlots,
labels,
maxSlots,
multiRegionAuxiliary,
originalPrimaryLocation,
primaryLocation,
replicationStatus,
reservationGroup,
scalingMode,
secondaryLocation,
slotCapacity,
updateTime;
DELETE
examples
- delete
Deletes a reservation. Returns google.rpc.Code.FAILED_PRECONDITION
when reservation has assignments.
DELETE FROM google.bigqueryreservation.reservations
WHERE projectsId = '{{ projectsId }}' --required
AND locationsId = '{{ locationsId }}' --required
AND reservationsId = '{{ reservationsId }}' --required;
Lifecycle Methods
- failover_reservation
Fail over a reservation to the secondary location. The operation should be done in the current secondary location, which will be promoted to the new primary location for the reservation. Attempting to failover a reservation in the current primary location will fail with the error code google.rpc.Code.FAILED_PRECONDITION
.
EXEC google.bigqueryreservation.reservations.failover_reservation
@projectsId='{{ projectsId }}' --required,
@locationsId='{{ locationsId }}' --required,
@reservationsId='{{ reservationsId }}' --required
@@json=
'{
"failoverMode": "{{ failoverMode }}"
}';