pub struct BigQuerySourceConfig {
pub project_id: String,
pub auth: BigQueryCredentials,
pub query: String,
pub use_legacy_sql: bool,
pub location: Option<String>,
pub max_results_per_page: i32,
pub params: Vec<Value>,
pub statement_timeout: Duration,
pub poll_timeout: Duration,
pub batch_size: usize,
}Expand description
Configuration for the BigQuery query source.
Fields§
§project_id: StringGCP project ID against which the query is billed and run.
auth: BigQueryCredentialsAuthentication — the auth field, consistent with every other connector.
query: StringSQL statement to execute. May contain ${field.path} placeholders that
are resolved against the parent-record context at runtime as
positional ? markers; matched values are appended to
params when the query is sent.
use_legacy_sql: boolWhether to use BigQuery’s legacy SQL dialect. Defaults to false
(Standard SQL). Set to true only for tables that use legacy
[project:dataset.table] references.
location: Option<String>Optional location override for non-US jobs ("EU", "asia-east1").
When None, BigQuery uses the default location for the queried tables.
max_results_per_page: i32Maximum rows per page when calling jobs.getQueryResults. Smaller
values trade more HTTP round-trips for lower memory; larger values
trade memory for fewer requests. Defaults to 1000.
params: Vec<Value>Positional bind parameters for the query, sent as
POSITIONAL
query parameters in declaration order before any context-derived
values. Each value is shipped as a STRING parameter; BigQuery casts
as needed at execution time.
statement_timeout: DurationPer-statement server-side timeout. Forwarded to the
timeoutMs field on jobs.query. Defaults to 60 seconds. If
BigQuery does not finish the query within this window it responds
with jobComplete=false; the source then polls
jobs.getQueryResults until the job completes.
poll_timeout: DurationMaximum wall-clock time the source will spend polling
jobs.getQueryResults for a job that keeps reporting
jobComplete=false, before giving up with
FaucetError::Source.
Without this cap a job that never completes would loop forever.
Defaults to 300 seconds. Set to 0 to disable the cap and poll
indefinitely. Only the completion wait is bounded; once the job is
complete, ordinary pageToken paging is unaffected.
batch_size: usizeRecords per emitted StreamPage. Rows
returned by BigQuery are re-framed into pages of this size — every
time the buffer reaches batch_size, a page is yielded. Defaults to
DEFAULT_BATCH_SIZE.
batch_size = 0 is the “no batching” sentinel: the entire
result set is buffered and emitted in a single page. Useful for
small lookup tables, or for sinks that prefer one large request to
many small ones.
Implementations§
Source§impl BigQuerySourceConfig
impl BigQuerySourceConfig
Sourcepub fn new(
project_id: impl Into<String>,
credentials: BigQueryCredentials,
query: impl Into<String>,
) -> Self
pub fn new( project_id: impl Into<String>, credentials: BigQueryCredentials, query: impl Into<String>, ) -> Self
Create a new config with required fields and sensible defaults.
Sourcepub fn with_use_legacy_sql(self, use_legacy: bool) -> Self
pub fn with_use_legacy_sql(self, use_legacy: bool) -> Self
Enable BigQuery’s legacy SQL dialect.
Sourcepub fn with_location(self, location: impl Into<String>) -> Self
pub fn with_location(self, location: impl Into<String>) -> Self
Pin the job to a specific location (e.g. "EU").
Sourcepub fn with_max_results_per_page(self, max_results: i32) -> Self
pub fn with_max_results_per_page(self, max_results: i32) -> Self
Set the maximum row count per getQueryResults page.
Sourcepub fn with_params(self, params: Vec<Value>) -> Self
pub fn with_params(self, params: Vec<Value>) -> Self
Set the positional bind parameters for the query.
Sourcepub fn with_statement_timeout(self, timeout: Duration) -> Self
pub fn with_statement_timeout(self, timeout: Duration) -> Self
Set the per-statement server-side timeout.
Sourcepub fn with_poll_timeout(self, timeout: Duration) -> Self
pub fn with_poll_timeout(self, timeout: Duration) -> Self
Set the maximum wall-clock time spent polling for job completion
before giving up. Pass Duration::ZERO to poll forever.
Sourcepub fn with_batch_size(self, batch_size: usize) -> Self
pub fn with_batch_size(self, batch_size: usize) -> Self
Set the records-per-page hint for Source::stream_pages.
Pass 0 to opt out of batching — the entire result set is emitted
in a single page.
Trait Implementations§
Source§impl Clone for BigQuerySourceConfig
impl Clone for BigQuerySourceConfig
Source§fn clone(&self) -> BigQuerySourceConfig
fn clone(&self) -> BigQuerySourceConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BigQuerySourceConfig
impl Debug for BigQuerySourceConfig
Source§impl<'de> Deserialize<'de> for BigQuerySourceConfig
impl<'de> Deserialize<'de> for BigQuerySourceConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for BigQuerySourceConfig
impl JsonSchema for BigQuerySourceConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for BigQuerySourceConfig
impl RefUnwindSafe for BigQuerySourceConfig
impl Send for BigQuerySourceConfig
impl Sync for BigQuerySourceConfig
impl Unpin for BigQuerySourceConfig
impl UnsafeUnpin for BigQuerySourceConfig
impl UnwindSafe for BigQuerySourceConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request