use super::{
super::Client,
jobs::{run_job, Job, JobConfigurationExtract, Labels, TableReference},
};
use crate::common::*;
use crate::drivers::bigquery_shared::TableName;
#[instrument(level = "trace", skip(labels))]
pub(crate) async fn extract(
source_table: &TableName,
dest_gs_url: &Url,
labels: &Labels,
) -> Result<()> {
let config = JobConfigurationExtract {
destination_uris: vec![format!("{}/*.csv", dest_gs_url)],
source_table: TableReference::from(source_table),
};
let client = Client::new().await?;
run_job(
&client,
source_table.project(),
Job::new_extract(config, labels.to_owned()),
)
.await?;
Ok(())
}