mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
Clickhouse-benchmark added query parameter
This commit is contained in:
parent
67c82eb61b
commit
97cfaea182
@ -9,6 +9,12 @@ Connects to a ClickHouse server and repeatedly sends specified queries.
|
|||||||
|
|
||||||
Syntax:
|
Syntax:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ clickhouse-benchmark --query ["single query"] [keys]
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
$ echo "single query" | clickhouse-benchmark [keys]
|
$ echo "single query" | clickhouse-benchmark [keys]
|
||||||
```
|
```
|
||||||
@ -34,6 +40,7 @@ clickhouse-benchmark [keys] < queries_file
|
|||||||
|
|
||||||
## Keys {#clickhouse-benchmark-keys}
|
## Keys {#clickhouse-benchmark-keys}
|
||||||
|
|
||||||
|
- `--query=WORD` - Query to execute. If this parameter is not passed clickhouse-benchmark will read queries from standard input.
|
||||||
- `-c N`, `--concurrency=N` — Number of queries that `clickhouse-benchmark` sends simultaneously. Default value: 1.
|
- `-c N`, `--concurrency=N` — Number of queries that `clickhouse-benchmark` sends simultaneously. Default value: 1.
|
||||||
- `-d N`, `--delay=N` — Interval in seconds between intermediate reports (set 0 to disable reports). Default value: 1.
|
- `-d N`, `--delay=N` — Interval in seconds between intermediate reports (set 0 to disable reports). Default value: 1.
|
||||||
- `-h WORD`, `--host=WORD` — Server host. Default value: `localhost`. For the [comparison mode](#clickhouse-benchmark-comparison-mode) you can use multiple `-h` keys.
|
- `-h WORD`, `--host=WORD` — Server host. Default value: `localhost`. For the [comparison mode](#clickhouse-benchmark-comparison-mode) you can use multiple `-h` keys.
|
||||||
|
@ -60,13 +60,13 @@ public:
|
|||||||
const String & user_, const String & password_, const String & stage,
|
const String & user_, const String & password_, const String & stage,
|
||||||
bool randomize_, size_t max_iterations_, double max_time_,
|
bool randomize_, size_t max_iterations_, double max_time_,
|
||||||
const String & json_path_, size_t confidence_,
|
const String & json_path_, size_t confidence_,
|
||||||
const String & query_id_, bool continue_on_errors_,
|
const String & query_id_, const String & query_to_execute_, bool continue_on_errors_,
|
||||||
bool print_stacktrace_, const Settings & settings_)
|
bool print_stacktrace_, const Settings & settings_)
|
||||||
:
|
:
|
||||||
concurrency(concurrency_), delay(delay_), queue(concurrency), randomize(randomize_),
|
concurrency(concurrency_), delay(delay_), queue(concurrency), randomize(randomize_),
|
||||||
cumulative(cumulative_), max_iterations(max_iterations_), max_time(max_time_),
|
cumulative(cumulative_), max_iterations(max_iterations_), max_time(max_time_),
|
||||||
json_path(json_path_), confidence(confidence_), query_id(query_id_),
|
json_path(json_path_), confidence(confidence_), query_id(query_id_),
|
||||||
continue_on_errors(continue_on_errors_),
|
query_to_execute(query_to_execute_), continue_on_errors(continue_on_errors_),
|
||||||
print_stacktrace(print_stacktrace_), settings(settings_),
|
print_stacktrace(print_stacktrace_), settings(settings_),
|
||||||
shared_context(Context::createShared()), global_context(Context::createGlobal(shared_context.get())),
|
shared_context(Context::createShared()), global_context(Context::createGlobal(shared_context.get())),
|
||||||
pool(concurrency)
|
pool(concurrency)
|
||||||
@ -150,7 +150,8 @@ private:
|
|||||||
double max_time;
|
double max_time;
|
||||||
String json_path;
|
String json_path;
|
||||||
size_t confidence;
|
size_t confidence;
|
||||||
std::string query_id;
|
String query_id;
|
||||||
|
String query_to_execute;
|
||||||
bool continue_on_errors;
|
bool continue_on_errors;
|
||||||
bool print_stacktrace;
|
bool print_stacktrace;
|
||||||
const Settings & settings;
|
const Settings & settings;
|
||||||
@ -213,20 +214,25 @@ private:
|
|||||||
|
|
||||||
void readQueries()
|
void readQueries()
|
||||||
{
|
{
|
||||||
ReadBufferFromFileDescriptor in(STDIN_FILENO);
|
if (query_to_execute.empty()) {
|
||||||
|
ReadBufferFromFileDescriptor in(STDIN_FILENO);
|
||||||
|
|
||||||
while (!in.eof())
|
while (!in.eof())
|
||||||
{
|
{
|
||||||
std::string query;
|
String query;
|
||||||
readText(query, in);
|
readText(query, in);
|
||||||
assertChar('\n', in);
|
assertChar('\n', in);
|
||||||
|
|
||||||
if (!query.empty())
|
if (!query.empty())
|
||||||
queries.emplace_back(query);
|
queries.emplace_back(std::move(query));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (queries.empty())
|
||||||
|
throw Exception("Empty list of queries.", ErrorCodes::EMPTY_DATA_PASSED);
|
||||||
|
} else {
|
||||||
|
queries.emplace_back(query_to_execute);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queries.empty())
|
|
||||||
throw Exception("Empty list of queries.", ErrorCodes::EMPTY_DATA_PASSED);
|
|
||||||
|
|
||||||
std::cerr << "Loaded " << queries.size() << " queries.\n";
|
std::cerr << "Loaded " << queries.size() << " queries.\n";
|
||||||
}
|
}
|
||||||
@ -559,6 +565,7 @@ int mainEntryClickHouseBenchmark(int argc, char ** argv)
|
|||||||
boost::program_options::options_description desc = createOptionsDescription("Allowed options", getTerminalWidth());
|
boost::program_options::options_description desc = createOptionsDescription("Allowed options", getTerminalWidth());
|
||||||
desc.add_options()
|
desc.add_options()
|
||||||
("help", "produce help message")
|
("help", "produce help message")
|
||||||
|
("query", value<std::string>()->default_value(""), "query to execute")
|
||||||
("concurrency,c", value<unsigned>()->default_value(1), "number of parallel queries")
|
("concurrency,c", value<unsigned>()->default_value(1), "number of parallel queries")
|
||||||
("delay,d", value<double>()->default_value(1), "delay between intermediate reports in seconds (set 0 to disable reports)")
|
("delay,d", value<double>()->default_value(1), "delay between intermediate reports in seconds (set 0 to disable reports)")
|
||||||
("stage", value<std::string>()->default_value("complete"), "request query processing up to specified stage: complete,fetch_columns,with_mergeable_state,with_mergeable_state_after_aggregation")
|
("stage", value<std::string>()->default_value("complete"), "request query processing up to specified stage: complete,fetch_columns,with_mergeable_state,with_mergeable_state_after_aggregation")
|
||||||
@ -625,6 +632,7 @@ int mainEntryClickHouseBenchmark(int argc, char ** argv)
|
|||||||
options["json"].as<std::string>(),
|
options["json"].as<std::string>(),
|
||||||
options["confidence"].as<size_t>(),
|
options["confidence"].as<size_t>(),
|
||||||
options["query_id"].as<std::string>(),
|
options["query_id"].as<std::string>(),
|
||||||
|
options["query"].as<std::string>(),
|
||||||
options.count("continue_on_errors") > 0,
|
options.count("continue_on_errors") > 0,
|
||||||
print_stacktrace,
|
print_stacktrace,
|
||||||
settings);
|
settings);
|
||||||
|
Loading…
Reference in New Issue
Block a user