Skip to content

Commit

Permalink
impl(bigquery): Add augmented JobConfigurationQuery to Job and ListFo…
Browse files Browse the repository at this point in the history
…rmatJob (#11819)
  • Loading branch information
jsrinnn authored Jun 9, 2023
1 parent cd19c07 commit facd5b4
Show file tree
Hide file tree
Showing 8 changed files with 172 additions and 196 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(KeyResultStatementKind, value);
// For more details, please see:
// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#ScriptOptions
struct ScriptOptions {
std::int64_t statement_timeout_ms;
std::int64_t statement_byte_budget;
std::int64_t statement_timeout_ms = 0;
std::int64_t statement_byte_budget = 0;

KeyResultStatementKind key_result_statement;
};
Expand Down
29 changes: 1 addition & 28 deletions google/cloud/bigquery/v2/minimal/internal/job_configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_V2_MINIMAL_INTERNAL_JOB_CONFIGURATION_H

#include "google/cloud/bigquery/v2/minimal/internal/common_v2_resources.h"
#include "google/cloud/bigquery/v2/minimal/internal/job_configuration_query.h"
#include "google/cloud/tracing_options.h"
#include "google/cloud/version.h"
#include "absl/strings/string_view.h"
Expand All @@ -31,27 +32,6 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
// NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.
using namespace nlohmann::literals; // NOLINT

struct JobConfigurationQuery {
std::string query;
std::string create_disposition;
std::string write_disposition;
std::string priority;
std::string parameter_mode;
bool preserve_nulls = false;
bool allow_large_results = false;
bool use_query_cache = false;
bool flatten_results = false;
bool use_legacy_sql = false;
bool create_session = false;
std::int64_t maximum_bytes_billed = 0;

DatasetReference default_dataset;
TableReference destination_table;
std::vector<QueryParameter> query_parameters;
std::vector<std::string> schema_update_options;
std::vector<ConnectionProperty> connection_properties;
};

struct JobConfiguration {
std::string job_type;
bool dry_run = false;
Expand All @@ -64,13 +44,6 @@ struct JobConfiguration {
TracingOptions const& options = {},
int indent = 0) const;
};

NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(
JobConfigurationQuery, query, create_disposition, write_disposition,
priority, parameter_mode, preserve_nulls, allow_large_results,
use_query_cache, flatten_results, use_legacy_sql, create_session,
maximum_bytes_billed, default_dataset, destination_table, query_parameters,
schema_update_options, connection_properties);
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(JobConfiguration, job_type,
query_config, dry_run,
job_timeout_ms, labels);
Expand Down
33 changes: 18 additions & 15 deletions google/cloud/bigquery/v2/minimal/internal/job_query_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,19 @@ struct ExplainQueryStage {
std::int64_t completed_parallel_inputs;
std::vector<std::int64_t> input_stages;

std::chrono::milliseconds start_time;
std::chrono::milliseconds end_time;
std::chrono::milliseconds slot_time;
std::chrono::milliseconds wait_avg_time_spent;
std::chrono::milliseconds wait_max_time_spent;
std::chrono::milliseconds read_avg_time_spent;
std::chrono::milliseconds read_max_time_spent;
std::chrono::milliseconds write_avg_time_spent;
std::chrono::milliseconds write_max_time_spent;
std::chrono::milliseconds compute_avg_time_spent;
std::chrono::milliseconds compute_max_time_spent;
std::chrono::milliseconds start_time = std::chrono::milliseconds(0);
std::chrono::milliseconds end_time = std::chrono::milliseconds(0);
std::chrono::milliseconds slot_time = std::chrono::milliseconds(0);
std::chrono::milliseconds wait_avg_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds wait_max_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds read_avg_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds read_max_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds write_avg_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds write_max_time_spent = std::chrono::milliseconds(0);
std::chrono::milliseconds compute_avg_time_spent =
std::chrono::milliseconds(0);
std::chrono::milliseconds compute_max_time_spent =
std::chrono::milliseconds(0);

double wait_ratio_avg;
double wait_ratio_max;
Expand All @@ -114,8 +116,8 @@ bool operator==(ExplainQueryStage const& lhs, ExplainQueryStage const& rhs);
// For more details on field members, please see:
// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#querytimelinesample.
struct QueryTimelineSample {
std::chrono::milliseconds elapsed_time;
std::chrono::milliseconds total_slot_time;
std::chrono::milliseconds elapsed_time = std::chrono::milliseconds(0);
std::chrono::milliseconds total_slot_time = std::chrono::milliseconds(0);

std::int64_t pending_units;
std::int64_t completed_units;
Expand Down Expand Up @@ -278,7 +280,8 @@ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(
// For more details on field members, please see:
// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#performanceinsights.
struct PerformanceInsights {
std::chrono::milliseconds avg_previous_execution_time;
std::chrono::milliseconds avg_previous_execution_time =
std::chrono::milliseconds(0);

StagePerformanceStandaloneInsight stage_performance_standalone_insights;
StagePerformanceChangeInsight stage_performance_change_insights;
Expand Down Expand Up @@ -393,7 +396,7 @@ struct JobQueryStatistics {
std::string statement_type;
std::string ddl_operation_performed;

std::chrono::milliseconds total_slot_time;
std::chrono::milliseconds total_slot_time = std::chrono::milliseconds(0);
bool cache_hit;

std::vector<ExplainQueryStage> query_plan;
Expand Down
11 changes: 6 additions & 5 deletions google/cloud/bigquery/v2/minimal/internal/job_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,12 @@ bool operator==(ScriptStatistics const& lhs, ScriptStatistics const& rhs);
// For more details, please see:
// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#JobStatistics
struct JobStatistics {
std::chrono::milliseconds creation_time;
std::chrono::milliseconds start_time;
std::chrono::milliseconds end_time;
std::chrono::milliseconds total_slot_time;
std::chrono::milliseconds final_execution_duration;
std::chrono::milliseconds creation_time = std::chrono::milliseconds(0);
std::chrono::milliseconds start_time = std::chrono::milliseconds(0);
std::chrono::milliseconds end_time = std::chrono::milliseconds(0);
std::chrono::milliseconds total_slot_time = std::chrono::milliseconds(0);
std::chrono::milliseconds final_execution_duration =
std::chrono::milliseconds(0);

std::int64_t total_bytes_processed;
std::int64_t num_child_jobs;
Expand Down
Loading

0 comments on commit facd5b4

Please sign in to comment.