mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 13:42:02 +00:00
Merge remote-tracking branch 'origin/master' into HEAD
This commit is contained in:
commit
004a393295
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -10,7 +10,7 @@
|
|||||||
url = https://github.com/lz4/lz4.git
|
url = https://github.com/lz4/lz4.git
|
||||||
[submodule "contrib/librdkafka"]
|
[submodule "contrib/librdkafka"]
|
||||||
path = contrib/librdkafka
|
path = contrib/librdkafka
|
||||||
url = https://github.com/edenhill/librdkafka.git
|
url = https://github.com/ClickHouse-Extras/librdkafka.git
|
||||||
[submodule "contrib/cctz"]
|
[submodule "contrib/cctz"]
|
||||||
path = contrib/cctz
|
path = contrib/cctz
|
||||||
url = https://github.com/ClickHouse-Extras/cctz.git
|
url = https://github.com/ClickHouse-Extras/cctz.git
|
||||||
@ -76,7 +76,7 @@
|
|||||||
url = https://github.com/google/snappy
|
url = https://github.com/google/snappy
|
||||||
[submodule "contrib/cppkafka"]
|
[submodule "contrib/cppkafka"]
|
||||||
path = contrib/cppkafka
|
path = contrib/cppkafka
|
||||||
url = https://github.com/ClickHouse-Extras/cppkafka.git
|
url = https://github.com/mfontanini/cppkafka.git
|
||||||
[submodule "contrib/brotli"]
|
[submodule "contrib/brotli"]
|
||||||
path = contrib/brotli
|
path = contrib/brotli
|
||||||
url = https://github.com/google/brotli.git
|
url = https://github.com/google/brotli.git
|
||||||
|
@ -16,4 +16,4 @@ ClickHouse is an open-source column-oriented database management system that all
|
|||||||
|
|
||||||
## Upcoming Events
|
## Upcoming Events
|
||||||
|
|
||||||
* [ClickHouse at ByteDance (in Chinese)](https://mp.weixin.qq.com/s/Em-HjPylO8D7WPui4RREAQ) on July 31, 2020.
|
* [ClickHouse at ByteDance (in Chinese)](https://mp.weixin.qq.com/s/Em-HjPylO8D7WPui4RREAQ) on August 14, 2020.
|
||||||
|
@ -151,6 +151,11 @@ static void signalHandler(int sig, siginfo_t * info, void * context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Avoid link time dependency on DB/Interpreters - will use this function only when linked.
|
||||||
|
__attribute__((__weak__)) void collectCrashLog(
|
||||||
|
Int32 signal, UInt64 thread_id, const String & query_id, const StackTrace & stack_trace);
|
||||||
|
|
||||||
|
|
||||||
/** The thread that read info about signal or std::terminate from pipe.
|
/** The thread that read info about signal or std::terminate from pipe.
|
||||||
* On HUP / USR1, close log files (for new files to be opened later).
|
* On HUP / USR1, close log files (for new files to be opened later).
|
||||||
* On information about std::terminate, write it to log.
|
* On information about std::terminate, write it to log.
|
||||||
@ -308,16 +313,13 @@ private:
|
|||||||
/// Write symbolized stack trace line by line for better grep-ability.
|
/// Write symbolized stack trace line by line for better grep-ability.
|
||||||
stack_trace.toStringEveryLine([&](const std::string & s) { LOG_FATAL(log, s); });
|
stack_trace.toStringEveryLine([&](const std::string & s) { LOG_FATAL(log, s); });
|
||||||
|
|
||||||
|
/// Write crash to system.crash_log table if available.
|
||||||
|
if (collectCrashLog)
|
||||||
|
collectCrashLog(sig, thread_num, query_id, stack_trace);
|
||||||
|
|
||||||
/// Send crash report to developers (if configured)
|
/// Send crash report to developers (if configured)
|
||||||
|
|
||||||
#if defined(__ELF__) && !defined(__FreeBSD__)
|
|
||||||
const String & build_id_hex = DB::SymbolIndex::instance().getBuildIDHex();
|
|
||||||
#else
|
|
||||||
String build_id_hex{};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (sig != SanitizerTrap)
|
if (sig != SanitizerTrap)
|
||||||
SentryWriter::onFault(sig, error_message, stack_trace, build_id_hex);
|
SentryWriter::onFault(sig, error_message, stack_trace);
|
||||||
|
|
||||||
/// When everything is done, we will try to send these error messages to client.
|
/// When everything is done, we will try to send these error messages to client.
|
||||||
if (thread_ptr)
|
if (thread_ptr)
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <common/getFQDNOrHostName.h>
|
#include <common/getFQDNOrHostName.h>
|
||||||
#include <common/logger_useful.h>
|
#include <common/logger_useful.h>
|
||||||
|
|
||||||
|
#include <Common/SymbolIndex.h>
|
||||||
#include <Common/StackTrace.h>
|
#include <Common/StackTrace.h>
|
||||||
|
|
||||||
#if !defined(ARCADIA_BUILD)
|
#if !defined(ARCADIA_BUILD)
|
||||||
@ -157,7 +158,7 @@ void SentryWriter::shutdown()
|
|||||||
sentry_shutdown();
|
sentry_shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SentryWriter::onFault(int sig, const std::string & error_message, const StackTrace & stack_trace, const std::string & build_id_hex)
|
void SentryWriter::onFault(int sig, const std::string & error_message, const StackTrace & stack_trace)
|
||||||
{
|
{
|
||||||
auto * logger = &Poco::Logger::get("SentryWriter");
|
auto * logger = &Poco::Logger::get("SentryWriter");
|
||||||
if (initialized)
|
if (initialized)
|
||||||
@ -165,10 +166,12 @@ void SentryWriter::onFault(int sig, const std::string & error_message, const Sta
|
|||||||
sentry_value_t event = sentry_value_new_message_event(SENTRY_LEVEL_FATAL, "fault", error_message.c_str());
|
sentry_value_t event = sentry_value_new_message_event(SENTRY_LEVEL_FATAL, "fault", error_message.c_str());
|
||||||
sentry_set_tag("signal", strsignal(sig));
|
sentry_set_tag("signal", strsignal(sig));
|
||||||
sentry_set_extra("signal_number", sentry_value_new_int32(sig));
|
sentry_set_extra("signal_number", sentry_value_new_int32(sig));
|
||||||
if (!build_id_hex.empty())
|
|
||||||
{
|
#if defined(__ELF__) && !defined(__FreeBSD__)
|
||||||
|
const String & build_id_hex = DB::SymbolIndex::instance().getBuildIDHex();
|
||||||
sentry_set_tag("build_id", build_id_hex.c_str());
|
sentry_set_tag("build_id", build_id_hex.c_str());
|
||||||
}
|
#endif
|
||||||
|
|
||||||
setExtras();
|
setExtras();
|
||||||
|
|
||||||
/// Prepare data for https://develop.sentry.dev/sdk/event-payloads/stacktrace/
|
/// Prepare data for https://develop.sentry.dev/sdk/event-payloads/stacktrace/
|
||||||
@ -240,6 +243,6 @@ void SentryWriter::onFault(int sig, const std::string & error_message, const Sta
|
|||||||
|
|
||||||
void SentryWriter::initialize(Poco::Util::LayeredConfiguration &) {}
|
void SentryWriter::initialize(Poco::Util::LayeredConfiguration &) {}
|
||||||
void SentryWriter::shutdown() {}
|
void SentryWriter::shutdown() {}
|
||||||
void SentryWriter::onFault(int, const std::string &, const StackTrace &, const std::string &) {}
|
void SentryWriter::onFault(int, const std::string &, const StackTrace &) {}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -23,7 +23,5 @@ namespace SentryWriter
|
|||||||
void onFault(
|
void onFault(
|
||||||
int sig,
|
int sig,
|
||||||
const std::string & error_message,
|
const std::string & error_message,
|
||||||
const StackTrace & stack_trace,
|
const StackTrace & stack_trace);
|
||||||
const std::string & build_id_hex
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
2
contrib/cppkafka
vendored
2
contrib/cppkafka
vendored
@ -1 +1 @@
|
|||||||
Subproject commit f555ee36aaa74d17ca0dab3ce472070a610b2966
|
Subproject commit b06e64ef5bffd636d918a742c689f69130c1dbab
|
2
contrib/librdkafka
vendored
2
contrib/librdkafka
vendored
@ -1 +1 @@
|
|||||||
Subproject commit b0d91bd74abb5f0e1ee972d326a317ad610f6300
|
Subproject commit 2090cbf56b715247ec2be7f768707a7ab1bf7ede
|
@ -50,6 +50,13 @@ if (HAVE_WARNING_MAYBE_UNINITIALIZED)
|
|||||||
target_compile_options(unwind PRIVATE -Wno-maybe-uninitialized)
|
target_compile_options(unwind PRIVATE -Wno-maybe-uninitialized)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# The library is using register variables that are bound to specific registers
|
||||||
|
# Example: DwarfInstructions.hpp: register unsigned long long x16 __asm("x16") = cfa;
|
||||||
|
check_cxx_compiler_flag(-Wregister HAVE_WARNING_REGISTER)
|
||||||
|
if (HAVE_WARNING_REGISTER)
|
||||||
|
target_compile_options(unwind PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:-Wno-register>")
|
||||||
|
endif ()
|
||||||
|
|
||||||
install(
|
install(
|
||||||
TARGETS unwind
|
TARGETS unwind
|
||||||
EXPORT global
|
EXPORT global
|
||||||
|
4
debian/clickhouse-server.init
vendored
4
debian/clickhouse-server.init
vendored
@ -18,7 +18,6 @@ EXTRACT_FROM_CONFIG=${CLICKHOUSE_GENERIC_PROGRAM}-extract-from-config
|
|||||||
CLICKHOUSE_CONFDIR=/etc/$PROGRAM
|
CLICKHOUSE_CONFDIR=/etc/$PROGRAM
|
||||||
CLICKHOUSE_LOGDIR=/var/log/clickhouse-server
|
CLICKHOUSE_LOGDIR=/var/log/clickhouse-server
|
||||||
CLICKHOUSE_LOGDIR_USER=root
|
CLICKHOUSE_LOGDIR_USER=root
|
||||||
CLICKHOUSE_DATADIR_OLD=/opt/clickhouse
|
|
||||||
CLICKHOUSE_DATADIR=/var/lib/clickhouse
|
CLICKHOUSE_DATADIR=/var/lib/clickhouse
|
||||||
if [ -d "/var/lock" ]; then
|
if [ -d "/var/lock" ]; then
|
||||||
LOCALSTATEDIR=/var/lock
|
LOCALSTATEDIR=/var/lock
|
||||||
@ -34,7 +33,6 @@ CLICKHOUSE_BINDIR=/usr/bin
|
|||||||
CLICKHOUSE_CRONFILE=/etc/cron.d/clickhouse-server
|
CLICKHOUSE_CRONFILE=/etc/cron.d/clickhouse-server
|
||||||
CLICKHOUSE_CONFIG=$CLICKHOUSE_CONFDIR/config.xml
|
CLICKHOUSE_CONFIG=$CLICKHOUSE_CONFDIR/config.xml
|
||||||
LOCKFILE=$LOCALSTATEDIR/$PROGRAM
|
LOCKFILE=$LOCALSTATEDIR/$PROGRAM
|
||||||
RETVAL=0
|
|
||||||
CLICKHOUSE_PIDDIR=/var/run/$PROGRAM
|
CLICKHOUSE_PIDDIR=/var/run/$PROGRAM
|
||||||
CLICKHOUSE_PIDFILE="$CLICKHOUSE_PIDDIR/$PROGRAM.pid"
|
CLICKHOUSE_PIDFILE="$CLICKHOUSE_PIDDIR/$PROGRAM.pid"
|
||||||
# CLICKHOUSE_STOP_TIMEOUT=60 # Disabled by default. Place to /etc/default/clickhouse if you need.
|
# CLICKHOUSE_STOP_TIMEOUT=60 # Disabled by default. Place to /etc/default/clickhouse if you need.
|
||||||
@ -182,7 +180,7 @@ start()
|
|||||||
su -s $SHELL ${CLICKHOUSE_USER} -c "$FLOCK -u 9; $CLICKHOUSE_PROGRAM_ENV exec -a \"$PROGRAM\" \"$CLICKHOUSE_BINDIR/$PROGRAM\" --daemon --pid-file=\"$CLICKHOUSE_PIDFILE\" --config-file=\"$CLICKHOUSE_CONFIG\""
|
su -s $SHELL ${CLICKHOUSE_USER} -c "$FLOCK -u 9; $CLICKHOUSE_PROGRAM_ENV exec -a \"$PROGRAM\" \"$CLICKHOUSE_BINDIR/$PROGRAM\" --daemon --pid-file=\"$CLICKHOUSE_PIDFILE\" --config-file=\"$CLICKHOUSE_CONFIG\""
|
||||||
EXIT_STATUS=$?
|
EXIT_STATUS=$?
|
||||||
if [ $EXIT_STATUS -ne 0 ]; then
|
if [ $EXIT_STATUS -ne 0 ]; then
|
||||||
break
|
return $EXIT_STATUS
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
4
debian/clickhouse-server.postinst
vendored
4
debian/clickhouse-server.postinst
vendored
@ -62,13 +62,13 @@ if [ "$1" = configure ] || [ -n "$not_deb_os" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# check validity of user and group
|
# check validity of user and group
|
||||||
if [ "`id -u ${CLICKHOUSE_USER}`" -eq 0 ]; then
|
if [ "$(id -u ${CLICKHOUSE_USER})" -eq 0 ]; then
|
||||||
echo "The ${CLICKHOUSE_USER} system user must not have uid 0 (root).
|
echo "The ${CLICKHOUSE_USER} system user must not have uid 0 (root).
|
||||||
Please fix this and reinstall this package." >&2
|
Please fix this and reinstall this package." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "`id -g ${CLICKHOUSE_GROUP}`" -eq 0 ]; then
|
if [ "$(id -g ${CLICKHOUSE_GROUP})" -eq 0 ]; then
|
||||||
echo "The ${CLICKHOUSE_USER} system user must not have root as primary group.
|
echo "The ${CLICKHOUSE_USER} system user must not have root as primary group.
|
||||||
Please fix this and reinstall this package." >&2
|
Please fix this and reinstall this package." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
2
debian/rules
vendored
2
debian/rules
vendored
@ -101,7 +101,7 @@ override_dh_clean:
|
|||||||
dh_clean # -X contrib
|
dh_clean # -X contrib
|
||||||
|
|
||||||
override_dh_strip:
|
override_dh_strip:
|
||||||
#https://www.debian.org/doc/debian-policy/ch-source.html#debian-rules-and-deb-build-options
|
#https://www.debian.org/doc/debian-policy/ch-source.html#debian-rules-and-deb-build-options
|
||||||
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
|
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
|
||||||
dh_strip -pclickhouse-common-static --dbg-package=clickhouse-common-static-dbg
|
dh_strip -pclickhouse-common-static --dbg-package=clickhouse-common-static-dbg
|
||||||
endif
|
endif
|
||||||
|
@ -67,6 +67,7 @@ ln -s /usr/share/clickhouse-test/config/part_log.xml /etc/clickhouse-server/conf
|
|||||||
ln -s /usr/share/clickhouse-test/config/text_log.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/text_log.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/metric_log.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/metric_log.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/query_masking_rules.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/query_masking_rules.xml /etc/clickhouse-server/config.d/
|
||||||
|
ln -s /usr/share/clickhouse-test/config/custom_settings_prefixes.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/log_queries.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/log_queries.xml /etc/clickhouse-server/users.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/readonly.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/readonly.xml /etc/clickhouse-server/users.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/access_management.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/access_management.xml /etc/clickhouse-server/users.d/
|
||||||
@ -90,9 +91,67 @@ do
|
|||||||
sleep 0.1
|
sleep 0.1
|
||||||
done
|
done
|
||||||
|
|
||||||
TESTS_TO_SKIP="parquet avro h3 odbc mysql sha256 _orc_ arrow 01098_temporary_and_external_tables 01083_expressions_in_engine_arguments hdfs 00911_tautological_compare protobuf capnproto java_hash hashing secure 00490_special_line_separators_and_characters_outside_of_bmp 00436_convert_charset 00105_shard_collations 01354_order_by_tuple_collate_const 01292_create_user 01098_msgpack_format 00929_multi_match_edit_distance 00926_multimatch 00834_cancel_http_readonly_queries_on_client_close brotli parallel_alter 00302_http_compression 00417_kill_query 01294_lazy_database_concurrent 01193_metadata_loading base64 01031_mutations_interpreter_and_context json client 01305_replica_create_drop_zookeeper 01092_memory_profiler 01355_ilike 01281_unsucceeded_insert_select_queries_counter live_view limit_memory memory_limit memory_leak 00110_external_sort 00682_empty_parts_merge 00701_rollup 00109_shard_totals_after_having ddl_dictionaries 01251_dict_is_in_infinite_loop 01259_dictionary_custom_settings_ddl 01268_dictionary_direct_layout 01280_ssd_complex_key_dictionary 00652_replicated_mutations_zookeeper 01411_bayesian_ab_testing"
|
TESTS_TO_SKIP=(
|
||||||
|
parquet
|
||||||
|
avro
|
||||||
|
h3
|
||||||
|
odbc
|
||||||
|
mysql
|
||||||
|
sha256
|
||||||
|
_orc_
|
||||||
|
arrow
|
||||||
|
01098_temporary_and_external_tables
|
||||||
|
01083_expressions_in_engine_arguments
|
||||||
|
hdfs
|
||||||
|
00911_tautological_compare
|
||||||
|
protobuf
|
||||||
|
capnproto
|
||||||
|
java_hash
|
||||||
|
hashing
|
||||||
|
secure
|
||||||
|
00490_special_line_separators_and_characters_outside_of_bmp
|
||||||
|
00436_convert_charset
|
||||||
|
00105_shard_collations
|
||||||
|
01354_order_by_tuple_collate_const
|
||||||
|
01292_create_user
|
||||||
|
01098_msgpack_format
|
||||||
|
00929_multi_match_edit_distance
|
||||||
|
00926_multimatch
|
||||||
|
00834_cancel_http_readonly_queries_on_client_close
|
||||||
|
brotli
|
||||||
|
parallel_alter
|
||||||
|
00302_http_compression
|
||||||
|
00417_kill_query
|
||||||
|
01294_lazy_database_concurrent
|
||||||
|
01193_metadata_loading
|
||||||
|
base64
|
||||||
|
01031_mutations_interpreter_and_context
|
||||||
|
json
|
||||||
|
client
|
||||||
|
01305_replica_create_drop_zookeeper
|
||||||
|
01092_memory_profiler
|
||||||
|
01355_ilike
|
||||||
|
01281_unsucceeded_insert_select_queries_counter
|
||||||
|
live_view
|
||||||
|
limit_memory
|
||||||
|
memory_limit
|
||||||
|
memory_leak
|
||||||
|
00110_external_sort
|
||||||
|
00682_empty_parts_merge
|
||||||
|
00701_rollup
|
||||||
|
00109_shard_totals_after_having
|
||||||
|
ddl_dictionaries
|
||||||
|
01251_dict_is_in_infinite_loop
|
||||||
|
01259_dictionary_custom_settings_ddl
|
||||||
|
01268_dictionary_direct_layout
|
||||||
|
01280_ssd_complex_key_dictionary
|
||||||
|
00652_replicated_mutations_zookeeper
|
||||||
|
01411_bayesian_ab_testing
|
||||||
|
# TRUNCATE TABLE system.query_log -- conflicts with other tests
|
||||||
|
01413_rows_events
|
||||||
|
)
|
||||||
|
|
||||||
clickhouse-test -j 4 --no-long --testname --shard --zookeeper --skip $TESTS_TO_SKIP 2>&1 | ts '%Y-%m-%d %H:%M:%S' | tee /test_output/test_log.txt
|
clickhouse-test -j 4 --no-long --testname --shard --zookeeper --skip ${TESTS_TO_SKIP[*]} 2>&1 | ts '%Y-%m-%d %H:%M:%S' | tee /test_output/test_log.txt
|
||||||
|
|
||||||
|
|
||||||
kill_clickhouse () {
|
kill_clickhouse () {
|
||||||
|
@ -29,7 +29,9 @@ RUN apt-get update \
|
|||||||
|
|
||||||
COPY * /
|
COPY * /
|
||||||
|
|
||||||
CMD cd /workspace \
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
CMD set -o pipefail \
|
||||||
|
&& cd /workspace \
|
||||||
&& /run-fuzzer.sh 2>&1 | ts "$(printf '%%Y-%%m-%%d %%H:%%M:%%S\t')" | tee main.log
|
&& /run-fuzzer.sh 2>&1 | ts "$(printf '%%Y-%%m-%%d %%H:%%M:%%S\t')" | tee main.log
|
||||||
|
|
||||||
# docker run --network=host --volume <workspace>:/workspace -e PR_TO_TEST=<> -e SHA_TO_TEST=<> yandex/clickhouse-fuzzer
|
# docker run --network=host --volume <workspace>:/workspace -e PR_TO_TEST=<> -e SHA_TO_TEST=<> yandex/clickhouse-fuzzer
|
||||||
|
@ -100,12 +100,6 @@ function fuzz
|
|||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
killall -9 clickhouse-server ||:
|
killall -9 clickhouse-server ||:
|
||||||
|
|
||||||
if [ "$fuzzer_exit_code" == "143" ]
|
|
||||||
then
|
|
||||||
# Killed by watchdog, meaning, no errors.
|
|
||||||
fuzzer_exit_code=0
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$stage" in
|
case "$stage" in
|
||||||
@ -122,8 +116,9 @@ case "$stage" in
|
|||||||
# Run the testing script from the repository
|
# Run the testing script from the repository
|
||||||
echo Using the testing script from the repository
|
echo Using the testing script from the repository
|
||||||
export stage=download
|
export stage=download
|
||||||
|
time ch/docker/test/fuzzer/run-fuzzer.sh
|
||||||
# Keep the error code
|
# Keep the error code
|
||||||
time ch/docker/test/fuzzer/run-fuzzer.sh || exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
;&
|
;&
|
||||||
"download")
|
"download")
|
||||||
@ -154,19 +149,31 @@ case "$stage" in
|
|||||||
pstree -aspgT
|
pstree -aspgT
|
||||||
|
|
||||||
# Make files with status and description we'll show for this check on Github
|
# Make files with status and description we'll show for this check on Github
|
||||||
if [ "$fuzzer_exit_code" == 0 ]
|
task_exit_code=$fuzzer_exit_code
|
||||||
|
if [ "$fuzzer_exit_code" == 143 ]
|
||||||
then
|
then
|
||||||
echo "OK" > description.txt
|
# SIGTERM -- the fuzzer was killed by timeout, which means a normal run.
|
||||||
echo "success" > status.txt
|
echo "success" > status.txt
|
||||||
else
|
echo "OK" > description.txt
|
||||||
|
task_exit_code=0
|
||||||
|
elif [ "$fuzzer_exit_code" == 210 ]
|
||||||
|
then
|
||||||
|
# Lost connection to the server. This probably means that the server died
|
||||||
|
# with abort.
|
||||||
echo "failure" > status.txt
|
echo "failure" > status.txt
|
||||||
if ! grep -a "Received signal \|Logical error" server.log > description.txt
|
if ! grep -ao "Received signal.*\|Logical error.*\|Assertion.*failed" server.log > description.txt
|
||||||
then
|
then
|
||||||
echo "Fuzzer exit code $fuzzer_exit_code. See the logs" > description.txt
|
echo "Lost connection to server. See the logs" > description.txt
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
# Something different -- maybe the fuzzer itself died? Don't grep the
|
||||||
|
# server log in this case, because we will find a message about normal
|
||||||
|
# server termination (Received signal 15), which is confusing.
|
||||||
|
echo "failure" > status.txt
|
||||||
|
echo "Fuzzer failed ($fuzzer_exit_code). See the logs" > description.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit $fuzzer_exit_code
|
exit $task_exit_code
|
||||||
;&
|
;&
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -467,8 +467,8 @@ create view partial_query_times as select * from
|
|||||||
-- Report for partial queries that we could only run on the new server (e.g.
|
-- Report for partial queries that we could only run on the new server (e.g.
|
||||||
-- queries with new functions added in the tested PR).
|
-- queries with new functions added in the tested PR).
|
||||||
create table partial_queries_report engine File(TSV, 'report/partial-queries-report.tsv')
|
create table partial_queries_report engine File(TSV, 'report/partial-queries-report.tsv')
|
||||||
as select floor(time_median, 3) time,
|
as select toDecimal64(time_median, 3) time,
|
||||||
floor(time_stddev / time_median, 3) relative_time_stddev,
|
toDecimal64(time_stddev / time_median, 3) relative_time_stddev,
|
||||||
test, query_index, query_display_name
|
test, query_index, query_display_name
|
||||||
from partial_query_times
|
from partial_query_times
|
||||||
join query_display_names using (test, query_index)
|
join query_display_names using (test, query_index)
|
||||||
@ -514,11 +514,22 @@ create table queries engine File(TSVWithNamesAndTypes, 'report/queries.tsv')
|
|||||||
;
|
;
|
||||||
|
|
||||||
create table changed_perf_report engine File(TSV, 'report/changed-perf.tsv') as
|
create table changed_perf_report engine File(TSV, 'report/changed-perf.tsv') as
|
||||||
select left, right, diff, stat_threshold, changed_fail, test, query_index, query_display_name
|
select
|
||||||
|
toDecimal64(left, 3), toDecimal64(right, 3),
|
||||||
|
-- server_time is sometimes reported as zero (if it's less than 1 ms),
|
||||||
|
-- so we have to work around this to not get an error about conversion
|
||||||
|
-- of NaN to decimal.
|
||||||
|
left > right
|
||||||
|
? '- ' || toString(toDecimal64(left / (right + 0.001), 3)) || 'x'
|
||||||
|
: '+ ' || toString(toDecimal64(right / (left + 0.001), 3)) || 'x',
|
||||||
|
toDecimal64(diff, 3), toDecimal64(stat_threshold, 3),
|
||||||
|
changed_fail, test, query_index, query_display_name
|
||||||
from queries where changed_show order by abs(diff) desc;
|
from queries where changed_show order by abs(diff) desc;
|
||||||
|
|
||||||
create table unstable_queries_report engine File(TSV, 'report/unstable-queries.tsv') as
|
create table unstable_queries_report engine File(TSV, 'report/unstable-queries.tsv') as
|
||||||
select left, right, diff, stat_threshold, unstable_fail, test, query_index, query_display_name
|
select
|
||||||
|
toDecimal64(left, 3), toDecimal64(right, 3), toDecimal64(diff, 3),
|
||||||
|
toDecimal64(stat_threshold, 3), unstable_fail, test, query_index, query_display_name
|
||||||
from queries where unstable_show order by stat_threshold desc;
|
from queries where unstable_show order by stat_threshold desc;
|
||||||
|
|
||||||
create table test_time_changes engine File(TSV, 'report/test-time-changes.tsv') as
|
create table test_time_changes engine File(TSV, 'report/test-time-changes.tsv') as
|
||||||
@ -545,7 +556,7 @@ create table test_perf_changes_report engine File(TSV, 'report/test-perf-changes
|
|||||||
coalesce(total_unstable, 0) total_unstable,
|
coalesce(total_unstable, 0) total_unstable,
|
||||||
coalesce(total_changed, 0) total_changed,
|
coalesce(total_changed, 0) total_changed,
|
||||||
total_unstable + total_changed total_bad,
|
total_unstable + total_changed total_bad,
|
||||||
coalesce(toString(floor(average_time_change, 3)), '??') average_time_change_str
|
coalesce(toString(toDecimal64(average_time_change, 3)), '??') average_time_change_str
|
||||||
from test_time_changes
|
from test_time_changes
|
||||||
full join unstable_tests
|
full join unstable_tests
|
||||||
using test
|
using test
|
||||||
@ -560,9 +571,10 @@ create view total_client_time_per_query as select *
|
|||||||
'test text, query_index int, client float, server float');
|
'test text, query_index int, client float, server float');
|
||||||
|
|
||||||
create table slow_on_client_report engine File(TSV, 'report/slow-on-client.tsv') as
|
create table slow_on_client_report engine File(TSV, 'report/slow-on-client.tsv') as
|
||||||
select client, server, floor(client/server, 3) p, test, query_display_name
|
select client, server, toDecimal64(client/server, 3) p,
|
||||||
|
test, query_display_name
|
||||||
from total_client_time_per_query left join query_display_names using (test, query_index)
|
from total_client_time_per_query left join query_display_names using (test, query_index)
|
||||||
where p > 1.02 order by p desc;
|
where p > toDecimal64(1.02, 3) order by p desc;
|
||||||
|
|
||||||
create table wall_clock_time_per_test engine Memory as select *
|
create table wall_clock_time_per_test engine Memory as select *
|
||||||
from file('wall-clock-times.tsv', TSV, 'test text, real float, user float, system float');
|
from file('wall-clock-times.tsv', TSV, 'test text, real float, user float, system float');
|
||||||
@ -577,12 +589,12 @@ create table test_time engine Memory as
|
|||||||
|
|
||||||
create table test_times_report engine File(TSV, 'report/test-times.tsv') as
|
create table test_times_report engine File(TSV, 'report/test-times.tsv') as
|
||||||
select wall_clock_time_per_test.test, real,
|
select wall_clock_time_per_test.test, real,
|
||||||
floor(total_client_time, 3),
|
toDecimal64(total_client_time, 3),
|
||||||
queries,
|
queries,
|
||||||
short_queries,
|
short_queries,
|
||||||
floor(query_max, 3),
|
toDecimal64(query_max, 3),
|
||||||
floor(real / queries, 3) avg_real_per_query,
|
toDecimal64(real / queries, 3) avg_real_per_query,
|
||||||
floor(query_min, 3)
|
toDecimal64(query_min, 3)
|
||||||
from test_time
|
from test_time
|
||||||
-- wall clock times are also measured for skipped tests, so don't
|
-- wall clock times are also measured for skipped tests, so don't
|
||||||
-- do full join
|
-- do full join
|
||||||
@ -592,9 +604,13 @@ create table test_times_report engine File(TSV, 'report/test-times.tsv') as
|
|||||||
-- report for all queries page, only main metric
|
-- report for all queries page, only main metric
|
||||||
create table all_tests_report engine File(TSV, 'report/all-queries.tsv') as
|
create table all_tests_report engine File(TSV, 'report/all-queries.tsv') as
|
||||||
select changed_fail, unstable_fail,
|
select changed_fail, unstable_fail,
|
||||||
left, right, diff,
|
toDecimal64(left, 3), toDecimal64(right, 3),
|
||||||
floor(left > right ? left / right : right / left, 3),
|
left > right
|
||||||
stat_threshold, test, query_index, query_display_name
|
? '- ' || toString(toDecimal64(left / (right + 0.001), 3)) || 'x'
|
||||||
|
: '+ ' || toString(toDecimal64(right / (left + 0.001), 3)) || 'x',
|
||||||
|
toDecimal64(isFinite(diff) ? diff : 0, 3),
|
||||||
|
toDecimal64(isFinite(stat_threshold) ? stat_threshold : 0, 3),
|
||||||
|
test, query_index, query_display_name
|
||||||
from queries order by test, query_index;
|
from queries order by test, query_index;
|
||||||
|
|
||||||
-- queries for which we will build flamegraphs (see below)
|
-- queries for which we will build flamegraphs (see below)
|
||||||
@ -742,17 +758,17 @@ create table metric_devation engine File(TSVWithNamesAndTypes,
|
|||||||
'report/metric-deviation.$version.tsv') as
|
'report/metric-deviation.$version.tsv') as
|
||||||
-- first goes the key used to split the file with grep
|
-- first goes the key used to split the file with grep
|
||||||
select test, query_index, query_display_name,
|
select test, query_index, query_display_name,
|
||||||
d, q, metric
|
toDecimal64(d, 3) d, q, metric
|
||||||
from (
|
from (
|
||||||
select
|
select
|
||||||
test, query_index,
|
test, query_index,
|
||||||
floor((q[3] - q[1])/q[2], 3) d,
|
(q[3] - q[1])/q[2] d,
|
||||||
quantilesExact(0, 0.5, 1)(value) q, metric
|
quantilesExact(0, 0.5, 1)(value) q, metric
|
||||||
from (select * from unstable_run_metrics
|
from (select * from unstable_run_metrics
|
||||||
union all select * from unstable_run_traces
|
union all select * from unstable_run_traces
|
||||||
union all select * from unstable_run_metrics_2) mm
|
union all select * from unstable_run_metrics_2) mm
|
||||||
group by test, query_index, metric
|
group by test, query_index, metric
|
||||||
having d > 0.5 and q[3] > 5
|
having isFinite(d) and d > 0.5 and q[3] > 5
|
||||||
) metrics
|
) metrics
|
||||||
left join query_display_names using (test, query_index)
|
left join query_display_names using (test, query_index)
|
||||||
order by test, query_index, d desc
|
order by test, query_index, d desc
|
||||||
@ -776,7 +792,7 @@ create table stacks engine File(TSV, 'report/stacks.$version.tsv') as
|
|||||||
group by test, query_index, trace_type, trace
|
group by test, query_index, trace_type, trace
|
||||||
order by test, query_index, trace_type, trace
|
order by test, query_index, trace_type, trace
|
||||||
;
|
;
|
||||||
" 2> >(tee -a report/errors.log 1>&2) # do not run in parallel because they use the same data dir for StorageJoins which leads to weird errors.
|
" 2> >(tee -a report/errors.log 1>&2) &
|
||||||
done
|
done
|
||||||
wait
|
wait
|
||||||
|
|
||||||
@ -847,7 +863,7 @@ function report_metrics
|
|||||||
rm -rf metrics ||:
|
rm -rf metrics ||:
|
||||||
mkdir metrics
|
mkdir metrics
|
||||||
|
|
||||||
clickhouse-local --stacktrace --verbose --query "
|
clickhouse-local --query "
|
||||||
create view right_async_metric_log as
|
create view right_async_metric_log as
|
||||||
select * from file('right-async-metric-log.tsv', TSVWithNamesAndTypes,
|
select * from file('right-async-metric-log.tsv', TSVWithNamesAndTypes,
|
||||||
'event_date Date, event_time DateTime, name String, value Float64')
|
'event_date Date, event_time DateTime, name String, value Float64')
|
||||||
@ -866,15 +882,20 @@ create table metrics engine File(TSV, 'metrics/metrics.tsv') as
|
|||||||
|
|
||||||
-- Show metrics that have changed
|
-- Show metrics that have changed
|
||||||
create table changes engine File(TSV, 'metrics/changes.tsv') as
|
create table changes engine File(TSV, 'metrics/changes.tsv') as
|
||||||
select metric, median(left) as left, median(right) as right,
|
select metric, left, right,
|
||||||
floor((right - left) / left, 3) diff,
|
toDecimal64(diff, 3), toDecimal64(times_diff, 3)
|
||||||
floor(if(left > right, left / right, right / left), 3) times_diff
|
from (
|
||||||
from metrics
|
select metric, median(left) as left, median(right) as right,
|
||||||
group by metric
|
(right - left) / left diff,
|
||||||
having abs(diff) > 0.05 and isFinite(diff)
|
if(left > right, left / right, right / left) times_diff
|
||||||
|
from metrics
|
||||||
|
group by metric
|
||||||
|
having abs(diff) > 0.05 and isFinite(diff)
|
||||||
|
)
|
||||||
order by diff desc
|
order by diff desc
|
||||||
;
|
;
|
||||||
"
|
"
|
||||||
|
2> >(tee -a metrics/errors.log 1>&2)
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
for prefix in $(cut -f1 "metrics/metrics.tsv" | sort | uniq)
|
for prefix in $(cut -f1 "metrics/metrics.tsv" | sort | uniq)
|
||||||
@ -911,6 +932,8 @@ case "$stage" in
|
|||||||
time configure
|
time configure
|
||||||
;&
|
;&
|
||||||
"restart")
|
"restart")
|
||||||
|
numactl --hardware ||:
|
||||||
|
lscpu ||:
|
||||||
time restart
|
time restart
|
||||||
;&
|
;&
|
||||||
"run_tests")
|
"run_tests")
|
||||||
@ -946,7 +969,7 @@ case "$stage" in
|
|||||||
# to collect the logs. Prefer not to restart, because addresses might change
|
# to collect the logs. Prefer not to restart, because addresses might change
|
||||||
# and we won't be able to process trace_log data. Start in a subshell, so that
|
# and we won't be able to process trace_log data. Start in a subshell, so that
|
||||||
# it doesn't interfere with the watchdog through `wait`.
|
# it doesn't interfere with the watchdog through `wait`.
|
||||||
( get_profiles || restart || get_profiles ||: )
|
( get_profiles || restart && get_profiles ||: )
|
||||||
|
|
||||||
# Kill the whole process group, because somehow when the subshell is killed,
|
# Kill the whole process group, because somehow when the subshell is killed,
|
||||||
# the sleep inside remains alive and orphaned.
|
# the sleep inside remains alive and orphaned.
|
||||||
@ -964,6 +987,7 @@ case "$stage" in
|
|||||||
;&
|
;&
|
||||||
"report_metrics")
|
"report_metrics")
|
||||||
time report_metrics ||:
|
time report_metrics ||:
|
||||||
|
cat metrics/errors.log >> report/errors.log ||:
|
||||||
;&
|
;&
|
||||||
"report_html")
|
"report_html")
|
||||||
time "$script_dir/report.py" --report=all-queries > all-queries.html 2> >(tee -a report/errors.log 1>&2) ||:
|
time "$script_dir/report.py" --report=all-queries > all-queries.html 2> >(tee -a report/errors.log 1>&2) ||:
|
||||||
|
@ -49,21 +49,90 @@ header_template = """
|
|||||||
font-stretch:normal
|
font-stretch:normal
|
||||||
}}
|
}}
|
||||||
|
|
||||||
body {{ font-family: "Yandex Sans Display Web", Arial, sans-serif; background: #EEE; }}
|
body {{
|
||||||
th, td {{ border: 0; padding: 5px 10px 5px 10px; text-align: left; vertical-align: top; line-height: 1.5; background-color: #FFF;
|
font-family: "Yandex Sans Display Web", Arial, sans-serif;
|
||||||
td {{ white-space: pre; font-family: Monospace, Courier New; }}
|
background: #EEE;
|
||||||
border: 0; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1); }}
|
}}
|
||||||
a {{ color: #06F; text-decoration: none; }}
|
|
||||||
a:hover, a:active {{ color: #F40; text-decoration: underline; }}
|
|
||||||
table {{ border: 0; }}
|
|
||||||
.main {{ margin: auto; max-width: 95%; }}
|
|
||||||
p.links a {{ padding: 5px; margin: 3px; background: #FFF; line-height: 2; white-space: nowrap; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1); }}
|
|
||||||
|
|
||||||
.cancela,.cancela:link,.cancela:visited,.cancela:hover,.cancela:focus,.cancela:active{{
|
a {{ color: #06F; text-decoration: none; }}
|
||||||
|
|
||||||
|
a:hover, a:active {{ color: #F40; text-decoration: underline; }}
|
||||||
|
|
||||||
|
.main {{ margin: auto; max-width: 95%; }}
|
||||||
|
|
||||||
|
p.links a {{
|
||||||
|
padding: 5px; margin: 3px; background: #FFF; line-height: 2;
|
||||||
|
white-space: nowrap;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1);
|
||||||
|
}}
|
||||||
|
|
||||||
|
.cancela,.cancela:link,.cancela:visited,.cancela:hover,
|
||||||
|
.cancela:focus,.cancela:active {{
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}}
|
}}
|
||||||
tr:nth-child(odd) td {{filter: brightness(95%);}}
|
|
||||||
|
table {{
|
||||||
|
border: none;
|
||||||
|
border-spacing: 0px;
|
||||||
|
line-height: 1.5;
|
||||||
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 8px 25px -5px rgba(0, 0, 0, 0.1);
|
||||||
|
text-align: left;
|
||||||
|
}}
|
||||||
|
|
||||||
|
th, td {{
|
||||||
|
border: none;
|
||||||
|
padding: 5px;
|
||||||
|
vertical-align: top;
|
||||||
|
background-color: #FFF;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}}
|
||||||
|
|
||||||
|
th {{
|
||||||
|
border-bottom: 2px solid black;
|
||||||
|
}}
|
||||||
|
|
||||||
|
tr:nth-child(odd) td {{filter: brightness(90%);}}
|
||||||
|
|
||||||
|
.all-query-times tr :nth-child(1),
|
||||||
|
.all-query-times tr :nth-child(2),
|
||||||
|
.all-query-times tr :nth-child(3),
|
||||||
|
.all-query-times tr :nth-child(4),
|
||||||
|
.all-query-times tr :nth-child(5),
|
||||||
|
.all-query-times tr :nth-child(7),
|
||||||
|
.changes-in-performance tr :nth-child(1),
|
||||||
|
.changes-in-performance tr :nth-child(2),
|
||||||
|
.changes-in-performance tr :nth-child(3),
|
||||||
|
.changes-in-performance tr :nth-child(4),
|
||||||
|
.changes-in-performance tr :nth-child(5),
|
||||||
|
.changes-in-performance tr :nth-child(7),
|
||||||
|
.unstable-queries tr :nth-child(1),
|
||||||
|
.unstable-queries tr :nth-child(2),
|
||||||
|
.unstable-queries tr :nth-child(3),
|
||||||
|
.unstable-queries tr :nth-child(4),
|
||||||
|
.unstable-queries tr :nth-child(6),
|
||||||
|
.test-performance-changes tr :nth-child(2),
|
||||||
|
.test-performance-changes tr :nth-child(3),
|
||||||
|
.test-performance-changes tr :nth-child(4),
|
||||||
|
.test-performance-changes tr :nth-child(5),
|
||||||
|
.test-performance-changes tr :nth-child(6),
|
||||||
|
.test-times tr :nth-child(2),
|
||||||
|
.test-times tr :nth-child(3),
|
||||||
|
.test-times tr :nth-child(4),
|
||||||
|
.test-times tr :nth-child(5),
|
||||||
|
.test-times tr :nth-child(6),
|
||||||
|
.test-times tr :nth-child(7),
|
||||||
|
.test-times tr :nth-child(8),
|
||||||
|
.concurrent-benchmarks tr :nth-child(2),
|
||||||
|
.concurrent-benchmarks tr :nth-child(3),
|
||||||
|
.concurrent-benchmarks tr :nth-child(4),
|
||||||
|
.concurrent-benchmarks tr :nth-child(5),
|
||||||
|
.metric-changes tr :nth-child(2),
|
||||||
|
.metric-changes tr :nth-child(3),
|
||||||
|
.metric-changes tr :nth-child(4),
|
||||||
|
.metric-changes tr :nth-child(5)
|
||||||
|
{{ text-align: right; }}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<title>Clickhouse performance comparison</title>
|
<title>Clickhouse performance comparison</title>
|
||||||
</head>
|
</head>
|
||||||
@ -111,11 +180,14 @@ def tableHeader(r):
|
|||||||
return tr(''.join([th(f) for f in r]))
|
return tr(''.join([th(f) for f in r]))
|
||||||
|
|
||||||
def tableStart(title):
|
def tableStart(title):
|
||||||
return """
|
anchor = nextTableAnchor();
|
||||||
<h2 id="{anchor}"><a class="cancela" href="#{anchor}">{title}</a></h2>
|
cls = '-'.join(title.lower().split(' ')[:3]);
|
||||||
<table>""".format(
|
return f"""
|
||||||
anchor = nextTableAnchor(),
|
<h2 id="{anchor}">
|
||||||
title = title)
|
<a class="cancela" href="#{anchor}">{title}</a>
|
||||||
|
</h2>
|
||||||
|
<table class="{cls}">
|
||||||
|
"""
|
||||||
|
|
||||||
def tableEnd():
|
def tableEnd():
|
||||||
return '</table>'
|
return '</table>'
|
||||||
@ -238,28 +310,29 @@ if args.report == 'main':
|
|||||||
columns = [
|
columns = [
|
||||||
'Old, s', # 0
|
'Old, s', # 0
|
||||||
'New, s', # 1
|
'New, s', # 1
|
||||||
'Relative difference (new − old) / old', # 2
|
'Times speedup / slowdown', # 2
|
||||||
'p < 0.001 threshold', # 3
|
'Relative difference (new − old) / old', # 3
|
||||||
# Failed # 4
|
'p < 0.001 threshold', # 4
|
||||||
'Test', # 5
|
# Failed # 5
|
||||||
'#', # 6
|
'Test', # 6
|
||||||
'Query', # 7
|
'#', # 7
|
||||||
|
'Query', # 8
|
||||||
]
|
]
|
||||||
|
|
||||||
print(tableHeader(columns))
|
print(tableHeader(columns))
|
||||||
|
|
||||||
attrs = ['' for c in columns]
|
attrs = ['' for c in columns]
|
||||||
attrs[4] = None
|
attrs[5] = None
|
||||||
for row in rows:
|
for row in rows:
|
||||||
if int(row[4]):
|
if int(row[5]):
|
||||||
if float(row[2]) < 0.:
|
if float(row[3]) < 0.:
|
||||||
faster_queries += 1
|
faster_queries += 1
|
||||||
attrs[2] = f'style="background: {color_good}"'
|
attrs[2] = attrs[3] = f'style="background: {color_good}"'
|
||||||
else:
|
else:
|
||||||
slower_queries += 1
|
slower_queries += 1
|
||||||
attrs[2] = f'style="background: {color_bad}"'
|
attrs[2] = attrs[3] = f'style="background: {color_bad}"'
|
||||||
else:
|
else:
|
||||||
attrs[2] = ''
|
attrs[2] = attrs[3] = ''
|
||||||
|
|
||||||
print(tableRow(row, attrs))
|
print(tableRow(row, attrs))
|
||||||
|
|
||||||
@ -281,7 +354,7 @@ if args.report == 'main':
|
|||||||
'Old, s', #0
|
'Old, s', #0
|
||||||
'New, s', #1
|
'New, s', #1
|
||||||
'Relative difference (new - old)/old', #2
|
'Relative difference (new - old)/old', #2
|
||||||
'p < 0.001 threshold', #3
|
'p < 0.001 threshold', #3
|
||||||
# Failed #4
|
# Failed #4
|
||||||
'Test', #5
|
'Test', #5
|
||||||
'#', #6
|
'#', #6
|
||||||
@ -498,9 +571,9 @@ elif args.report == 'all-queries':
|
|||||||
# Unstable #1
|
# Unstable #1
|
||||||
'Old, s', #2
|
'Old, s', #2
|
||||||
'New, s', #3
|
'New, s', #3
|
||||||
'Relative difference (new − old) / old', #4
|
'Times speedup / slowdown', #4
|
||||||
'Times speedup / slowdown', #5
|
'Relative difference (new − old) / old', #5
|
||||||
'p < 0.001 threshold', #6
|
'p < 0.001 threshold', #6
|
||||||
'Test', #7
|
'Test', #7
|
||||||
'#', #8
|
'#', #8
|
||||||
'Query', #9
|
'Query', #9
|
||||||
@ -519,12 +592,12 @@ elif args.report == 'all-queries':
|
|||||||
attrs[6] = ''
|
attrs[6] = ''
|
||||||
|
|
||||||
if int(r[0]):
|
if int(r[0]):
|
||||||
if float(r[4]) > 0.:
|
if float(r[5]) > 0.:
|
||||||
attrs[4] = f'style="background: {color_bad}"'
|
attrs[4] = attrs[5] = f'style="background: {color_bad}"'
|
||||||
else:
|
else:
|
||||||
attrs[4] = f'style="background: {color_good}"'
|
attrs[4] = attrs[5] = f'style="background: {color_good}"'
|
||||||
else:
|
else:
|
||||||
attrs[4] = ''
|
attrs[4] = attrs[5] = ''
|
||||||
|
|
||||||
if (float(r[2]) + float(r[3])) / 2 > allowed_single_run_time:
|
if (float(r[2]) + float(r[3])) / 2 > allowed_single_run_time:
|
||||||
attrs[2] = f'style="background: {color_bad}"'
|
attrs[2] = f'style="background: {color_bad}"'
|
||||||
|
@ -17,6 +17,7 @@ ln -s /usr/share/clickhouse-test/config/listen.xml /etc/clickhouse-server/config
|
|||||||
ln -s /usr/share/clickhouse-test/config/part_log.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/part_log.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/text_log.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/text_log.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/metric_log.xml /etc/clickhouse-server/config.d/
|
ln -s /usr/share/clickhouse-test/config/metric_log.xml /etc/clickhouse-server/config.d/
|
||||||
|
ln -s /usr/share/clickhouse-test/config/custom_settings_prefixes.xml /etc/clickhouse-server/config.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/log_queries.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/log_queries.xml /etc/clickhouse-server/users.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/readonly.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/readonly.xml /etc/clickhouse-server/users.d/
|
||||||
ln -s /usr/share/clickhouse-test/config/access_management.xml /etc/clickhouse-server/users.d/
|
ln -s /usr/share/clickhouse-test/config/access_management.xml /etc/clickhouse-server/users.d/
|
||||||
|
@ -16,7 +16,7 @@ if [ ${CLICKHOUSE_PACKAGES_ARG} != ${NO_REBUILD_FLAG} ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# In order to allow packages directory to be anywhere, and to reduce amoun of context sent to the docker daemon,
|
# In order to allow packages directory to be anywhere, and to reduce amount of context sent to the docker daemon,
|
||||||
# all images are built in multiple stages:
|
# all images are built in multiple stages:
|
||||||
# 1. build base image, install dependencies
|
# 1. build base image, install dependencies
|
||||||
# 2. run image with volume mounted, install what needed from those volumes
|
# 2. run image with volume mounted, install what needed from those volumes
|
||||||
@ -26,14 +26,14 @@ fi
|
|||||||
# TODO: optionally mount most recent clickhouse-test and queries directory from local machine
|
# TODO: optionally mount most recent clickhouse-test and queries directory from local machine
|
||||||
|
|
||||||
if [ ${CLICKHOUSE_PACKAGES_ARG} != ${NO_REBUILD_FLAG} ]; then
|
if [ ${CLICKHOUSE_PACKAGES_ARG} != ${NO_REBUILD_FLAG} ]; then
|
||||||
docker build \
|
docker build --network=host \
|
||||||
-f "${CLICKHOUSE_DOCKER_DIR}/test/stateless/clickhouse-statelest-test-runner.Dockerfile" \
|
-f "${CLICKHOUSE_DOCKER_DIR}/test/stateless/clickhouse-statelest-test-runner.Dockerfile" \
|
||||||
--target clickhouse-test-runner-base \
|
--target clickhouse-test-runner-base \
|
||||||
-t clickhouse-test-runner-base:preinstall \
|
-t clickhouse-test-runner-base:preinstall \
|
||||||
"${CLICKHOUSE_DOCKER_DIR}/test/stateless"
|
"${CLICKHOUSE_DOCKER_DIR}/test/stateless"
|
||||||
|
|
||||||
docker rm -f clickhouse-test-runner-installing-packages || true
|
docker rm -f clickhouse-test-runner-installing-packages || true
|
||||||
docker run \
|
docker run --network=host \
|
||||||
-v "${CLICKHOUSE_PACKAGES_DIR}:/packages" \
|
-v "${CLICKHOUSE_PACKAGES_DIR}:/packages" \
|
||||||
--name clickhouse-test-runner-installing-packages \
|
--name clickhouse-test-runner-installing-packages \
|
||||||
clickhouse-test-runner-base:preinstall
|
clickhouse-test-runner-base:preinstall
|
||||||
@ -50,19 +50,19 @@ if [ -z "${CLICKHOUSE_SERVER_IMAGE}" ]; then
|
|||||||
CLICKHOUSE_SERVER_IMAGE="yandex/clickhouse-server:local"
|
CLICKHOUSE_SERVER_IMAGE="yandex/clickhouse-server:local"
|
||||||
|
|
||||||
if [ ${CLICKHOUSE_PACKAGES_ARG} != ${NO_REBUILD_FLAG} ]; then
|
if [ ${CLICKHOUSE_PACKAGES_ARG} != ${NO_REBUILD_FLAG} ]; then
|
||||||
docker build \
|
docker build --network=host \
|
||||||
-f "${CLICKHOUSE_DOCKER_DIR}/server/local.Dockerfile" \
|
-f "${CLICKHOUSE_DOCKER_DIR}/server/local.Dockerfile" \
|
||||||
--target clickhouse-server-base \
|
--target clickhouse-server-base \
|
||||||
-t clickhouse-server-base:preinstall \
|
-t clickhouse-server-base:preinstall \
|
||||||
"${CLICKHOUSE_DOCKER_DIR}/server"
|
"${CLICKHOUSE_DOCKER_DIR}/server"
|
||||||
|
|
||||||
docker rm -f clickhouse_server_base_installing_server || true
|
docker rm -f clickhouse_server_base_installing_server || true
|
||||||
docker run -v "${CLICKHOUSE_PACKAGES_DIR}:/packages" \
|
docker run --network=host -v "${CLICKHOUSE_PACKAGES_DIR}:/packages" \
|
||||||
--name clickhouse_server_base_installing_server \
|
--name clickhouse_server_base_installing_server \
|
||||||
clickhouse-server-base:preinstall
|
clickhouse-server-base:preinstall
|
||||||
docker commit clickhouse_server_base_installing_server clickhouse-server-base:postinstall
|
docker commit clickhouse_server_base_installing_server clickhouse-server-base:postinstall
|
||||||
|
|
||||||
docker build \
|
docker build --network=host \
|
||||||
-f "${CLICKHOUSE_DOCKER_DIR}/server/local.Dockerfile" \
|
-f "${CLICKHOUSE_DOCKER_DIR}/server/local.Dockerfile" \
|
||||||
--target clickhouse-server \
|
--target clickhouse-server \
|
||||||
-t "${CLICKHOUSE_SERVER_IMAGE}" \
|
-t "${CLICKHOUSE_SERVER_IMAGE}" \
|
||||||
|
@ -72,7 +72,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -708,7 +708,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
@ -1015,7 +1015,7 @@ The table below shows supported data types and how they match ClickHouse [data t
|
|||||||
|
|
||||||
Unsupported Avro data types: `record` (non-root), `map`
|
Unsupported Avro data types: `record` (non-root), `map`
|
||||||
|
|
||||||
Unsupported Avro logical data types: `uuid`, `time-millis`, `time-micros`, `duration`
|
Unsupported Avro logical data types: `time-millis`, `time-micros`, `duration`
|
||||||
|
|
||||||
### Inserting Data {#inserting-data-1}
|
### Inserting Data {#inserting-data-1}
|
||||||
|
|
||||||
|
@ -76,8 +76,11 @@ ECT 1
|
|||||||
```
|
```
|
||||||
|
|
||||||
By default, data is returned in TabSeparated format (for more information, see the “Formats” section).
|
By default, data is returned in TabSeparated format (for more information, see the “Formats” section).
|
||||||
|
|
||||||
You use the FORMAT clause of the query to request any other format.
|
You use the FORMAT clause of the query to request any other format.
|
||||||
|
|
||||||
|
Also, you can use the ‘default_format’ URL parameter or ‘X-ClickHouse-Format’ header to specify a default format other than TabSeparated.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
$ echo 'SELECT 1 FORMAT Pretty' | curl 'http://localhost:8123/?' --data-binary @-
|
$ echo 'SELECT 1 FORMAT Pretty' | curl 'http://localhost:8123/?' --data-binary @-
|
||||||
┏━━━┓
|
┏━━━┓
|
||||||
@ -167,7 +170,7 @@ $ echo "SELECT 1" | gzip -c | curl -sS --data-binary @- -H 'Content-Encoding: gz
|
|||||||
!!! note "Note"
|
!!! note "Note"
|
||||||
Some HTTP clients might decompress data from the server by default (with `gzip` and `deflate`) and you might get decompressed data even if you use the compression settings correctly.
|
Some HTTP clients might decompress data from the server by default (with `gzip` and `deflate`) and you might get decompressed data even if you use the compression settings correctly.
|
||||||
|
|
||||||
You can use the ‘database’ URL parameter to specify the default database.
|
You can use the ‘database’ URL parameter or ‘X-ClickHouse-Database’ header to specify the default database.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
$ echo 'SELECT number FROM numbers LIMIT 10' | curl 'http://localhost:8123/?database=system' --data-binary @-
|
$ echo 'SELECT number FROM numbers LIMIT 10' | curl 'http://localhost:8123/?database=system' --data-binary @-
|
||||||
|
@ -121,12 +121,12 @@ data_compressed_bytes: 157
|
|||||||
data_uncompressed_bytes: 91
|
data_uncompressed_bytes: 91
|
||||||
marks_bytes: 144
|
marks_bytes: 144
|
||||||
modification_time: 2020-06-18 13:01:49
|
modification_time: 2020-06-18 13:01:49
|
||||||
remove_time: 0000-00-00 00:00:00
|
remove_time: 1970-01-01 00:00:00
|
||||||
refcount: 1
|
refcount: 1
|
||||||
min_date: 0000-00-00
|
min_date: 1970-01-01
|
||||||
max_date: 0000-00-00
|
max_date: 1970-01-01
|
||||||
min_time: 0000-00-00 00:00:00
|
min_time: 1970-01-01 00:00:00
|
||||||
max_time: 0000-00-00 00:00:00
|
max_time: 1970-01-01 00:00:00
|
||||||
partition_id: all
|
partition_id: all
|
||||||
min_block_number: 1
|
min_block_number: 1
|
||||||
max_block_number: 4
|
max_block_number: 4
|
||||||
@ -143,8 +143,8 @@ path: /var/lib/clickhouse/data/default/months/a
|
|||||||
hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf
|
hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf
|
||||||
hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29
|
hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29
|
||||||
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
|
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
|
||||||
delete_ttl_info_min: 0000-00-00 00:00:00
|
delete_ttl_info_min: 1970-01-01 00:00:00
|
||||||
delete_ttl_info_max: 0000-00-00 00:00:00
|
delete_ttl_info_max: 1970-01-01 00:00:00
|
||||||
move_ttl_info.expression: []
|
move_ttl_info.expression: []
|
||||||
move_ttl_info.min: []
|
move_ttl_info.min: []
|
||||||
move_ttl_info.max: []
|
move_ttl_info.max: []
|
||||||
|
@ -33,9 +33,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
89
docs/en/operations/system-tables/stack_trace.md
Normal file
89
docs/en/operations/system-tables/stack_trace.md
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# system.stack_trace {#system-tables_stack_trace}
|
||||||
|
|
||||||
|
Contains stack traces of all server threads. Allows developers to introspect the server state.
|
||||||
|
|
||||||
|
To analyze stack frames, use the `addressToLine`, `addressToSymbol` and `demangle` [introspection functions](../../sql-reference/functions/introspection.md).
|
||||||
|
|
||||||
|
Columns:
|
||||||
|
|
||||||
|
- `thread_id` ([UInt64](../../sql-reference/data-types/int-uint.md)) — Thread identifier.
|
||||||
|
- `query_id` ([String](../../sql-reference/data-types/string.md)) — Query identifier that can be used to get details about a query that was running from the [query_log](../system-tables/query_log.md) system table.
|
||||||
|
- `trace` ([Array(UInt64)](../../sql-reference/data-types/array.md)) — A [stack trace](https://en.wikipedia.org/wiki/Stack_trace) which represents a list of physical addresses where the called methods are stored.
|
||||||
|
|
||||||
|
**Example**
|
||||||
|
|
||||||
|
Enabling introspection functions:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SET allow_introspection_functions = 1;
|
||||||
|
```
|
||||||
|
|
||||||
|
Getting symbols from ClickHouse object files:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
WITH arrayMap(x -> demangle(addressToSymbol(x)), trace) AS all SELECT thread_id, query_id, arrayStringConcat(all, '\n') AS res FROM system.stack_trace LIMIT 1 \G
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Row 1:
|
||||||
|
──────
|
||||||
|
thread_id: 686
|
||||||
|
query_id: 1a11f70b-626d-47c1-b948-f9c7b206395d
|
||||||
|
res: sigqueue
|
||||||
|
DB::StorageSystemStackTrace::fillData(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::Context const&, DB::SelectQueryInfo const&) const
|
||||||
|
DB::IStorageSystemOneBlock<DB::StorageSystemStackTrace>::read(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, DB::SelectQueryInfo const&, DB::Context const&, DB::QueryProcessingStage::Enum, unsigned long, unsigned int)
|
||||||
|
DB::InterpreterSelectQuery::executeFetchColumns(DB::QueryProcessingStage::Enum, DB::QueryPipeline&, std::__1::shared_ptr<DB::PrewhereInfo> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
|
||||||
|
DB::InterpreterSelectQuery::executeImpl(DB::QueryPipeline&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>)
|
||||||
|
DB::InterpreterSelectQuery::execute()
|
||||||
|
DB::InterpreterSelectWithUnionQuery::execute()
|
||||||
|
DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*)
|
||||||
|
DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)
|
||||||
|
DB::TCPHandler::runImpl()
|
||||||
|
DB::TCPHandler::run()
|
||||||
|
Poco::Net::TCPServerConnection::start()
|
||||||
|
Poco::Net::TCPServerDispatcher::run()
|
||||||
|
Poco::PooledThread::run()
|
||||||
|
Poco::ThreadImpl::runnableEntry(void*)
|
||||||
|
start_thread
|
||||||
|
__clone
|
||||||
|
```
|
||||||
|
|
||||||
|
Getting filenames and line numbers in ClickHouse source code:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
WITH arrayMap(x -> addressToLine(x), trace) AS all, arrayFilter(x -> x LIKE '%/dbms/%', all) AS dbms SELECT thread_id, query_id, arrayStringConcat(notEmpty(dbms) ? dbms : all, '\n') AS res FROM system.stack_trace LIMIT 1 \G
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Row 1:
|
||||||
|
──────
|
||||||
|
thread_id: 686
|
||||||
|
query_id: cad353e7-1c29-4b2e-949f-93e597ab7a54
|
||||||
|
res: /lib/x86_64-linux-gnu/libc-2.27.so
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Storages/System/StorageSystemStackTrace.cpp:182
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:656
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:1338
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:751
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:224
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectWithUnionQuery.cpp:192
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:384
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:643
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:251
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:1197
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:57
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/Mutex_POSIX.h:59
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/AutoPtr.h:223
|
||||||
|
/lib/x86_64-linux-gnu/libpthread-2.27.so
|
||||||
|
/lib/x86_64-linux-gnu/libc-2.27.so
|
||||||
|
```
|
||||||
|
|
||||||
|
**See Also**
|
||||||
|
|
||||||
|
- [Introspection Functions](../../sql-reference/functions/introspection.md) — Which introspection functions are available and how to use them.
|
||||||
|
- [system.trace_log](../system-tables/trace_log.md) — Contains stack traces collected by the sampling query profiler.
|
||||||
|
- [arrayMap](../../sql-reference/functions/higher-order-functions.md#higher_order_functions-array-map) — Description and usage example of the `arrayMap` function.
|
||||||
|
- [arrayFilter](../../sql-reference/functions/higher-order-functions.md#higher_order_functions-array-filter) — Description and usage example of the `arrayFilter` function.
|
||||||
|
|
||||||
|
|
||||||
|
[Original article](https://clickhouse.tech/docs/en/operations/system-tables/stack_trace) <!--hide-->
|
@ -6,7 +6,6 @@ toc_title: Date
|
|||||||
# Date {#date}
|
# Date {#date}
|
||||||
|
|
||||||
A date. Stored in two bytes as the number of days since 1970-01-01 (unsigned). Allows storing values from just after the beginning of the Unix Epoch to the upper threshold defined by a constant at the compilation stage (currently, this is until the year 2106, but the final fully-supported year is 2105).
|
A date. Stored in two bytes as the number of days since 1970-01-01 (unsigned). Allows storing values from just after the beginning of the Unix Epoch to the upper threshold defined by a constant at the compilation stage (currently, this is until the year 2106, but the final fully-supported year is 2105).
|
||||||
The minimum value is output as 0000-00-00.
|
|
||||||
|
|
||||||
The date value is stored without the time zone.
|
The date value is stored without the time zone.
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ The column description can specify an expression for a default value, in one of
|
|||||||
|
|
||||||
Example: `URLDomain String DEFAULT domain(URL)`.
|
Example: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
If an expression for the default value is not defined, the default values will be set to zeros for numbers, empty strings for strings, empty arrays for arrays, and `0000-00-00` for dates or `0000-00-00 00:00:00` for dates with time. NULLs are not supported.
|
If an expression for the default value is not defined, the default values will be set to zeros for numbers, empty strings for strings, empty arrays for arrays, and `1970-01-01` for dates or zero unix timestamp for DateTime, NULL for Nullable.
|
||||||
|
|
||||||
If the default expression is defined, the column type is optional. If there isn’t an explicitly defined type, the default expression type is used. Example: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ type will be used for the ‘EventDate’ column.
|
If the default expression is defined, the column type is optional. If there isn’t an explicitly defined type, the default expression type is used. Example: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ type will be used for the ‘EventDate’ column.
|
||||||
|
|
||||||
|
@ -158,11 +158,11 @@ returns
|
|||||||
``` text
|
``` text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
│ 0000-00-00 │ 1970-01-03 │ │
|
│ 1970-01-01 │ 1970-01-03 │ │
|
||||||
│ 0000-00-00 │ 1970-01-04 │ │
|
│ 1970-01-01 │ 1970-01-04 │ │
|
||||||
│ 1970-02-10 │ 1970-01-05 │ original │
|
│ 1970-02-10 │ 1970-01-05 │ original │
|
||||||
│ 0000-00-00 │ 1970-01-06 │ │
|
│ 1970-01-01 │ 1970-01-06 │ │
|
||||||
│ 0000-00-00 │ 1970-01-07 │ │
|
│ 1970-01-01 │ 1970-01-07 │ │
|
||||||
│ 1970-03-12 │ 1970-01-08 │ original │
|
│ 1970-03-12 │ 1970-01-08 │ original │
|
||||||
└────────────┴────────────┴──────────┘
|
└────────────┴────────────┴──────────┘
|
||||||
```
|
```
|
||||||
@ -188,17 +188,17 @@ returns
|
|||||||
``` text
|
``` text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
│ 1970-01-16 │ 0000-00-00 │ │
|
│ 1970-01-16 │ 1970-01-01 │ │
|
||||||
│ 1970-01-21 │ 0000-00-00 │ │
|
│ 1970-01-21 │ 1970-01-01 │ │
|
||||||
│ 1970-01-26 │ 0000-00-00 │ │
|
│ 1970-01-26 │ 1970-01-01 │ │
|
||||||
│ 1970-01-31 │ 0000-00-00 │ │
|
│ 1970-01-31 │ 1970-01-01 │ │
|
||||||
│ 1970-02-05 │ 0000-00-00 │ │
|
│ 1970-02-05 │ 1970-01-01 │ │
|
||||||
│ 1970-02-10 │ 1970-01-05 │ original │
|
│ 1970-02-10 │ 1970-01-05 │ original │
|
||||||
│ 1970-02-15 │ 0000-00-00 │ │
|
│ 1970-02-15 │ 1970-01-01 │ │
|
||||||
│ 1970-02-20 │ 0000-00-00 │ │
|
│ 1970-02-20 │ 1970-01-01 │ │
|
||||||
│ 1970-02-25 │ 0000-00-00 │ │
|
│ 1970-02-25 │ 1970-01-01 │ │
|
||||||
│ 1970-03-02 │ 0000-00-00 │ │
|
│ 1970-03-02 │ 1970-01-01 │ │
|
||||||
│ 1970-03-07 │ 0000-00-00 │ │
|
│ 1970-03-07 │ 1970-01-01 │ │
|
||||||
│ 1970-03-12 │ 1970-01-08 │ original │
|
│ 1970-03-12 │ 1970-01-08 │ original │
|
||||||
└────────────┴────────────┴──────────┘
|
└────────────┴────────────┴──────────┘
|
||||||
```
|
```
|
||||||
|
@ -72,7 +72,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -708,7 +708,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -794,9 +794,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -8,7 +8,6 @@ toc_title: Fecha
|
|||||||
# Fecha {#date}
|
# Fecha {#date}
|
||||||
|
|
||||||
Fecha. Almacenado en dos bytes como el número de días desde 1970-01-01 (sin signo). Permite almacenar valores desde justo después del comienzo de la Época Unix hasta el umbral superior definido por una constante en la etapa de compilación (actualmente, esto es hasta el año 2106, pero el último año totalmente soportado es 2105).
|
Fecha. Almacenado en dos bytes como el número de días desde 1970-01-01 (sin signo). Permite almacenar valores desde justo después del comienzo de la Época Unix hasta el umbral superior definido por una constante en la etapa de compilación (actualmente, esto es hasta el año 2106, pero el último año totalmente soportado es 2105).
|
||||||
El valor mínimo se emite como 0000-00-00.
|
|
||||||
|
|
||||||
El valor de fecha se almacena sin la zona horaria.
|
El valor de fecha se almacena sin la zona horaria.
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Puede haber otras cláusulas después del `ENGINE` cláusula en la consulta. Con
|
|||||||
La descripción de la columna puede especificar una expresión para un valor predeterminado, de una de las siguientes maneras:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
La descripción de la columna puede especificar una expresión para un valor predeterminado, de una de las siguientes maneras:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
Ejemplo: `URLDomain String DEFAULT domain(URL)`.
|
Ejemplo: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
Si no se define una expresión para el valor predeterminado, los valores predeterminados se establecerán en ceros para números, cadenas vacías para cadenas, matrices vacías para matrices y `0000-00-00` para fechas o `0000-00-00 00:00:00` para las fechas con el tiempo. Los NULL no son compatibles.
|
Si no se define una expresión para el valor predeterminado, los valores predeterminados se establecerán en ceros para números, cadenas vacías para cadenas, matrices vacías para matrices y `1970-01-01` para fechas o zero unix timestamp para las fechas con el tiempo. Los NULL no son compatibles.
|
||||||
|
|
||||||
Si se define la expresión predeterminada, el tipo de columna es opcional. Si no hay un tipo definido explícitamente, se utiliza el tipo de expresión predeterminado. Ejemplo: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ tipo será utilizado para el ‘EventDate’ columna.
|
Si se define la expresión predeterminada, el tipo de columna es opcional. Si no hay un tipo definido explícitamente, se utiliza el tipo de expresión predeterminado. Ejemplo: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ tipo será utilizado para el ‘EventDate’ columna.
|
||||||
|
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_priority: 79
|
|
||||||
toc_title: '2017'
|
|
||||||
---
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54327-2017-12-21}
|
|
||||||
|
|
||||||
Esta versión contiene correcciones de errores para la versión anterior 1.1.54318:
|
|
||||||
|
|
||||||
- Se corrigió un error con una posible condición de carrera en la replicación que podría conducir a la pérdida de datos. Este problema afecta a las versiones 1.1.54310 y 1.1.54318. Si utiliza una de estas versiones con tablas replicadas, se recomienda encarecidamente la actualización. Este problema se muestra en los registros en mensajes de advertencia como `Part ... from own log doesn't exist.` El problema es relevante incluso si no ve estos mensajes en los registros.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54318-2017-11-30}
|
|
||||||
|
|
||||||
Esta versión contiene correcciones de errores para la versión anterior 1.1.54310:
|
|
||||||
|
|
||||||
- Se corrigieron las eliminaciones de filas incorrectas durante las fusiones en el motor SummingMergeTree
|
|
||||||
- Se corrigió una pérdida de memoria en los motores MergeTree no duplicados
|
|
||||||
- Se corrigió la degradación del rendimiento con inserciones frecuentes en los motores MergeTree
|
|
||||||
- Se corrigió un problema que provocaba que la cola de replicación dejara de ejecutarse
|
|
||||||
- Rotación y archivado fijos de los registros del servidor
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54310-2017-11-01}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features}
|
|
||||||
|
|
||||||
- Clave de partición personalizada para la familia MergeTree de motores de tabla.
|
|
||||||
- [Kafka](https://clickhouse.tech/docs/en/operations/table_engines/kafka/) motor de mesa.
|
|
||||||
- Se agregó soporte para cargar [CatBoost](https://catboost.yandex/) modelos y aplicarlos a los datos almacenados en ClickHouse.
|
|
||||||
- Se agregó soporte para zonas horarias con desplazamientos no enteros de UTC.
|
|
||||||
- Se agregó soporte para operaciones aritméticas con intervalos de tiempo.
|
|
||||||
- El intervalo de valores para los tipos Date y DateTime se extiende hasta el año 2105.
|
|
||||||
- Se agregó el `CREATE MATERIALIZED VIEW x TO y` consulta (especifica una tabla existente para almacenar los datos de una vista materializada).
|
|
||||||
- Se agregó el `ATTACH TABLE` consulta sin argumentos.
|
|
||||||
- La lógica de procesamiento para columnas anidadas con nombres que terminan en -Map en una tabla SummingMergeTree se extrajo a la función de agregado sumMap. Ahora puede especificar dichas columnas explícitamente.
|
|
||||||
- El tamaño máximo del diccionario IP trie se incrementa a 128M entradas.
|
|
||||||
- Se agregó la función getSizeOfEnumType.
|
|
||||||
- Se agregó la función agregada sumWithOverflow.
|
|
||||||
- Se agregó soporte para el formato de entrada Cap'n Proto.
|
|
||||||
- Ahora puede personalizar el nivel de compresión al usar el algoritmo zstd.
|
|
||||||
|
|
||||||
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes}
|
|
||||||
|
|
||||||
- No se permite la creación de tablas temporales con un motor que no sea Memoria.
|
|
||||||
- No se permite la creación explícita de tablas con el motor View o MaterializedView.
|
|
||||||
- Durante la creación de la tabla, una nueva comprobación comprueba que la expresión de clave de muestreo está incluida en la clave principal.
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes}
|
|
||||||
|
|
||||||
- Se corrigieron bloqueos al insertar sincrónicamente en una tabla distribuida.
|
|
||||||
- Se corrigió la adición y eliminación no atómica de partes en tablas replicadas.
|
|
||||||
- Los datos insertados en una vista materializada no están sujetos a una deduplicación innecesaria.
|
|
||||||
- La ejecución de una consulta en una tabla distribuida para la que la réplica local está rezagada y las réplicas remotas no están disponibles ya no genera ningún error.
|
|
||||||
- Los usuarios no necesitan permisos de acceso `default` base de datos para crear tablas temporales más.
|
|
||||||
- Se corrigió el bloqueo al especificar el tipo de matriz sin argumentos.
|
|
||||||
- Se corrigieron bloqueos cuando el volumen del disco que contiene los registros del servidor está lleno.
|
|
||||||
- Se corrigió un desbordamiento en la función toRelativeWeekNum para la primera semana de la época de Unix.
|
|
||||||
|
|
||||||
#### Mejoras de construcción: {#build-improvements}
|
|
||||||
|
|
||||||
- Varias bibliotecas de terceros (especialmente Poco) se actualizaron y convirtieron a submódulos de git.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54304-2017-10-19}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features-1}
|
|
||||||
|
|
||||||
- Soporte TLS en el protocolo nativo (para habilitar, establecer `tcp_ssl_port` en `config.xml` ).
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes-1}
|
|
||||||
|
|
||||||
- `ALTER` para tablas replicadas ahora intenta comenzar a ejecutarse tan pronto como sea posible.
|
|
||||||
- Se corrigió el bloqueo al leer datos con la configuración `preferred_block_size_bytes=0.`
|
|
||||||
- Se corrigieron los bloqueos de `clickhouse-client` al presionar `Page Down`
|
|
||||||
- Interpretación correcta de ciertas consultas complejas con `GLOBAL IN` y `UNION ALL`
|
|
||||||
- `FREEZE PARTITION` siempre funciona atómicamente ahora.
|
|
||||||
- Las solicitudes POST vacías ahora devuelven una respuesta con el código 411.
|
|
||||||
- Se corrigieron errores de interpretación para expresiones como `CAST(1 AS Nullable(UInt8)).`
|
|
||||||
- Se ha corregido un error al leer `Array(Nullable(String))` las columnas de `MergeTree` tabla.
|
|
||||||
- Se corrigió el bloqueo al analizar consultas como `SELECT dummy AS dummy, dummy AS b`
|
|
||||||
- Los usuarios se actualizan correctamente `users.xml`
|
|
||||||
- Control correcto cuando un diccionario ejecutable devuelve un código de respuesta distinto de cero.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54292-2017-09-20}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features-2}
|
|
||||||
|
|
||||||
- Se agregó el `pointInPolygon` función para trabajar con coordenadas en un plano de coordenadas.
|
|
||||||
- Se agregó el `sumMap` función de agregado para calcular la suma de matrices, similar a `SummingMergeTree`.
|
|
||||||
- Se agregó el `trunc` función. Rendimiento mejorado de las funciones de redondeo (`round`, `floor`, `ceil`, `roundToExp2`) y corrigió la lógica de cómo funcionan. Cambió la lógica del `roundToExp2` función para fracciones y números negativos.
|
|
||||||
- El archivo ejecutable ClickHouse ahora depende menos de la versión de libc. El mismo archivo ejecutable ClickHouse se puede ejecutar en una amplia variedad de sistemas Linux. Todavía hay una dependencia al usar consultas compiladas (con la configuración `compile = 1` , que no se usa por defecto).
|
|
||||||
- Se ha reducido el tiempo necesario para la compilación dinámica de consultas.
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes-2}
|
|
||||||
|
|
||||||
- Se corrigió un error que a veces producía `part ... intersects previous part` mensajes y la coherencia de réplica debilitada.
|
|
||||||
- Se corrigió un error que causaba que el servidor se bloqueara si ZooKeeper no estaba disponible durante el apagado.
|
|
||||||
- Se eliminó el registro excesivo al restaurar réplicas.
|
|
||||||
- Se corrigió un error en la implementación de UNION ALL.
|
|
||||||
- Se ha corregido un error en la función concat que se producía si la primera columna de un bloque tiene el tipo Array.
|
|
||||||
- El progreso ahora se muestra correctamente en el sistema.fusiones tabla.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54289-2017-09-13}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features-3}
|
|
||||||
|
|
||||||
- `SYSTEM` consultas para la administración del servidor: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
|
|
||||||
- Funciones añadidas para trabajar con matrices: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
|
|
||||||
- Añadir `root` y `identity` parámetros para la configuración de ZooKeeper. Esto le permite aislar usuarios individuales en el mismo clúster de ZooKeeper.
|
|
||||||
- Funciones agregadas añadidas `groupBitAnd`, `groupBitOr`, y `groupBitXor` (por compatibilidad, también están disponibles bajo los nombres `BIT_AND`, `BIT_OR`, y `BIT_XOR`).
|
|
||||||
- Los diccionarios externos se pueden cargar desde MySQL especificando un socket en el sistema de archivos.
|
|
||||||
- Los diccionarios externos se pueden cargar desde MySQL a través de SSL (`ssl_cert`, `ssl_key`, `ssl_ca` parámetros).
|
|
||||||
- Se agregó el `max_network_bandwidth_for_user` para restringir el uso general del ancho de banda para consultas por usuario.
|
|
||||||
- Soporte para `DROP TABLE` para tablas temporales.
|
|
||||||
- Soporte para lectura `DateTime` valores en formato de marca de tiempo Unix desde el `CSV` y `JSONEachRow` formato.
|
|
||||||
- Las réplicas rezagadas en las consultas distribuidas ahora se excluyen de forma predeterminada (el umbral predeterminado es de 5 minutos).
|
|
||||||
- El bloqueo FIFO se usa durante ALTER: una consulta ALTER no se bloquea indefinidamente para consultas que se ejecutan continuamente.
|
|
||||||
- Opción para establecer `umask` en el archivo de configuración.
|
|
||||||
- Rendimiento mejorado para consultas con `DISTINCT` .
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes-3}
|
|
||||||
|
|
||||||
- Se ha mejorado el proceso de eliminación de nodos antiguos en ZooKeeper. Anteriormente, los nodos antiguos a veces no se eliminaban si había inserciones muy frecuentes, lo que hacía que el servidor tardara en apagarse, entre otras cosas.
|
|
||||||
- Se corrigió la aleatorización al elegir hosts para la conexión a ZooKeeper.
|
|
||||||
- Se corrigió la exclusión de réplicas rezagadas en consultas distribuidas si la réplica es localhost.
|
|
||||||
- Se corrigió un error por el que una parte de datos en un `ReplicatedMergeTree` la tabla podría estar rota después de correr `ALTER MODIFY` en un elemento en un `Nested` estructura.
|
|
||||||
- Se corrigió un error que podía causar que las consultas SELECT “hang”.
|
|
||||||
- Mejoras en las consultas DDL distribuidas.
|
|
||||||
- Se corrigió la consulta `CREATE TABLE ... AS <materialized view>`.
|
|
||||||
- Se resolvió el punto muerto en el `ALTER ... CLEAR COLUMN IN PARTITION` consulta para `Buffer` tabla.
|
|
||||||
- Se corrigió el valor predeterminado no válido para `Enum` s (0 en lugar del mínimo) cuando se utiliza el `JSONEachRow` y `TSKV` formato.
|
|
||||||
- Se resolvió la aparición de procesos zombis al usar un diccionario con un `executable` fuente.
|
|
||||||
- Se corrigió el segfault para la consulta HEAD.
|
|
||||||
|
|
||||||
#### Flujo de trabajo mejorado para desarrollar y ensamblar ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse}
|
|
||||||
|
|
||||||
- Usted puede utilizar `pbuilder` para construir ClickHouse.
|
|
||||||
- Usted puede utilizar `libc++` en lugar de `libstdc++` para construir en Linux.
|
|
||||||
- Se agregaron instrucciones para usar herramientas de análisis de código estático: `Coverage`, `clang-tidy`, `cppcheck`.
|
|
||||||
|
|
||||||
#### Tenga en cuenta al actualizar: {#please-note-when-upgrading}
|
|
||||||
|
|
||||||
- Ahora hay un valor predeterminado más alto para la configuración MergeTree `max_bytes_to_merge_at_max_space_in_pool` (el tamaño total máximo de las partes de datos a fusionar, en bytes): ha aumentado de 100 GiB a 150 GiB. Esto podría dar lugar a grandes fusiones que se ejecutan después de la actualización del servidor, lo que podría provocar una mayor carga en el subsistema de disco. Si el espacio libre disponible en el servidor es inferior al doble de la cantidad total de las fusiones que se están ejecutando, esto hará que todas las demás fusiones dejen de ejecutarse, incluidas las fusiones de pequeñas partes de datos. Como resultado, las consultas INSERT fallarán con el mensaje “Merges are processing significantly slower than inserts.” Utilice el `SELECT * FROM system.merges` consulta para supervisar la situación. También puede comprobar el `DiskSpaceReservedForMerge` métrica en el `system.metrics` mesa, o en Grafito. No necesita hacer nada para solucionar esto, ya que el problema se resolverá solo una vez que finalicen las fusiones grandes. Si encuentra esto inaceptable, puede restaurar el valor anterior para el `max_bytes_to_merge_at_max_space_in_pool` configuración. Para hacer esto, vaya al `<merge_tree>` sección en config.xml, establecer ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` y reinicie el servidor.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54284-2017-08-29}
|
|
||||||
|
|
||||||
- Esta es una versión de corrección de errores para la versión anterior 1.1.54282. Corrige fugas en el directorio de piezas en ZooKeeper.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54282-2017-08-23}
|
|
||||||
|
|
||||||
Esta versión contiene correcciones de errores para la versión anterior 1.1.54276:
|
|
||||||
|
|
||||||
- Fijo `DB::Exception: Assertion violation: !_path.empty()` cuando se inserta en una tabla distribuida.
|
|
||||||
- Se corrigió el análisis al insertar en formato RowBinary si los datos de entrada comienzan con';'.
|
|
||||||
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54276-2017-08-16}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features-4}
|
|
||||||
|
|
||||||
- Se agregó una sección WITH opcional para una consulta SELECT. Consulta de ejemplo: `WITH 1+1 AS a SELECT a, a*a`
|
|
||||||
- INSERT se puede realizar de forma sincrónica en una tabla distribuida: se devuelve OK solo después de guardar todos los datos en todos los fragmentos. Esto se activa mediante la configuración insert\_distributed\_sync=1.
|
|
||||||
- Se agregó el tipo de datos UUID para trabajar con identificadores de 16 bytes.
|
|
||||||
- Se agregaron alias de CHAR, FLOAT y otros tipos para compatibilidad con Tableau.
|
|
||||||
- Se agregaron las funciones aYYYYMM, aYYYYMMDD y aYYYYMMDDhhmmss para convertir el tiempo en números.
|
|
||||||
- Puede utilizar direcciones IP (junto con el nombre de host) para identificar servidores para consultas DDL en clúster.
|
|
||||||
- Se agregó soporte para argumentos no constantes y compensaciones negativas en la función `substring(str, pos, len).`
|
|
||||||
- Se agregó el parámetro max\_size para el `groupArray(max_size)(column)` función agregada, y optimizó su funcionamiento.
|
|
||||||
|
|
||||||
#### Principales cambios: {#main-changes}
|
|
||||||
|
|
||||||
- Mejoras de seguridad: todos los archivos del servidor se crean con permisos 0640 (se pueden cambiar a través de `<umask>` parámetro de configuración).
|
|
||||||
- Mensajes de error mejorados para consultas con sintaxis no válida.
|
|
||||||
- Se ha reducido significativamente el consumo de memoria y se ha mejorado el rendimiento al combinar grandes secciones de datos de MergeTree.
|
|
||||||
- Aumentó significativamente el rendimiento de las fusiones de datos para el motor ReplacingMergeTree.
|
|
||||||
- Mejora del rendimiento de las inserciones asincrónicas de una tabla distribuida mediante la combinación de varias inserciones de origen. Para habilitar esta funcionalidad, utilice la configuración de directorio\_distribuido\_monitor\_batch\_inserts=1.
|
|
||||||
|
|
||||||
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes-1}
|
|
||||||
|
|
||||||
- Se ha cambiado el formato binario de los estados agregados de `groupArray(array_column)` funciones para matrices.
|
|
||||||
|
|
||||||
#### Lista completa de cambios: {#complete-list-of-changes}
|
|
||||||
|
|
||||||
- Se agregó el `output_format_json_quote_denormals` configuración, que permite generar valores nan e inf en formato JSON.
|
|
||||||
- Asignación de secuencias optimizada al leer desde una tabla distribuida.
|
|
||||||
- Los ajustes se pueden configurar en modo de solo lectura si el valor no cambia.
|
|
||||||
- Se agregó la capacidad de recuperar gránulos no enteros del motor MergeTree para cumplir con las restricciones en el tamaño de bloque especificado en la configuración preferred\_block\_size\_bytes. El propósito es reducir el consumo de RAM y aumentar la localidad de caché al procesar consultas desde tablas con columnas grandes.
|
|
||||||
- Uso eficiente de índices que contienen expresiones como `toStartOfHour(x)` para condiciones como `toStartOfHour(x) op сonstexpr.`
|
|
||||||
- Se agregaron nuevas configuraciones para los motores MergeTree (la sección merge\_tree en config.XML):
|
|
||||||
- replicated\_deduplication\_window\_seconds establece el número de segundos permitidos para la deduplicación de inserciones en tablas replicadas.
|
|
||||||
- cleanup\_delay\_period establece con qué frecuencia iniciar la limpieza para eliminar datos obsoletos.
|
|
||||||
- replicated\_can\_become\_leader puede evitar que una réplica se convierta en el líder (y asigne fusiones).
|
|
||||||
- Limpieza acelerada para eliminar datos obsoletos de ZooKeeper.
|
|
||||||
- Múltiples mejoras y correcciones para consultas DDL en clúster. De particular interés es la nueva configuración distribut\_ddl\_task\_timeout, que limita el tiempo de espera para una respuesta de los servidores en el clúster. Si no se ha realizado una solicitud ddl en todos los hosts, una respuesta contendrá un error de tiempo de espera y una solicitud se ejecutará en modo asíncrono.
|
|
||||||
- Mejora de la visualización de los rastros de pila en los registros del servidor.
|
|
||||||
- Se agregó el “none” valor para el método de compresión.
|
|
||||||
- Puede usar varias secciones dictionaries\_config en config.XML.
|
|
||||||
- Es posible conectarse a MySQL a través de un socket en el sistema de archivos.
|
|
||||||
- Sistema.partes tiene una nueva columna con información sobre el tamaño de las marcas, en bytes.
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes-4}
|
|
||||||
|
|
||||||
- Las tablas distribuidas que utilizan una tabla Merge ahora funcionan correctamente para una consulta SELECT con una condición `_table` campo.
|
|
||||||
- Se corrigió una rara condición de carrera en ReplicatedMergeTree al verificar partes de datos.
|
|
||||||
- Se corrigió la posible congelación en “leader election” al iniciar un servidor.
|
|
||||||
- El valor max\_replica\_delay\_for\_distributed\_queries se omitió al usar una réplica local del origen de datos. Esto ha sido solucionado.
|
|
||||||
- Comportamiento incorrecto fijo de `ALTER TABLE CLEAR COLUMN IN PARTITION` al intentar limpiar una columna no existente.
|
|
||||||
- Se ha corregido una excepción en la función multiIf al usar matrices o cadenas vacías.
|
|
||||||
- Se corrigieron asignaciones de memoria excesivas al deserializar el formato nativo.
|
|
||||||
- Se corrigió la actualización automática incorrecta de los diccionarios Trie.
|
|
||||||
- Se ha corregido una excepción al ejecutar consultas con una cláusula GROUP BY desde una tabla Merge cuando se usa SAMPLE.
|
|
||||||
- Se corrigió un bloqueo de GROUP BY cuando se usabaributed\_aggregation\_memory\_efficient = 1.
|
|
||||||
- Ahora puede especificar la base de datos.en el lado derecho de IN y JOIN.
|
|
||||||
- Se usaron demasiados subprocesos para la agregación paralela. Esto ha sido solucionado.
|
|
||||||
- Corregido cómo el “if” funciona con argumentos FixedString.
|
|
||||||
- SELECT funcionó incorrectamente desde una tabla distribuida para fragmentos con un peso de 0. Esto ha sido solucionado.
|
|
||||||
- Ejecutar `CREATE VIEW IF EXISTS no longer causes crashes.`
|
|
||||||
- Se corrigió el comportamiento incorrecto cuando input\_format\_skip\_unknown\_fields = 1 se establece y hay números negativos.
|
|
||||||
- Se corrigió un bucle infinito en el `dictGetHierarchy()` función si hay algunos datos no válidos en el diccionario.
|
|
||||||
- Fijo `Syntax error: unexpected (...)` errores al ejecutar consultas distribuidas con subconsultas en una cláusula IN o JOIN y tablas Merge.
|
|
||||||
- Se corrigió una interpretación incorrecta de una consulta SELECT de tablas de diccionario.
|
|
||||||
- Se corrigió el “Cannot mremap” error al usar matrices en las cláusulas IN y JOIN con más de 2 mil millones de elementos.
|
|
||||||
- Se corrigió la conmutación por error para los diccionarios con MySQL como fuente.
|
|
||||||
|
|
||||||
#### Flujo de trabajo mejorado para desarrollar y ensamblar ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
|
|
||||||
|
|
||||||
- Las construcciones se pueden ensamblar en Arcadia.
|
|
||||||
- Puedes usar gcc 7 para compilar ClickHouse.
|
|
||||||
- Las compilaciones paralelas que usan ccache + distcc son más rápidas ahora.
|
|
||||||
|
|
||||||
### Somos una empresa especializada en el desarrollo de soluciones tecnológicas {#clickhouse-release-1-1-54245-2017-07-04}
|
|
||||||
|
|
||||||
#### Novedad: {#new-features-5}
|
|
||||||
|
|
||||||
- DDL distribuido (por ejemplo, `CREATE TABLE ON CLUSTER`)
|
|
||||||
- La consulta replicada `ALTER TABLE CLEAR COLUMN IN PARTITION.`
|
|
||||||
- El motor para las tablas del diccionario (acceso a los datos del diccionario en forma de tabla).
|
|
||||||
- Motor de base de datos de diccionario (este tipo de base de datos tiene automáticamente tablas de diccionario disponibles para todos los diccionarios externos conectados).
|
|
||||||
- Puede comprobar si hay actualizaciones en el diccionario enviando una solicitud al origen.
|
|
||||||
- Nombres de columna cualificados
|
|
||||||
- Citando identificadores usando comillas dobles.
|
|
||||||
- Sesiones en la interfaz HTTP.
|
|
||||||
- La consulta OPTIMIZE para una tabla replicada puede ejecutarse no solo en el líder.
|
|
||||||
|
|
||||||
#### Cambios incompatibles hacia atrás: {#backward-incompatible-changes-2}
|
|
||||||
|
|
||||||
- Eliminado SET GLOBAL.
|
|
||||||
|
|
||||||
#### Cambios menores: {#minor-changes}
|
|
||||||
|
|
||||||
- Ahora, después de activar una alerta, el registro imprime el seguimiento completo de la pila.
|
|
||||||
- Se relajó la verificación del número de partes de datos dañadas / adicionales al inicio (hubo demasiados falsos positivos).
|
|
||||||
|
|
||||||
#### Corrección de errores: {#bug-fixes-5}
|
|
||||||
|
|
||||||
- Se corrigió una mala conexión “sticking” cuando se inserta en una tabla distribuida.
|
|
||||||
- GLOBAL IN ahora funciona para una consulta de una tabla de combinación que mira a una tabla distribuida.
|
|
||||||
- Se detectó el número incorrecto de núcleos en una máquina virtual de Google Compute Engine. Esto ha sido solucionado.
|
|
||||||
- Cambios en el funcionamiento de una fuente ejecutable de diccionarios externos en caché.
|
|
||||||
- Se corrigió la comparación de cadenas que contenían caracteres nulos.
|
|
||||||
- Se corrigió la comparación de los campos de clave primaria Float32 con constantes.
|
|
||||||
- Anteriormente, una estimación incorrecta del tamaño de un campo podía conducir a asignaciones demasiado grandes.
|
|
||||||
- Se corrigió un bloqueo al consultar una columna Nullable agregada a una tabla usando ALTER.
|
|
||||||
- Se corrigió un bloqueo al ordenar por una columna Nullable, si el número de filas es menor que LIMIT.
|
|
||||||
- Se corrigió una subconsulta ORDER BY que consistía solo en valores constantes.
|
|
||||||
- Anteriormente, una tabla replicada podía permanecer en el estado no válido después de un error DROP TABLE.
|
|
||||||
- Los alias para subconsultas escalares con resultados vacíos ya no se pierden.
|
|
||||||
- Ahora una consulta que usó compilación no falla con un error si el archivo .so se daña.
|
|
1
docs/es/whats-new/changelog/2017.md
Symbolic link
1
docs/es/whats-new/changelog/2017.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2017.md
|
File diff suppressed because it is too large
Load Diff
1
docs/es/whats-new/changelog/2018.md
Symbolic link
1
docs/es/whats-new/changelog/2018.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2018.md
|
File diff suppressed because it is too large
Load Diff
1
docs/es/whats-new/changelog/2019.md
Symbolic link
1
docs/es/whats-new/changelog/2019.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2019.md
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_folder_title: Changelog
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/es/whats-new/changelog/index.md
Symbolic link
1
docs/es/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
@ -73,7 +73,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -709,7 +709,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -794,9 +794,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -8,7 +8,7 @@ toc_title: "\u062A\u0627\u0631\u06CC\u062E"
|
|||||||
# تاریخ {#date}
|
# تاریخ {#date}
|
||||||
|
|
||||||
قرار ذخیره شده در دو بایت به عنوان تعداد روز از 1970-01-01 (بدون علامت). اجازه می دهد تا ذخیره سازی مقادیر از درست بعد از شروع عصر یونیکس به حد بالایی تعریف شده توسط ثابت در مرحله تدوین (در حال حاضر, این است تا سال 2106, اما نهایی سال به طور کامل پشتیبانی شده است 2105).
|
قرار ذخیره شده در دو بایت به عنوان تعداد روز از 1970-01-01 (بدون علامت). اجازه می دهد تا ذخیره سازی مقادیر از درست بعد از شروع عصر یونیکس به حد بالایی تعریف شده توسط ثابت در مرحله تدوین (در حال حاضر, این است تا سال 2106, اما نهایی سال به طور کامل پشتیبانی شده است 2105).
|
||||||
حداقل مقدار خروجی به عنوان 0000-00-00.
|
حداقل مقدار خروجی به عنوان 1970-01-01.
|
||||||
|
|
||||||
ارزش تاریخ بدون منطقه زمانی ذخیره می شود.
|
ارزش تاریخ بدون منطقه زمانی ذخیره می شود.
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...
|
|||||||
شرح ستون می تواند یک عبارت برای یک مقدار پیش فرض مشخص, در یکی از روش های زیر:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
شرح ستون می تواند یک عبارت برای یک مقدار پیش فرض مشخص, در یکی از روش های زیر:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
مثال: `URLDomain String DEFAULT domain(URL)`.
|
مثال: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
اگر یک عبارت برای مقدار پیش فرض تعریف نشده است, مقادیر پیش فرض خواهد شد به صفر برای اعداد تنظیم, رشته های خالی برای رشته, طعمه خالی برای ارریس, و `0000-00-00` برای تاریخ و یا `0000-00-00 00:00:00` برای تاریخ با زمان. نقاط صفر پشتیبانی نمی شوند.
|
اگر یک عبارت برای مقدار پیش فرض تعریف نشده است, مقادیر پیش فرض خواهد شد به صفر برای اعداد تنظیم, رشته های خالی برای رشته, طعمه خالی برای ارریس, و `1970-01-01` برای تاریخ و یا `1970-01-01 00:00:00` برای تاریخ با زمان. نقاط صفر پشتیبانی نمی شوند.
|
||||||
|
|
||||||
اگر عبارت پیش فرض تعریف شده است, نوع ستون اختیاری است. در صورتی که یک نوع به صراحت تعریف شده وجود ندارد, نوع بیان پیش فرض استفاده شده است. مثال: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ نوع خواهد شد برای استفاده ‘EventDate’ ستون.
|
اگر عبارت پیش فرض تعریف شده است, نوع ستون اختیاری است. در صورتی که یک نوع به صراحت تعریف شده وجود ندارد, نوع بیان پیش فرض استفاده شده است. مثال: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ نوع خواهد شد برای استفاده ‘EventDate’ ستون.
|
||||||
|
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_priority: 79
|
|
||||||
toc_title: '2017'
|
|
||||||
---
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
|
|
||||||
|
|
||||||
این نسخه شامل رفع اشکال برای نسخه قبلی 1.1.54318:
|
|
||||||
|
|
||||||
- اشکال ثابت با شرایط مسابقه ممکن است در تکرار است که می تواند به از دست دادن داده ها منجر شود. این مسئله تاثیر می گذارد نسخه 1.1.54310 و 1.1.54318. اگر شما استفاده از یکی از این نسخه ها با جداول تکرار, به روز رسانی است که به شدت توصیه می شود. این موضوع نشان می دهد در سیاهههای مربوط در پیام های هشدار دهنده مانند `Part ... from own log doesn't exist.` موضوع مربوط است حتی اگر شما این پیام ها در سیاهههای مربوط را نمی بینم.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54318, 2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30}
|
|
||||||
|
|
||||||
این نسخه شامل رفع اشکال برای نسخه های قبلی 1.1.54310:
|
|
||||||
|
|
||||||
- حذف ردیف نادرست ثابت در هنگام ادغام در موتور جمعبندی
|
|
||||||
- رفع نشت حافظه در موتورهای ادغام سه گانه
|
|
||||||
- تخریب عملکرد ثابت با درج مکرر در موتورهای ادغام
|
|
||||||
- ثابت است که شماره بود که باعث صف تکرار برای جلوگیری از در حال اجرا
|
|
||||||
- چرخش ثابت و بایگانی سیاهههای مربوط به سرور
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54310, 2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features}
|
|
||||||
|
|
||||||
- کلید پارتیشن بندی سفارشی برای خانواده ادغام موتورهای جدول.
|
|
||||||
- [کافکا](https://clickhouse.tech/docs/en/operations/table_engines/kafka/) موتور جدول.
|
|
||||||
- اضافه شدن پشتیبانی برای بارگذاری [مانتو](https://catboost.yandex/) مدل ها و استفاده از داده های ذخیره شده در کلیک.
|
|
||||||
- اضافه شدن پشتیبانی برای مناطق زمانی با شیپور خاموشی غیر عدد صحیح از مجموعه مقالات.
|
|
||||||
- اضافه شدن پشتیبانی برای عملیات ریاضی با فواصل زمانی.
|
|
||||||
- طیف وسیعی از ارزش ها برای انواع تاریخ و تاریخ ساعت به سال گسترش 2105.
|
|
||||||
- اضافه شدن `CREATE MATERIALIZED VIEW x TO y` پرس و جو (مشخص یک جدول موجود برای ذخیره سازی داده ها از یک نمایش محقق).
|
|
||||||
- اضافه شدن `ATTACH TABLE` پرس و جو بدون استدلال.
|
|
||||||
- پردازش منطق به صورت تو در تو ستون با نام پایان در نقشه در یک SummingMergeTree جدول استخراج شد به sumMap مجموع عملکرد. شما هم اکنون می توانید این ستون ها به صراحت مشخص کنید.
|
|
||||||
- حداکثر اندازه فرهنگ لغت ایپ تری به ورودی های 128 متری افزایش می یابد.
|
|
||||||
- اضافه شدن تابع نوع گیرنده.
|
|
||||||
- اضافه شده تابع جمع مجموع ورود.
|
|
||||||
- اضافه شدن پشتیبانی از فرمت ورودی ورودی سروان پروتو.
|
|
||||||
- شما هم اکنون می توانید سطح فشرده سازی سفارشی در هنگام استفاده از الگوریتم زد.
|
|
||||||
|
|
||||||
#### تغییرات ناسازگار به عقب: {#backward-incompatible-changes}
|
|
||||||
|
|
||||||
- ایجاد جداول موقت با موتور غیر از حافظه مجاز نیست.
|
|
||||||
- ایجاد صریح جداول با مشاهده و یا موتور نمای مادی مجاز نیست.
|
|
||||||
- در طول ایجاد جدول, یک بررسی جدید تایید می کند که عبارت کلیدی نمونه برداری در کلید اصلی شامل.
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes}
|
|
||||||
|
|
||||||
- قطع ثابت زمانی که همزمان به یک جدول توزیع قرار دادن.
|
|
||||||
- ثابت غیر اتمی اضافه کردن و از بین بردن قطعات در جداول تکرار.
|
|
||||||
- داده های وارد شده به یک دیدگاه محقق شده در معرض تقسیم غیر ضروری نیست.
|
|
||||||
- اجرای یک پرس و جو به یک جدول توزیع که ماکت محلی است عقب مانده و کپی از راه دور در دسترس نیست در یک خطا منجر نمی شود.
|
|
||||||
- کاربران به مجوزهای دسترسی نیاز ندارند `default` پایگاه داده برای ایجاد جداول موقت دیگر.
|
|
||||||
- ثابت توفنده در هنگام تعیین نوع مجموعه بدون استدلال.
|
|
||||||
- قطع ثابت زمانی که حجم دیسک حاوی سیاهههای مربوط به سرور کامل است.
|
|
||||||
- سرریز در تابع تورلتیواکنام برای هفته اول عصر یونیکس ثابت شده است.
|
|
||||||
|
|
||||||
#### بهبود ساخت: {#build-improvements}
|
|
||||||
|
|
||||||
- چندین کتابخانه شخص ثالث (به ویژه کم) به روز شد و تبدیل به دستی دستگاه گوارش.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features-1}
|
|
||||||
|
|
||||||
- پردازشگر پشتیبانی شده: `tcp_ssl_port` داخل `config.xml` ).
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes-1}
|
|
||||||
|
|
||||||
- `ALTER` برای جداول تکرار در حال حاضر تلاش می کند تا شروع به در حال اجرا در اسرع وقت.
|
|
||||||
- ثابت توفنده در هنگام خواندن داده ها با تنظیم `preferred_block_size_bytes=0.`
|
|
||||||
- سقوط ثابت از `clickhouse-client` هنگام فشار دادن `Page Down`
|
|
||||||
- تفسیر صحیح از برخی نمایش داده شد پیچیده با `GLOBAL IN` و `UNION ALL`
|
|
||||||
- `FREEZE PARTITION` همیشه از نظر عام کار می کند در حال حاضر.
|
|
||||||
- درخواست پست خالی در حال حاضر پاسخ با کد بازگشت 411.
|
|
||||||
- خطاهای تفسیر ثابت برای عبارات مانند `CAST(1 AS Nullable(UInt8)).`
|
|
||||||
- ثابت خطا در هنگام خواندن `Array(Nullable(String))` ستونها از `MergeTree` میز
|
|
||||||
- ثابت توفنده زمانی که نمایش داده شد تجزیه مانند `SELECT dummy AS dummy, dummy AS b`
|
|
||||||
- کاربران به درستی با نامعتبر به روز شد `users.xml`
|
|
||||||
- دست زدن درست زمانی که یک فرهنگ لغت اجرایی یک کد پاسخ غیر صفر می گرداند.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54292, 2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features-2}
|
|
||||||
|
|
||||||
- اضافه شدن `pointInPolygon` تابع برای کار با مختصات در یک هواپیما مختصات.
|
|
||||||
- اضافه شدن `sumMap` تابع جمع برای محاسبه مجموع ارریس, شبیه به `SummingMergeTree`.
|
|
||||||
- اضافه شدن `trunc` تابع. بهبود عملکرد توابع گرد کردن (`round`, `floor`, `ceil`, `roundToExp2`) و اصلاح منطق چگونه کار می کنند. منطق را تغییر داد `roundToExp2` تابع برای کسر و اعداد منفی.
|
|
||||||
- این ClickHouse فایل اجرایی است که در حال حاضر کمتر وابسته به libc نسخه. همان فایل اجرایی کلیک می تواند بر روی طیف گسترده ای از سیستم های لینوکس اجرا شود. هنوز وابستگی وجود دارد که با استفاده از نمایش داده شد وارد (با تنظیم `compile = 1` , است که به طور پیش فرض استفاده نمی شود).
|
|
||||||
- کاهش زمان مورد نیاز برای تدوین پویا از نمایش داده شد.
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes-2}
|
|
||||||
|
|
||||||
- ثابت خطا که گاهی اوقات تولید `part ... intersects previous part` پیام ها و قوام ماکت ضعیف.
|
|
||||||
- رفع خطا که باعث سرور به قفل کردن اگر باغ وحش در طول خاموش کردن در دسترس نیست.
|
|
||||||
- حذف ورود به سیستم بیش از حد در هنگام بازگرداندن کپی.
|
|
||||||
- ثابت خطا در اتحادیه تمام اجرای.
|
|
||||||
- ثابت خطا در تابع الحاق که در صورتی که ستون اول در یک بلوک رخ داده است نوع مجموعه ای.
|
|
||||||
- پیشرفت در حال حاضر به درستی در سیستم نمایش داده می شود.ادغام جدول.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features-3}
|
|
||||||
|
|
||||||
- `SYSTEM` نمایش داده شد برای مدیریت سرور: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
|
|
||||||
- اضافه شدن توابع برای کار با ارریس: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
|
|
||||||
- اضافه شده `root` و `identity` پارامترهای پیکربندی باغ وحش. این اجازه می دهد تا شما را به منزوی کردن کاربران فردی در خوشه باغ وحش است.
|
|
||||||
- اضافه شده توابع مجموع `groupBitAnd`, `groupBitOr` و `groupBitXor` (برای سازگاری, همچنین تحت نام در دسترس هستند `BIT_AND`, `BIT_OR` و `BIT_XOR`).
|
|
||||||
- لغت نامه های خارجی را می توان از خروجی زیر با مشخص کردن یک سوکت در سیستم فایل لود می شود.
|
|
||||||
- واژهنامهها خارجی را می توان از خروجی زیر بر اس اس ال لود می شود (`ssl_cert`, `ssl_key`, `ssl_ca` پارامترهای).
|
|
||||||
- اضافه شدن `max_network_bandwidth_for_user` تنظیم برای محدود کردن استفاده از پهنای باند کلی برای نمایش داده شد در هر کاربر.
|
|
||||||
- پشتیبانی از `DROP TABLE` برای جداول موقت.
|
|
||||||
- پشتیبانی از خواندن `DateTime` مقادیر در قالب برچسب زمان یونیکس از `CSV` و `JSONEachRow` فرمتها.
|
|
||||||
- تاخیر کپی در نمایش داده شد توزیع در حال حاضر به طور پیش فرض حذف شدند (حد پیش فرض است 5 دقیقه).
|
|
||||||
- قفل فیفو در طول تغییر استفاده می شود: پرس و جو را تغییر دهید به طور نامحدود برای نمایش داده شد به طور مداوم در حال اجرا مسدود شده است.
|
|
||||||
- گزینه ای برای تنظیم `umask` در فایل پیکربندی.
|
|
||||||
- بهبود عملکرد برای نمایش داده شد با `DISTINCT` .
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes-3}
|
|
||||||
|
|
||||||
- روند برای حذف گره های قدیمی در باغ وحش بهبود یافته است. قبلا, گره های قدیمی گاهی اوقات نمی حذف اگر درج بسیار مکرر وجود دارد, که باعث سرور به کند به تعطیل, در میان چیزهای دیگر.
|
|
||||||
- تصادفی ثابت در هنگام انتخاب میزبان برای اتصال به باغ وحش.
|
|
||||||
- رفع محرومیت از عقب انداختن کپی در نمایش داده شد توزیع اگر ماکت جایل هاست است.
|
|
||||||
- خطایی را که یک بخش داده در یک `ReplicatedMergeTree` جدول را می توان پس از در حال اجرا شکسته `ALTER MODIFY` بر روی یک عنصر در یک `Nested` ساختار.
|
|
||||||
- رفع خطا که می تواند پرس و جو را انتخاب کنید به باعث “hang”.
|
|
||||||
- بهبود نمایش داده شد توزیع شده است.
|
|
||||||
- پرس و جو را ثابت کرد `CREATE TABLE ... AS <materialized view>`.
|
|
||||||
- حل و فصل بن بست در `ALTER ... CLEAR COLUMN IN PARTITION` پرسوجو برای `Buffer` میز
|
|
||||||
- مقدار پیشفرض نامعتبر را ثابت کرد `Enum` بازدید کنندگان (0 به جای حداقل) در هنگام استفاده از `JSONEachRow` و `TSKV` فرمتها.
|
|
||||||
- حل و فصل ظاهر فرایندهای زامبی در هنگام استفاده از یک فرهنگ لغت با `executable` منبع.
|
|
||||||
- ثابت segfault برای سر پرس و جو.
|
|
||||||
|
|
||||||
#### گردش کار بهبود یافته برای توسعه و مونتاژ تاتر: {#improved-workflow-for-developing-and-assembling-clickhouse}
|
|
||||||
|
|
||||||
- شما می توانید استفاده کنید `pbuilder` برای ساخت فاحشه خانه.
|
|
||||||
- شما می توانید استفاده کنید `libc++` به جای `libstdc++` برای ایجاد بر روی لینوکس.
|
|
||||||
- دستورالعمل های اضافه شده برای استفاده از ابزار تجزیه و تحلیل کد استاتیک: `Coverage`, `clang-tidy`, `cppcheck`.
|
|
||||||
|
|
||||||
#### لطفا توجه داشته باشید در هنگام به روز رسانی: {#please-note-when-upgrading}
|
|
||||||
|
|
||||||
- در حال حاضر یک مقدار پیش فرض بالاتر برای تنظیم ادغام وجود دارد `max_bytes_to_merge_at_max_space_in_pool` (حداکثر اندازه کل قطعات داده به ادغام در بایت): از 100 دستگاه گوارش به 150 دستگاه گوارش افزایش یافته است. این ممکن است در ادغام بزرگ در حال اجرا پس از ارتقا سرور منجر, که می تواند افزایش بار بر روی زیر سیستم دیسک باعث. اگر فضای رایگان موجود بر روی سرور کمتر از دو برابر مقدار کل ادغام که در حال اجرا هستند, این باعث می شود همه ادغام دیگر برای جلوگیری از در حال اجرا, از جمله ادغام قطعات داده های کوچک. در نتیجه, قرار دادن نمایش داده شد با پیام شکست مواجه خواهد شد “Merges are processing significantly slower than inserts.” استفاده از `SELECT * FROM system.merges` پرس و جو برای نظارت بر وضعیت. شما همچنین می توانید بررسی کنید `DiskSpaceReservedForMerge` متریک در `system.metrics` جدول, و یا در گرافیت. شما لازم نیست برای انجام هر کاری برای رفع این مشکل خود را هنگامی که ادغام بزرگ پایان حل و فصل خواهد شد. اگر شما این غیر قابل قبول, شما می توانید مقدار قبلی برای بازگرداندن `max_bytes_to_merge_at_max_space_in_pool` تنظیمات. برای انجام این کار به `<merge_tree>` بخش در پیکربندی.تنظیم ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` و راه اندازی مجدد سرور.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29}
|
|
||||||
|
|
||||||
- این یک نسخه رفع اشکال برای نسخه 1.1.54282 قبلی است. این رفع نشت در دایرکتوری قطعات در باغ وحش.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23}
|
|
||||||
|
|
||||||
این نسخه شامل رفع اشکال برای نسخه قبلی 1.1.54276:
|
|
||||||
|
|
||||||
- ثابت `DB::Exception: Assertion violation: !_path.empty()` هنگام قرار دادن به یک جدول توزیع شده.
|
|
||||||
- تجزیه ثابت در هنگام قرار دادن در فرمت مربوط به حوزه علمیه اگر داده های ورودی با شروع می شود.
|
|
||||||
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features-4}
|
|
||||||
|
|
||||||
- اضافه شده اختیاری با بخش برای پرس و جو را انتخاب کنید. به عنوان مثال پرس و جو: `WITH 1+1 AS a SELECT a, a*a`
|
|
||||||
- درج را می توان همزمان در یک جدول توزیع انجام: خوب است تنها پس از بازگشت تمام داده ها بر روی تمام خرده ریز را نجات داد. این است که با تنظیم فعال می شود
|
|
||||||
- اضافه شده نوع داده شناسه برای کار با شناسه 16 بایت.
|
|
||||||
- نام مستعار اضافه شده از کاراکتر, شناور و انواع دیگر برای سازگاری با تابلو فرش.
|
|
||||||
- اضافه شده توابع toYYYYMM, toYYYYMMDD و toYYYYMMDDhhmmss برای تبدیل زمان به اعداد.
|
|
||||||
- شما می توانید از نشانی های اینترنتی (همراه با نام میزبان) برای شناسایی سرورها برای نمایش داده شد های هوشمند خوشه ای استفاده کنید.
|
|
||||||
- اضافه شدن پشتیبانی برای استدلال غیر ثابت و شیپور خاموشی منفی در تابع `substring(str, pos, len).`
|
|
||||||
- اضافه شدن پارامتر حداکثر `groupArray(max_size)(column)` عملکرد کلی و عملکرد خود را بهینه سازی کرد.
|
|
||||||
|
|
||||||
#### تغییرات اصلی: {#main-changes}
|
|
||||||
|
|
||||||
- بهبود امنیت: تمام فایل های سرور با مجوز 0640 ایجاد می شوند (می توانند از طریق تغییر کنند `<umask>` پارامتر پیکربندی).
|
|
||||||
- پیام های خطا بهبود یافته برای نمایش داده شد با نحو نامعتبر است.
|
|
||||||
- به طور قابل توجهی کاهش مصرف حافظه و بهبود عملکرد در هنگام ادغام بخش های زیادی از داده های ادغام.
|
|
||||||
- به طور قابل توجهی افزایش عملکرد ادغام داده ها برای موتور جایگزین.
|
|
||||||
- عملکرد بهبود یافته برای درج ناهمزمان از یک جدول توزیع شده با ترکیب درج منبع های متعدد. برای فعال کردن این قابلیت از تنظیمات پخش شده \_ تنظیم کننده \_منیتور\_برش\_برنده=1 استفاده کنید.
|
|
||||||
|
|
||||||
#### تغییرات ناسازگار به عقب: {#backward-incompatible-changes-1}
|
|
||||||
|
|
||||||
- تغییر فرمت باینری از کشورهای جمع `groupArray(array_column)` توابع برای ارریس.
|
|
||||||
|
|
||||||
#### لیست کامل تغییرات: {#complete-list-of-changes}
|
|
||||||
|
|
||||||
- اضافه شدن `output_format_json_quote_denormals` تنظیمات, را قادر می سازد خروجی نان و ارزشهای جبهه ملی در فرمت جانسون.
|
|
||||||
- تخصیص جریان بهینه شده در هنگام خواندن از یک جدول توزیع شده است.
|
|
||||||
- تنظیمات را می توان در حالت فقط خواندنی پیکربندی در صورتی که ارزش تغییر نمی کند.
|
|
||||||
- اضافه شده توانایی برای بازیابی غیر صحیح گرانول از MergeTree موتور به منظور دیدار با محدودیت در اندازه بلوک مشخص شده در preferred\_block\_size\_bytes تنظیم. هدف این است که برای کاهش مصرف رم و افزایش محل کش در هنگام پردازش نمایش داده شد از جداول با ستون های بزرگ.
|
|
||||||
- استفاده موثر از شاخص هایی که حاوی عبارات هستند `toStartOfHour(x)` برای شرایطی مانند `toStartOfHour(x) op сonstexpr.`
|
|
||||||
- اضافه شدن تنظیمات جدید برای MergeTree موتورهای (به merge\_tree بخش در config.شمع):
|
|
||||||
- replicated\_deduplication\_window\_seconds مجموعه تعدادی از ثانیه های مجاز برای deduplicating درج در تکرار جداول.
|
|
||||||
- پاک کردن \_خروج \_پیروید تنظیم میکند که چگونه اغلب شروع به پاکسازی برای حذف اطلاعات منسوخ شده میکند.
|
|
||||||
- از تبدیل شدن به رهبر (و اختصاص ادغام) می توانید یک کپی از تبدیل شدن به رهبر جلوگیری کنید.
|
|
||||||
- پاکسازی شتاب به حذف اطلاعات منسوخ شده از باغ وحش.
|
|
||||||
- بهبود و رفع چندگانه برای نمایش داده شد دسته ای دی ال. از علاقه خاص است که تنظیم جدید distributed\_ddl\_task\_timeout که محدودیت زمان انتظار برای پاسخ از سرور در خوشه. اگر یک درخواست دی ال شده است در تمام میزبان انجام نشده است, پاسخ حاوی یک خطا ایست و یک درخواست خواهد شد در حالت کالاهای کابل اجرا.
|
|
||||||
- صفحه نمایش بهبود یافته از ردیابی پشته در سیاهههای مربوط به سرور.
|
|
||||||
- اضافه شدن “none” ارزش روش فشرده سازی.
|
|
||||||
- شما می توانید بخش های مختلف \_تنفورد کامل در پیکربندی استفاده کنید..
|
|
||||||
- ممکن است که به اتصال به خروجی زیر را از طریق یک سوکت در سیستم فایل.
|
|
||||||
- سیستمجدول قطعات دارای یک ستون جدید با اطلاعات در مورد اندازه علامت, در بایت.
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes-4}
|
|
||||||
|
|
||||||
- جداول توزیع با استفاده از یک جدول ادغام در حال حاضر به درستی برای پرس و جو را انتخاب کنید با یک شرط در کار `_table` رشته.
|
|
||||||
- در هنگام چک کردن قطعات داده ها یک وضعیت مسابقه نادر در تکرار می شود.
|
|
||||||
- انجماد ممکن ثابت در “leader election” هنگام شروع یک سرور.
|
|
||||||
- این max\_replica\_delay\_for\_distributed\_queries تنظیم نادیده گرفته شد که با استفاده از یک محلی ماکت از منبع داده. این ثابت شده است.
|
|
||||||
- رفتار نادرست ثابت `ALTER TABLE CLEAR COLUMN IN PARTITION` هنگامی که تلاش برای تمیز کردن یک ستون غیر موجود.
|
|
||||||
- ثابت یک استثنا در تابع چندف در هنگام استفاده از مجموعه های خالی و یا رشته.
|
|
||||||
- تخصیص حافظه بیش از حد ثابت هنگام فراخوانی فرمت بومی.
|
|
||||||
- ثابت نادرست خودکار به روز رسانی از لغت نامه سه.
|
|
||||||
- ثابت یک استثنا زمانی که در حال اجرا نمایش داده شد با یک گروه بند از یک جدول ادغام در هنگام استفاده از نمونه.
|
|
||||||
- تصادف گروهی با استفاده از توزیع شده \_اگزا\_موری\_افلیتی کمبود=1 را ثابت کرد.
|
|
||||||
- حالا شما می توانید پایگاه داده را مشخص کنید.جدول در سمت راست در و پیوستن.
|
|
||||||
- بیش از حد بسیاری از موضوعات برای تجمع موازی مورد استفاده قرار گرفت. این ثابت شده است.
|
|
||||||
- ثابت چگونه “if” تابع با استدلال رشته کار می کند.
|
|
||||||
- انتخاب به اشتباه از یک جدول توزیع برای خرده ریز با وزن کار 0. این ثابت شده است.
|
|
||||||
- در حال اجرا `CREATE VIEW IF EXISTS no longer causes crashes.`
|
|
||||||
- رفتار نادرست ثابت در هنگام وارد کردن \_فصل\_سک\_کنون\_فیلدهای ورودی = 1 تنظیم شده است و اعداد منفی وجود دارد.
|
|
||||||
- ثابت یک حلقه بی نهایت در `dictGetHierarchy()` تابع در صورتی که برخی از داده های نامعتبر در فرهنگ لغت وجود دارد.
|
|
||||||
- ثابت `Syntax error: unexpected (...)` خطاها هنگامی که در حال اجرا نمایش داده شد توزیع شده با کارخانه های فرعی در یک در و یا پیوستن بند و ادغام جداول.
|
|
||||||
- ثابت تفسیر نادرست از پرس و جو را انتخاب کنید از جداول فرهنگ لغت.
|
|
||||||
- ثابت “Cannot mremap” خطا در هنگام استفاده از بند در و پیوستن به بند با بیش از 2 میلیارد عنصر.
|
|
||||||
- عدم موفقیت برای لغت نامه با خروجی زیر به عنوان منبع ثابت شده است.
|
|
||||||
|
|
||||||
#### گردش کار بهبود یافته برای توسعه و مونتاژ تاتر: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
|
|
||||||
|
|
||||||
- ساخت را می توان در ارکادیا مونتاژ.
|
|
||||||
- شما می توانید شورای همکاری خلیج فارس 7 به کامپایل خانه عروسکی استفاده کنید.
|
|
||||||
- موازی ایجاد شده با استفاده از ccache+distcc سریع تر در حال حاضر.
|
|
||||||
|
|
||||||
### ClickHouse انتشار 1.1.54245, 2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04}
|
|
||||||
|
|
||||||
#### ویژگی های جدید: {#new-features-5}
|
|
||||||
|
|
||||||
- توزیع دی ال (به عنوان مثال, `CREATE TABLE ON CLUSTER`)
|
|
||||||
- پرسوجوی تکرار شده `ALTER TABLE CLEAR COLUMN IN PARTITION.`
|
|
||||||
- موتور برای جداول فرهنگ لغت (دسترسی به داده های فرهنگ لغت در قالب یک جدول).
|
|
||||||
- موتور پایگاه داده فرهنگ لغت (این نوع از پایگاه داده به طور خودکار دارای جداول فرهنگ لغت در دسترس برای تمام لغت نامه های خارجی متصل).
|
|
||||||
- شما می توانید برای به روز رسانی به فرهنگ لغت با ارسال یک درخواست به منبع را بررسی کنید.
|
|
||||||
- نام ستون واجد شرایط
|
|
||||||
- به نقل از شناسه با استفاده از علامت نقل قول دو.
|
|
||||||
- در حال بارگذاری
|
|
||||||
- پرس و جو بهینه سازی برای یک جدول تکرار می تواند نه تنها در رهبر را اجرا کنید.
|
|
||||||
|
|
||||||
#### تغییرات ناسازگار به عقب: {#backward-incompatible-changes-2}
|
|
||||||
|
|
||||||
- حذف مجموعه جهانی است.
|
|
||||||
|
|
||||||
#### تغییرات جزیی: {#minor-changes}
|
|
||||||
|
|
||||||
- در حال حاضر پس از یک هشدار باعث شده است, ورود به سیستم چاپ ردیابی پشته کامل.
|
|
||||||
- تایید تعداد قطعات صدمه دیده/اضافی داده در هنگام راه اندازی (بیش از حد بسیاری مثبت کاذب وجود دارد).
|
|
||||||
|
|
||||||
#### رفع اشکال: {#bug-fixes-5}
|
|
||||||
|
|
||||||
- ثابت اتصال بد “sticking” هنگام قرار دادن به یک جدول توزیع شده.
|
|
||||||
- جهانی در حال حاضر برای پرس و جو از یک جدول ادغام که به نظر می رسد در یک جدول توزیع کار می کند.
|
|
||||||
- تعداد نادرست هسته بر روی یک ماشین مجازی موتور محاسبه گوگل تشخیص داده شد. این ثابت شده است.
|
|
||||||
- تغییرات در چگونه یک منبع اجرایی لغت نامه های خارجی ذخیره شده کار می کند.
|
|
||||||
- ثابت مقایسه رشته های حاوی شخصیت های پوچ.
|
|
||||||
- مقایسه زمینه های کلیدی اصلی شناور32 با ثابت ها را ثابت کرد.
|
|
||||||
- قبلا تخمین نادرست از اندازه یک میدان می تواند منجر به بیش از حد بزرگ تخصیص.
|
|
||||||
- ثابت تصادف در هنگام پرس و جو یک ستون باطل به یک جدول با استفاده از تغییر اضافه شده است.
|
|
||||||
- ثابت تصادف در هنگام مرتب سازی توسط یک ستون قابل ابطال, اگر تعداد ردیف کمتر از حد است.
|
|
||||||
- ثابت سفارش های خرده فروشی متشکل از ارزش تنها ثابت است.
|
|
||||||
- قبلا, یک جدول تکرار می تواند در حالت نامعتبر پس از یک جدول افت شکست خورده باقی می ماند.
|
|
||||||
- نام مستعار برای زیرکار اسکالر با نتایج خالی دیگر از دست داده.
|
|
||||||
- در حال حاضر پرس و جو که تلفیقی استفاده می شود با یک خطا شکست نیست در صورتی که .
|
|
1
docs/fa/whats-new/changelog/2017.md
Symbolic link
1
docs/fa/whats-new/changelog/2017.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2017.md
|
File diff suppressed because it is too large
Load Diff
1
docs/fa/whats-new/changelog/2018.md
Symbolic link
1
docs/fa/whats-new/changelog/2018.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2018.md
|
File diff suppressed because it is too large
Load Diff
1
docs/fa/whats-new/changelog/2019.md
Symbolic link
1
docs/fa/whats-new/changelog/2019.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2019.md
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_folder_title: "\u062A\u063A\u06CC\u06CC\u0631\u0627\u062A"
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/fa/whats-new/changelog/index.md
Symbolic link
1
docs/fa/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
@ -72,7 +72,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -708,7 +708,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -794,9 +794,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -8,7 +8,6 @@ toc_title: Date
|
|||||||
# Date {#date}
|
# Date {#date}
|
||||||
|
|
||||||
Date. Stocké en deux octets comme le nombre de jours depuis 1970-01-01 (non signé). Permet de stocker des valeurs juste après le début de L'époque Unix jusqu'au seuil supérieur défini par une constante au stade de la compilation (actuellement, c'est jusqu'à l'année 2106, mais l'année finale entièrement prise en charge est 2105).
|
Date. Stocké en deux octets comme le nombre de jours depuis 1970-01-01 (non signé). Permet de stocker des valeurs juste après le début de L'époque Unix jusqu'au seuil supérieur défini par une constante au stade de la compilation (actuellement, c'est jusqu'à l'année 2106, mais l'année finale entièrement prise en charge est 2105).
|
||||||
La valeur minimale est sortie comme 0000-00-00.
|
|
||||||
|
|
||||||
La valeur de date est stockée sans le fuseau horaire.
|
La valeur de date est stockée sans le fuseau horaire.
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Il peut y avoir d'autres clauses après le `ENGINE` la clause dans la requête.
|
|||||||
La description de colonne peut spécifier une expression pour une valeur par défaut, de l'une des manières suivantes:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
La description de colonne peut spécifier une expression pour une valeur par défaut, de l'une des manières suivantes:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
Exemple: `URLDomain String DEFAULT domain(URL)`.
|
Exemple: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
Si une expression pour la valeur par défaut n'est pas définie, les valeurs par défaut seront définies sur zéros pour les nombres, chaînes vides pour les chaînes, tableaux vides pour les tableaux et `0000-00-00` pour les dates ou `0000-00-00 00:00:00` pour les dates avec le temps. Les valeurs NULL ne sont pas prises en charge.
|
Si une expression pour la valeur par défaut n'est pas définie, les valeurs par défaut seront définies sur zéros pour les nombres, chaînes vides pour les chaînes, tableaux vides pour les tableaux et `1970-01-01` pour les dates ou zero unix timestamp pour les dates avec le temps. Les valeurs NULL ne sont pas prises en charge.
|
||||||
|
|
||||||
Si l'expression par défaut est définie, le type de colonne est facultatif. S'il n'y a pas de type explicitement défini, le type d'expression par défaut est utilisé. Exemple: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ type sera utilisé pour la ‘EventDate’ colonne.
|
Si l'expression par défaut est définie, le type de colonne est facultatif. S'il n'y a pas de type explicitement défini, le type d'expression par défaut est utilisé. Exemple: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ type sera utilisé pour la ‘EventDate’ colonne.
|
||||||
|
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_priority: 79
|
|
||||||
toc_title: '2017'
|
|
||||||
---
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
|
|
||||||
|
|
||||||
Cette version contient des corrections de bugs pour la version précédente 1.1.54318:
|
|
||||||
|
|
||||||
- Correction d'un bug avec condition de concurrence possible dans la réplication qui pourrait conduire à la perte de données. Ce problème affecte les versions 1.1.54310 et 1.1.54318. Si vous utilisez l'une de ces versions avec des tables répliquées, la mise à jour est fortement recommandée. Ce problème apparaît dans les journaux dans les messages d'avertissement comme `Part ... from own log doesn't exist.` Le problème est pertinent même si vous ne voyez pas ces messages dans les journaux.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54318, 2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30}
|
|
||||||
|
|
||||||
Cette version contient des corrections de bugs pour la version précédente 1.1.54310:
|
|
||||||
|
|
||||||
- Correction de suppressions de ligne incorrectes lors des fusions dans le moteur SummingMergeTree
|
|
||||||
- Correction d'une fuite de mémoire dans les moteurs mergetree non compliqués
|
|
||||||
- Correction de la dégradation des performances avec des inserts fréquents dans les moteurs MergeTree
|
|
||||||
- Correction d'un problème qui causait la file d'attente de réplication pour arrêter l'exécution
|
|
||||||
- Rotation fixe et archivage des journaux du serveur
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54310, 2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features}
|
|
||||||
|
|
||||||
- Clé de partitionnement personnalisée pour la famille MergeTree des moteurs de table.
|
|
||||||
- [Kafka](https://clickhouse.tech/docs/en/operations/table_engines/kafka/) tableau moteur.
|
|
||||||
- Ajout du support pour le chargement [CatBoost](https://catboost.yandex/) modèles et les appliquer aux données stockées dans ClickHouse.
|
|
||||||
- Ajout du support pour les fuseaux horaires avec des décalages non entiers de UTC.
|
|
||||||
- Ajout du support pour les opérations arithmétiques avec des intervalles de temps.
|
|
||||||
- La plage de valeurs pour les types Date et DateTime est étendue à l'année 2105.
|
|
||||||
- Ajouté le `CREATE MATERIALIZED VIEW x TO y` requête (spécifie une table pour stocker les données d'une vue matérialisée).
|
|
||||||
- Ajouté le `ATTACH TABLE` requête sans arguments.
|
|
||||||
- La logique de traitement des colonnes imbriquées avec des noms se terminant par-Map dans une table SummingMergeTree a été extraite dans la fonction d'agrégat sumMap. Vous pouvez maintenant spécifier ces colonnes explicitement.
|
|
||||||
- La taille maximale du dictionnaire IP trie est augmentée à 128M entrées.
|
|
||||||
- Ajout de la fonction getSizeOfEnumType.
|
|
||||||
- Ajout de la fonction d'agrégat sumWithOverflow.
|
|
||||||
- Ajout du support pour le format D'entrée Cap'n Proto.
|
|
||||||
- Vous pouvez maintenant personnaliser le niveau de compression lors de l'utilisation de l'algorithme zstd.
|
|
||||||
|
|
||||||
#### Modifications Incompatibles En Arrière: {#backward-incompatible-changes}
|
|
||||||
|
|
||||||
- Création de tables temporaires avec un moteur autre que la Mémoire n'est pas autorisé.
|
|
||||||
- La création explicite de tables avec le moteur View ou MaterializedView n'est pas autorisée.
|
|
||||||
- Lors de la création de la table, une nouvelle vérification vérifie que l'expression de clé d'échantillonnage est incluse dans la clé primaire.
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes}
|
|
||||||
|
|
||||||
- Correction des accrochages lors de l'insertion synchrone dans une table distribuée.
|
|
||||||
- Ajout et retrait non atomiques fixes de pièces dans des tables répliquées.
|
|
||||||
- Les données insérées dans une vue matérialisée ne sont pas soumises à une déduplication inutile.
|
|
||||||
- L'exécution d'une requête vers une table distribuée pour laquelle le réplica local est en retard et les réplicas distants ne sont pas disponibles n'entraîne plus d'erreur.
|
|
||||||
- Les utilisateurs n'ont pas besoin d'autorisations d'accès au `default` base de données pour créer des tables temporaires plus.
|
|
||||||
- Correction d'un plantage lors de la spécification du type de tableau sans arguments.
|
|
||||||
- Correction des interruptions lorsque le volume du disque contenant les journaux du serveur est plein.
|
|
||||||
- Correction d'un débordement dans la fonction toRelativeWeekNum pour la première semaine de L'époque Unix.
|
|
||||||
|
|
||||||
#### Construire Des Améliorations: {#build-improvements}
|
|
||||||
|
|
||||||
- Plusieurs bibliothèques tierces (notamment Poco) ont été mises à jour et converties en sous-modules git.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features-1}
|
|
||||||
|
|
||||||
- Prise en charge TLS dans le protocole natif (pour activer, définir `tcp_ssl_port` dans `config.xml` ).
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes-1}
|
|
||||||
|
|
||||||
- `ALTER` pour les tables répliquées essaie maintenant de commencer à s'exécuter dès que possible.
|
|
||||||
- Fixe plante lors de la lecture des données avec le paramètre `preferred_block_size_bytes=0.`
|
|
||||||
- Plantages fixes de `clickhouse-client` lorsque vous appuyez sur `Page Down`
|
|
||||||
- L'interprétation correcte de certaines requêtes complexes avec `GLOBAL IN` et `UNION ALL`
|
|
||||||
- `FREEZE PARTITION` fonctionne toujours atomiquement maintenant.
|
|
||||||
- Les requêtes POST vides renvoient maintenant une réponse avec le code 411.
|
|
||||||
- Correction d'erreurs d'interprétation pour des expressions comme `CAST(1 AS Nullable(UInt8)).`
|
|
||||||
- Correction d'une erreur lors de la lecture `Array(Nullable(String))` les colonnes de `MergeTree` table.
|
|
||||||
- Fixe s'écraser lors de l'analyse des requêtes comme `SELECT dummy AS dummy, dummy AS b`
|
|
||||||
- Les utilisateurs sont mis à jour correctement avec invalide `users.xml`
|
|
||||||
- Manipulation correcte lorsqu'un dictionnaire exécutable renvoie un code de réponse différent de zéro.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54292, 2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features-2}
|
|
||||||
|
|
||||||
- Ajouté le `pointInPolygon` fonction pour travailler avec des coordonnées sur un plan de coordonnées.
|
|
||||||
- Ajouté le `sumMap` fonction d'agrégation pour calculer la somme des tableaux, similaire à `SummingMergeTree`.
|
|
||||||
- Ajouté le `trunc` fonction. Amélioration des performances des fonctions d'arrondi (`round`, `floor`, `ceil`, `roundToExp2`) et corrigé la logique de la façon dont ils fonctionnent. Changé la logique de la `roundToExp2` fonction pour les fractions et les nombres négatifs.
|
|
||||||
- Le fichier exécutable ClickHouse dépend maintenant moins de la version libc. Le même fichier exécutable ClickHouse peut fonctionner sur une grande variété de systèmes Linux. Il existe toujours une dépendance lors de l'utilisation de requêtes compilées (avec le paramètre `compile = 1` qui n'est pas utilisé par défaut).
|
|
||||||
- Réduit le temps nécessaire à la compilation dynamique des requêtes.
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes-2}
|
|
||||||
|
|
||||||
- Correction d'une erreur qui produisait parfois `part ... intersects previous part` messages et cohérence des répliques affaiblies.
|
|
||||||
- Correction d'une erreur qui a provoqué le verrouillage du serveur si ZooKeeper n'était pas disponible pendant l'arrêt.
|
|
||||||
- Suppression de la journalisation excessive lors de la restauration des répliques.
|
|
||||||
- Correction d'une erreur dans L'Union toute la mise en œuvre.
|
|
||||||
- Correction d'une erreur dans la fonction concat qui s'est produite si la première colonne d'un bloc a le type de tableau.
|
|
||||||
- La progression est maintenant affichée correctement dans le système.fusionne table.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features-3}
|
|
||||||
|
|
||||||
- `SYSTEM` les requêtes pour l'administration du serveur: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
|
|
||||||
- Ajout de fonctions pour travailler avec des tableaux: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
|
|
||||||
- Ajouter `root` et `identity` paramètres pour la configuration de ZooKeeper. Cela vous permet d'isoler des utilisateurs individuels sur le même cluster ZooKeeper.
|
|
||||||
- Fonctions d'agrégation ajoutées `groupBitAnd`, `groupBitOr`, et `groupBitXor` (pour la compatibilité, ils sont également disponibles sous les noms de `BIT_AND`, `BIT_OR`, et `BIT_XOR`).
|
|
||||||
- Les dictionnaires externes peuvent être chargés à partir de MySQL en spécifiant un socket dans le système de fichiers.
|
|
||||||
- Les dictionnaires externes peuvent être chargés à partir de MySQL sur SSL (`ssl_cert`, `ssl_key`, `ssl_ca` paramètre).
|
|
||||||
- Ajouté le `max_network_bandwidth_for_user` paramètre pour limiter l'utilisation globale de la bande passante pour les requêtes par utilisateur.
|
|
||||||
- Soutien pour `DROP TABLE` pour les tables temporaires.
|
|
||||||
- Support pour la lecture `DateTime` valeurs au format d'horodatage Unix de `CSV` et `JSONEachRow` format.
|
|
||||||
- Les répliques en retard dans les requêtes distribuées sont maintenant exclues par défaut (le seuil par défaut est de 5 minutes).
|
|
||||||
- Le verrouillage FIFO est utilisé pendant ALTER: une requête ALTER n'est pas bloquée indéfiniment pour les requêtes en cours d'exécution en continu.
|
|
||||||
- Option à définir `umask` dans le fichier de configuration.
|
|
||||||
- Amélioration des performances pour les requêtes avec `DISTINCT` .
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes-3}
|
|
||||||
|
|
||||||
- Amélioration du processus de suppression des anciens nœuds dans ZooKeeper. Auparavant, les anciens nœuds n'étaient parfois pas supprimés s'il y avait des insertions très fréquentes, ce qui faisait que le serveur était lent à s'arrêter, entre autres choses.
|
|
||||||
- Correction de la randomisation lors du choix des hôtes pour la connexion à ZooKeeper.
|
|
||||||
- Correction de l'exclusion des répliques en retard dans les requêtes distribuées si la réplique est localhost.
|
|
||||||
- Correction d'une erreur où une partie des données dans un `ReplicatedMergeTree` table pourrait être cassé après l'exécution `ALTER MODIFY` sur un élément dans un `Nested` structure.
|
|
||||||
- Correction d'une erreur qui pourrait provoquer des requêtes SELECT “hang”.
|
|
||||||
- Améliorations apportées aux requêtes DDL distribuées.
|
|
||||||
- Correction de la requête `CREATE TABLE ... AS <materialized view>`.
|
|
||||||
- Résolu à l'impasse dans l' `ALTER ... CLEAR COLUMN IN PARTITION` requête pour `Buffer` table.
|
|
||||||
- Correction de la valeur par défaut invalide pour `Enum` s (0 au lieu du minimum) lors de l'utilisation du `JSONEachRow` et `TSKV` format.
|
|
||||||
- Résolu l'apparition de processus zombies lors de l'utilisation d'un dictionnaire avec un `executable` source.
|
|
||||||
- Correction de segfault pour la requête HEAD.
|
|
||||||
|
|
||||||
#### Workflow amélioré pour développer et assembler ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse}
|
|
||||||
|
|
||||||
- Vous pouvez utiliser `pbuilder` pour construire ClickHouse.
|
|
||||||
- Vous pouvez utiliser `libc++` plutôt `libstdc++` pour construit sur Linux.
|
|
||||||
- Ajout d'instructions pour l'utilisation d'outils d'analyse de code statique: `Coverage`, `clang-tidy`, `cppcheck`.
|
|
||||||
|
|
||||||
#### Veuillez Noter Lors De La Mise À Niveau: {#please-note-when-upgrading}
|
|
||||||
|
|
||||||
- Il y a maintenant une valeur par défaut plus élevée pour le paramètre MergeTree `max_bytes_to_merge_at_max_space_in_pool` (la taille totale maximale des parties de données à fusionner, en octets): elle est passée de 100 GiB à 150 GiB. Cela peut entraîner de grandes fusions s'exécutant après la mise à niveau du serveur, ce qui pourrait entraîner une charge accrue sur le sous-système de disque. Si l'espace libre disponible sur le serveur est inférieur au double de la quantité totale des fusions en cours d'exécution, toutes les autres fusions s'arrêteront, y compris les fusions de petites parties de données. Par conséquent, les requêtes D'insertion échoueront avec le message “Merges are processing significantly slower than inserts.” L'utilisation de la `SELECT * FROM system.merges` requête pour surveiller la situation. Vous pouvez également vérifier le `DiskSpaceReservedForMerge` métrique dans l' `system.metrics` table, ou en Graphite. Vous n'avez rien à faire pour résoudre ce problème, car le problème se résoudra une fois les grandes fusions terminées. Si vous trouvez cela inacceptable, vous pouvez restaurer la valeur précédente pour le `max_bytes_to_merge_at_max_space_in_pool` paramètre. Pour ce faire, allez à l' `<merge_tree>` section dans config.xml, ensemble ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` et redémarrer le serveur.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29}
|
|
||||||
|
|
||||||
- C'est une version de correction de la précédente 1.1.54282 libération. Il corrige les fuites dans le répertoire des pièces dans ZooKeeper.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23}
|
|
||||||
|
|
||||||
Cette version contient des corrections de bugs pour la version précédente 1.1.54276:
|
|
||||||
|
|
||||||
- Fixe `DB::Exception: Assertion violation: !_path.empty()` lors de l'insertion dans une table distribuée.
|
|
||||||
- Correction de l'analyse lors de l'insertion au format RowBinary si les données d'entrée commencent par';'.
|
|
||||||
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features-4}
|
|
||||||
|
|
||||||
- Ajout d'une section facultative avec pour une requête SELECT. Exemple de requête: `WITH 1+1 AS a SELECT a, a*a`
|
|
||||||
- INSERT peut être effectué de manière synchrone dans une table distribuée: OK n'est retourné qu'une fois toutes les données enregistrées sur tous les fragments. Ceci est activé par le paramètre insert\_distributed\_sync = 1.
|
|
||||||
- Ajout du type de données UUID pour travailler avec des identifiants de 16 octets.
|
|
||||||
- Ajout D'alias de CHAR, FLOAT et d'autres types pour la compatibilité avec Tableau.
|
|
||||||
- Ajout des fonctions toYYYYMM, toYYYYMMDD et toYYYYMMDDhhmmss pour convertir le temps en nombres.
|
|
||||||
- Vous pouvez utiliser les adresses IP (avec le nom d'hôte) pour identifier les serveurs pour les requêtes DDL en cluster.
|
|
||||||
- Ajout du support pour les arguments non constants et les décalages négatifs dans la fonction `substring(str, pos, len).`
|
|
||||||
- Ajout du paramètre max\_size pour `groupArray(max_size)(column)` fonction d'agrégation, et optimisé ses performances.
|
|
||||||
|
|
||||||
#### Les Principaux Changements: {#main-changes}
|
|
||||||
|
|
||||||
- Améliorations de la sécurité: tous les fichiers du serveur sont créés avec des autorisations 0640 (peuvent être modifiés via `<umask>` paramètre de configuration).
|
|
||||||
- Amélioration des messages d'erreur pour les requêtes avec une syntaxe invalide.
|
|
||||||
- Réduction significative de la consommation de mémoire et amélioration des performances lors de la fusion de grandes sections de données MergeTree.
|
|
||||||
- Augmentation significative des performances des fusions de données pour le Remplacementmergetree engine.
|
|
||||||
- Amélioration des performances pour les insertions asynchrones à partir d'une table distribuée en combinant plusieurs insertions sources. Pour activer cette fonctionnalité, utilisez le paramètre distributed\_directory\_monitor\_batch\_inserts=1.
|
|
||||||
|
|
||||||
#### Modifications Incompatibles En Arrière: {#backward-incompatible-changes-1}
|
|
||||||
|
|
||||||
- Modification du format binaire des états agrégés de `groupArray(array_column)` fonctions pour les tableaux.
|
|
||||||
|
|
||||||
#### Liste complète des modifications: {#complete-list-of-changes}
|
|
||||||
|
|
||||||
- Ajouté le `output_format_json_quote_denormals` paramètre, qui permet la sortie des valeurs NaN et inf au format JSON.
|
|
||||||
- Allocation de flux optimisée lors de la lecture à partir d'une table distribuée.
|
|
||||||
- Les paramètres peuvent être configurés en mode Lecture seule si la valeur ne change pas.
|
|
||||||
- Ajout de la possibilité de récupérer des granules non entiers du moteur MergeTree afin de respecter les restrictions sur la taille de bloc spécifiée dans le paramètre preferred\_block\_size\_bytes. Le but est de réduire la consommation de RAM et d'augmenter la localisation du cache lors du traitement des requêtes à partir de tables avec de grandes colonnes.
|
|
||||||
- Utilisation efficace des index qui contiennent des expressions comme `toStartOfHour(x)` pour des conditions comme `toStartOfHour(x) op сonstexpr.`
|
|
||||||
- Ajout de nouveaux paramètres pour les moteurs MergeTree (la section merge\_tree dans config.XML):
|
|
||||||
- replicated\_deduplication\_window\_seconds définit le nombre de secondes autorisé pour la déduplication des insertions dans les tables répliquées.
|
|
||||||
- cleanup\_delay\_period définit la fréquence de démarrage du nettoyage pour supprimer les données obsolètes.
|
|
||||||
- replicated\_can\_become\_leader peut empêcher une réplique de devenir le leader (et d'affecter des fusions).
|
|
||||||
- Nettoyage accéléré pour supprimer les données obsolètes de ZooKeeper.
|
|
||||||
- Plusieurs améliorations et corrections pour les requêtes ddl en cluster. Un intérêt particulier est le nouveau paramètre distributed\_ddl\_task\_timeout, qui limite le temps d'attente d'une réponse des serveurs du cluster. Si une requête ddl n'a pas été effectuée sur tous les hôtes, une réponse contiendra une erreur de délai d'attente et une requête sera exécutée en mode asynchrone.
|
|
||||||
- Amélioration de l'affichage des traces de pile dans les journaux du serveur.
|
|
||||||
- Ajouté le “none” valeur pour la méthode de compression.
|
|
||||||
- Vous pouvez utiliser plusieurs sections dictionaries\_config dans config.XML.
|
|
||||||
- Il est possible de se connecter à MySQL via un socket dans le système de fichiers.
|
|
||||||
- Système.table de pièces a une nouvelle colonne avec des informations sur la taille des marques, en octets.
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes-4}
|
|
||||||
|
|
||||||
- Les tables distribuées utilisant une table de fusion fonctionnent maintenant correctement pour une requête SELECT avec une condition sur le `_table` champ.
|
|
||||||
- Correction d'une condition de course rare dans ReplicatedMergeTree lors de la vérification des pièces de données.
|
|
||||||
- Fixe le gel sur “leader election” lors du démarrage d'un serveur.
|
|
||||||
- Le paramètre max\_replica\_delay\_for\_distributed\_queries a été ignoré lors de l'utilisation d'une réplique locale de la source de données. Ce problème a été corrigé.
|
|
||||||
- Correction d'un comportement incorrect de `ALTER TABLE CLEAR COLUMN IN PARTITION` lorsque vous tentez de nettoyer une colonne non existante.
|
|
||||||
- Correction d'une exception dans la fonction multiIf lors de l'utilisation de tableaux ou de chaînes vides.
|
|
||||||
- Correction d'allocations de mémoire excessives lors de la désérialisation du format natif.
|
|
||||||
- Correction d'une mise à jour automatique incorrecte des dictionnaires Trie.
|
|
||||||
- Correction d'une exception lors de l'exécution de requêtes avec une clause GROUP BY à partir d'une table de fusion lors de l'utilisation D'un exemple.
|
|
||||||
- Correction d'un plantage de GROUP BY lors de l'utilisation de distributed\_aggregation\_memory\_efficient=1.
|
|
||||||
- Vous pouvez maintenant spécifier la base de données.table dans le côté droit de IN et JOIN.
|
|
||||||
- Trop de threads ont été utilisés pour l'agrégation parallèle. Ce problème a été corrigé.
|
|
||||||
- Correction de la façon dont le “if” fonction fonctionne avec des arguments FixedString.
|
|
||||||
- SELECT a mal fonctionné à partir d'une table distribuée pour les fragments avec un poids de 0. Ce problème a été corrigé.
|
|
||||||
- Exécuter `CREATE VIEW IF EXISTS no longer causes crashes.`
|
|
||||||
- Correction d'un comportement incorrect lorsque input\_format\_skip\_unknown\_fields = 1 est défini et qu'il existe des nombres négatifs.
|
|
||||||
- Correction d'une boucle infinie dans le `dictGetHierarchy()` fonction s'il y a des données non valides dans le dictionnaire.
|
|
||||||
- Fixe `Syntax error: unexpected (...)` erreurs lors de l'exécution de requêtes distribuées avec des sous-requêtes dans une clause IN ou JOIN et des tables de fusion.
|
|
||||||
- Correction d'une interprétation incorrecte D'une requête SELECT à partir de tables de dictionnaire.
|
|
||||||
- Correction de l' “Cannot mremap” erreur lors de l'utilisation de tableaux dans In et JOIN clauses avec plus de 2 milliards d'éléments.
|
|
||||||
- Correction du basculement pour les dictionnaires avec MySQL comme source.
|
|
||||||
|
|
||||||
#### Workflow amélioré pour développer et assembler ClickHouse: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
|
|
||||||
|
|
||||||
- Construit peuvent être assemblés en Arcadie.
|
|
||||||
- Vous pouvez utiliser gcc 7 pour compiler ClickHouse.
|
|
||||||
- Les builds parallèles utilisant ccache + distcc sont plus rapides maintenant.
|
|
||||||
|
|
||||||
### Clickhouse Version 1.1.54245, 2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04}
|
|
||||||
|
|
||||||
#### Nouveauté: {#new-features-5}
|
|
||||||
|
|
||||||
- DDL distribué (par exemple, `CREATE TABLE ON CLUSTER`)
|
|
||||||
- La réplication de la requête `ALTER TABLE CLEAR COLUMN IN PARTITION.`
|
|
||||||
- Le moteur pour les tables de dictionnaire (accès aux données du dictionnaire sous la forme d'une table).
|
|
||||||
- Moteur de base de données de dictionnaire (ce type de base de données a automatiquement des tables de dictionnaire disponibles pour tous les dictionnaires externes connectés).
|
|
||||||
- Vous pouvez vérifier les mises à jour du dictionnaire en envoyant une demande à la source.
|
|
||||||
- Noms de colonnes qualifiés
|
|
||||||
- Les identificateurs entre des guillemets doubles.
|
|
||||||
- Sessions dans L'interface HTTP.
|
|
||||||
- La requête OPTIMIZE pour une table répliquée peut s'exécuter non seulement sur le leader.
|
|
||||||
|
|
||||||
#### Modifications Incompatibles En Arrière: {#backward-incompatible-changes-2}
|
|
||||||
|
|
||||||
- Supprimé ensemble GLOBAL.
|
|
||||||
|
|
||||||
#### Des Modifications Mineures: {#minor-changes}
|
|
||||||
|
|
||||||
- Maintenant, après le déclenchement d'une alerte, le journal imprime la trace complète de la pile.
|
|
||||||
- Détendu la vérification du nombre de pièces de données endommagées/supplémentaires au démarrage (il y avait trop de faux positifs).
|
|
||||||
|
|
||||||
#### Corrections De Bugs: {#bug-fixes-5}
|
|
||||||
|
|
||||||
- Correction d'une mauvaise connexion “sticking” lors de l'insertion dans une table distribuée.
|
|
||||||
- GLOBAL in fonctionne maintenant pour une requête à partir d'une table de fusion qui regarde une table distribuée.
|
|
||||||
- Le nombre incorrect de cœurs a été détecté sur une machine virtuelle Google Compute Engine. Ce problème a été corrigé.
|
|
||||||
- Changements dans le fonctionnement d'une source exécutable de dictionnaires externes mis en cache.
|
|
||||||
- Correction de la comparaison des chaînes contenant des caractères nuls.
|
|
||||||
- Correction de la comparaison des champs de clé primaire Float32 avec des constantes.
|
|
||||||
- Auparavant, une estimation incorrecte de la taille d'un champ pouvait entraîner des allocations trop importantes.
|
|
||||||
- Correction d'un plantage lors de l'interrogation d'une colonne Nullable ajoutée à une table en utilisant ALTER.
|
|
||||||
- Correction d'un plantage lors du tri par une colonne Nullable, si le nombre de lignes est inférieur à la limite.
|
|
||||||
- Correction d'une commande par sous-requête composée uniquement de valeurs constantes.
|
|
||||||
- Auparavant, une table répliquée pouvait rester dans l'état non valide après l'échec d'une table de suppression.
|
|
||||||
- Les alias des sous-requêtes scalaires avec des résultats vides ne sont plus perdus.
|
|
||||||
- Maintenant, une requête qui a utilisé la compilation n'échoue pas avec une erreur si le fichier. so est endommagé.
|
|
1
docs/fr/whats-new/changelog/2017.md
Symbolic link
1
docs/fr/whats-new/changelog/2017.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2017.md
|
File diff suppressed because it is too large
Load Diff
1
docs/fr/whats-new/changelog/2018.md
Symbolic link
1
docs/fr/whats-new/changelog/2018.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2018.md
|
File diff suppressed because it is too large
Load Diff
1
docs/fr/whats-new/changelog/2019.md
Symbolic link
1
docs/fr/whats-new/changelog/2019.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2019.md
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_folder_title: Changelog
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/fr/whats-new/changelog/index.md
Symbolic link
1
docs/fr/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
@ -73,7 +73,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -709,7 +709,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -794,9 +794,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -8,7 +8,7 @@ toc_title: "\u65E5\u4ED8"
|
|||||||
# 日付 {#date}
|
# 日付 {#date}
|
||||||
|
|
||||||
デートだ 1970-01-01(符号なし)以降の日数として二バイト単位で格納されます。 Unixエポックの開始直後から、コンパイル段階で定数によって定義される上限しきい値までの値を格納できます(現在は2106年までですが、完全にサポート
|
デートだ 1970-01-01(符号なし)以降の日数として二バイト単位で格納されます。 Unixエポックの開始直後から、コンパイル段階で定数によって定義される上限しきい値までの値を格納できます(現在は2106年までですが、完全にサポート
|
||||||
最小値は0000-00-00として出力されます。
|
最小値は1970-01-01として出力されます。
|
||||||
|
|
||||||
日付値は、タイムゾーンなしで格納されます。
|
日付値は、タイムゾーンなしで格納されます。
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...
|
|||||||
列の説明では、次のいずれかの方法で既定値の式を指定できます:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
列の説明では、次のいずれかの方法で既定値の式を指定できます:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
例: `URLDomain String DEFAULT domain(URL)`.
|
例: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
既定値の式が定義されていない場合、既定値は数値の場合はゼロ、文字列の場合は空の文字列、配列の場合は空の配列、および `0000-00-00` 日付または `0000-00-00 00:00:00` 時間と日付のために。 Nullはサポートされていません。
|
既定値の式が定義されていない場合、既定値は数値の場合はゼロ、文字列の場合は空の文字列、配列の場合は空の配列、および `1970-01-01` 日付または zero unix timestamp 時間と日付のために。 Nullはサポートされていません。
|
||||||
|
|
||||||
既定の式が定義されている場合、列の型は省略可能です。 明示的に定義された型がない場合は、既定の式の型が使用されます。 例: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ タイプは ‘EventDate’ 列。
|
既定の式が定義されている場合、列の型は省略可能です。 明示的に定義された型がない場合は、既定の式の型が使用されます。 例: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ タイプは ‘EventDate’ 列。
|
||||||
|
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_priority: 79
|
|
||||||
toc_title: '2017'
|
|
||||||
---
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54327,2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
|
|
||||||
|
|
||||||
このリリ:
|
|
||||||
|
|
||||||
- 固定バグでレースの条件で接続文字列の構文は以下のようにこのデータが失われます。 この問題は、バージョン1.1.54310および1.1.54318に影響します。 ご利用の場合これらのバージョンとの複製のテーブルを更新することが強く推奨されます。 この問題にログ警告メッセージのように `Part ... from own log doesn't exist.` この問題は、ログにこれらのメッセージが表示されない場合でも関連します。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54318,2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30}
|
|
||||||
|
|
||||||
このリリ:
|
|
||||||
|
|
||||||
- SummingMergeTreeエンジンでのマージ中の不正な行の削除を修正しました
|
|
||||||
- 複雑でないMergeTreeエンジンのメモリリークを修正しました
|
|
||||||
- MergeTreeエンジンの頻繁な挿入による性能低下を修正
|
|
||||||
- レプリケーションキューの実行が停止する問題を修正しました
|
|
||||||
- サーバーログの固定回転とアーカイブ
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54310,2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features}
|
|
||||||
|
|
||||||
- カスタムパーティショニングキーのMergeTree家族のテーブルエンジンです。
|
|
||||||
- [カフカ](https://clickhouse.tech/docs/en/operations/table_engines/kafka/) テーブルエンジン。
|
|
||||||
- ロードのサポートを追加 [CatBoost](https://catboost.yandex/) モデルとClickHouseに格納されたデータにそれらを適用します。
|
|
||||||
- サポートが追加された時間帯と非整数オフセットからのUTCです。
|
|
||||||
- 時間間隔での算術演算のサポートが追加されました。
|
|
||||||
- Date型とDateTime型の値の範囲は、2105年まで拡張されます。
|
|
||||||
- 追加された `CREATE MATERIALIZED VIEW x TO y` query(マテリアライズドビューのデータを格納するための既存のテーブルを指定します)。
|
|
||||||
- 追加された `ATTACH TABLE` 引数なしのクエリ。
|
|
||||||
- SummingMergeTreeテーブルの-Mapで終わる名前を持つ入れ子になった列の処理ロジックが、sumMap集計関数に抽出されました。 これで、そのような列を明示的に指定できます。
|
|
||||||
- IP trie辞書の最大サイズは128Mのエントリに増加します。
|
|
||||||
- GetSizeOfEnumType関数を追加しました。
|
|
||||||
- SumWithOverflow集計関数を追加しました。
|
|
||||||
- Cap'n Proto入力フォーマットのサポートが追加されました。
|
|
||||||
- では、今までのカスタマイズの圧縮レベル使用時のzstdアルゴリズムです。
|
|
||||||
|
|
||||||
#### 下位互換性のない変更: {#backward-incompatible-changes}
|
|
||||||
|
|
||||||
- メモリ以外のエンジンで一時テーブルを作成することはできません。
|
|
||||||
- ViewまたはMaterializedViewエンジンでテーブルを明示的に作成することはできません。
|
|
||||||
- 中表を作成し、新しいチェックを確認し、サンプリングキー表現が含まれ、その有効なタイプを利用します。
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes}
|
|
||||||
|
|
||||||
- 分散テーブルに同期的に挿入するときのハングを修正しました。
|
|
||||||
- 固定nonatomicの追加および削除のパーツで再現します。
|
|
||||||
- マテリアライズドビューに挿入されたデータは、不要な重複排除を受けません。
|
|
||||||
- ローカルレプリカが遅れており、リモートレプリカが使用できない分散テーブルに対してクエリを実行しても、エラーは発生しません。
|
|
||||||
- ユーザーにはアクセス権限は必要ありません。 `default` 一時テーブルを作成するデータベース。
|
|
||||||
- 引数なしで配列型を指定するとクラッシュする問題を修正。
|
|
||||||
- 固定hangups時のディスク容量を含むサーバのログします。
|
|
||||||
- Unixエポックの最初の週のtoRelativeWeekNum関数のオーバーフローを修正しました。
|
|
||||||
|
|
||||||
#### ビルドの改善: {#build-improvements}
|
|
||||||
|
|
||||||
- いくつかのサードパーテ
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54304,2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features-1}
|
|
||||||
|
|
||||||
- ネイティブプロトコ `tcp_ssl_port` で `config.xml` ).
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes-1}
|
|
||||||
|
|
||||||
- `ALTER` のための複製のテーブル現しようと走り出しています。
|
|
||||||
- 固定波データを読み込むときに設定 `preferred_block_size_bytes=0.`
|
|
||||||
- の固定クラッシュ `clickhouse-client` 押すとき `Page Down`
|
|
||||||
- 特定の複雑なクエリの正しい解釈 `GLOBAL IN` と `UNION ALL`
|
|
||||||
- `FREEZE PARTITION` いつも原子的に動作します。
|
|
||||||
- 空のPOST要求は、コード411の応答を返します。
|
|
||||||
- 次のような式の修正された解釈エラー `CAST(1 AS Nullable(UInt8)).`
|
|
||||||
- 読み取り時のエラーを修正 `Array(Nullable(String))` からの列 `MergeTree` テーブル
|
|
||||||
- 固定表の構文解析時にクエリのように `SELECT dummy AS dummy, dummy AS b`
|
|
||||||
- ユーザーが無効で正しく更新される `users.xml`
|
|
||||||
- 実行可能ディクショナリがゼロ以外の応答コードを返すときの正しい処理。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54292,2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features-2}
|
|
||||||
|
|
||||||
- 追加された `pointInPolygon` 座標平面上の座標を操作するための関数。
|
|
||||||
- 追加された `sumMap` 配列の合計を計算するための集計関数。 `SummingMergeTree`.
|
|
||||||
- 追加された `trunc` 機能。 丸め関数のパフォーマンスの向上 (`round`, `floor`, `ceil`, `roundToExp2` を正の論理をどのように。 のロジックを変更しました `roundToExp2` 分数と負の数のための関数。
|
|
||||||
- ClickHouse実行可能ファイルは、libcのバージョンにあまり依存しません。 同じClickHouse実行可能ファイルは、さまざまなLinuxシステムで実行できます。 コンパイルされたクエリを使用すると、依存関係がまだあります(設定付き `compile = 1` デフォルトでは使用されません)。
|
|
||||||
- クエリの動的コンパイルに必要な時間を短縮しました。
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes-2}
|
|
||||||
|
|
||||||
- 時々生成されるエラーを修正しました `part ... intersects previous part` メッセージと弱いレプリカの一貫性。
|
|
||||||
- シャットダウ
|
|
||||||
- 除去の過剰伐採が回復レプリカ.
|
|
||||||
- UNION ALL実装のエラーを修正しました。
|
|
||||||
- ブロック内の最初の列が配列型である場合に発生したconcat関数のエラーを修正しました。
|
|
||||||
- 進行状況がシステムに正しく表示されます。マージテーブル。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54289,2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features-3}
|
|
||||||
|
|
||||||
- `SYSTEM` サーバー管理のクエリ: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
|
|
||||||
- 配列を操作するための関数を追加しました: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
|
|
||||||
- 追加 `root` と `identity` ZooKeeper設定のパラメータ。 これにより、同じZooKeeperクラスター上の個々のユーザーを分離できます。
|
|
||||||
- 集計関数の追加 `groupBitAnd`, `groupBitOr`,and `groupBitXor` (互換性のために、彼らはまた、名前の下で利用可能です `BIT_AND`, `BIT_OR`,and `BIT_XOR`).
|
|
||||||
- 外部の辞書からロード可能でMySQLを指定するソケットのファイルシステム.
|
|
||||||
- 外部辞書はMySQLからSSL経由でロードできます (`ssl_cert`, `ssl_key`, `ssl_ca` 変数)。
|
|
||||||
- 追加された `max_network_bandwidth_for_user` ユーザーごとのクエリの全体的な帯域幅の使用を制限する設定。
|
|
||||||
- のサポート `DROP TABLE` 一時テーブルの場合。
|
|
||||||
- 読書のサポート `DateTime` Unixタイムスタンプ形式の値 `CSV` と `JSONEachRow` フォーマット。
|
|
||||||
- 分散クエリの遅延レプリカは既定で除外されるようになりました(既定のしきい値は5分です)。
|
|
||||||
- FIFOロック使用時の変更:変更のクエリーなブ無期限に継続的に走ります。
|
|
||||||
- 設定するオプション `umask` 設定ファイルで。
|
|
||||||
- クエリのパフォーマンスの向上 `DISTINCT` .
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes-3}
|
|
||||||
|
|
||||||
- ZooKeeperの古いノードを削除するプロセスを改善しました。 以前は、非常に頻繁に挿入された場合に古いノードが削除されなかったことがあり、サーバーのシャットダウンが遅くなりました。
|
|
||||||
- ZooKeeperへの接続のホストを選択する際のランダム化を修正しました。
|
|
||||||
- レプリカがlocalhostの場合、分散クエリでの遅延レプリカの除外を修正しました。
|
|
||||||
- エラーを修正しました。 `ReplicatedMergeTree` テーブルが壊れる恐れがあった後、走行 `ALTER MODIFY` aの要素に対して `Nested` 構造。
|
|
||||||
- SELECTクエリの原因となるエラーを修正しました “hang”.
|
|
||||||
- 分散DDLクエリの改善。
|
|
||||||
- クエリを修正しました `CREATE TABLE ... AS <materialized view>`.
|
|
||||||
- のデッドロックを解決しました。 `ALTER ... CLEAR COLUMN IN PARTITION` クエリ `Buffer` テーブル
|
|
||||||
- の無効なデフォルト値を修正しました `Enum` s(最小値の代わりに0)を使用する場合 `JSONEachRow` と `TSKV` フォーマット。
|
|
||||||
- ディクショナリを使用するとゾンビプロセスの出現を解決 `executable` 出典
|
|
||||||
- HEADクエリのsegfaultを修正しました。
|
|
||||||
|
|
||||||
#### ClickHouseの開発とアセンブルのワークフローの改善: {#improved-workflow-for-developing-and-assembling-clickhouse}
|
|
||||||
|
|
||||||
- 以下を使用できます `pbuilder` ClickHouseを構築する。
|
|
||||||
- 以下を使用できます `libc++` 代わりに `libstdc++` Linux上のビルドの場合。
|
|
||||||
- 静的コード分析ツールの使用方法を追加: `Coverage`, `clang-tidy`, `cppcheck`.
|
|
||||||
|
|
||||||
#### ご注意ください: {#please-note-when-upgrading}
|
|
||||||
|
|
||||||
- MergeTree設定の既定値が高くなりました `max_bytes_to_merge_at_max_space_in_pool` (マージするデータ部分の最大合計サイズ、バイト単位):100GiBから150GiBに増加しました。 この結果、大型の合併-走行後のサーバグの原因になりの増加に負荷をディスクサブシステムです。 サーバー上で使用可能な空き領域が、実行中のマージの合計量の倍未満である場合、これにより、小さなデータ部分のマージを含む、他のすべてのマージの実行が その結果、INSERTクエリはメッセージで失敗します “Merges are processing significantly slower than inserts.” 使用する `SELECT * FROM system.merges` 状況を監視するためのクエリ。 また点検できます `DiskSpaceReservedForMerge` のメトリック `system.metrics` テーブル、またはグラファイト。 大きなマージが終了すると問題が解決するので、これを修正するために何もする必要はありません。 これが受け入れられない場合は、以前の値を復元することができます。 `max_bytes_to_merge_at_max_space_in_pool` 設定。 これを行うには、 `<merge_tree>` configのセクション。xml、セット ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` サーバーを再起動します。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54284,2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29}
|
|
||||||
|
|
||||||
- これは以前の1.1.54282リリースのバグ修正リリースです。 ZooKeeperのpartsディレクトリのリークを修正します。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54282,2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23}
|
|
||||||
|
|
||||||
このリリースには以前のリリース1.1.54276のバグ修正が含まれています:
|
|
||||||
|
|
||||||
- 固定 `DB::Exception: Assertion violation: !_path.empty()` 分散テーブルに挿入するとき。
|
|
||||||
- 入力データが';'で始まる場合、RowBinary形式で挿入するときの解析を修正しました。
|
|
||||||
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54276,2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features-4}
|
|
||||||
|
|
||||||
- SELECTクエリのWITHセクションを追加しました。 クエリの例: `WITH 1+1 AS a SELECT a, a*a`
|
|
||||||
- すべてのデータがすべてのシャードに保存された後にのみOKが返されます。 これは、insert\_distributed\_sync=1の設定によって有効になります。
|
|
||||||
- 16バイト識別子を操作するためのUUIDデータ型を追加しました。
|
|
||||||
- Tableauとの互換性のために、CHAR、FLOAT、その他のタイプの別名を追加しました。
|
|
||||||
- 時間を数値に変換するための関数toYYYYMM、toYYYYMMDD、およびtoYYYYMMDDhhmmssを追加しました。
|
|
||||||
- IPアドレス(ホスト名と共に)を使用して、クラスタ化されたDDLクエリのサーバーを識別できます。
|
|
||||||
- 関数内の非定数引数と負のオフセットのサポートが追加されました `substring(str, pos, len).`
|
|
||||||
- のmax\_sizeパラメータを追加しました。 `groupArray(max_size)(column)` 集計関数、およびその性能を最適化しました。
|
|
||||||
|
|
||||||
#### 主な変更点: {#main-changes}
|
|
||||||
|
|
||||||
- セキュリティの改善:すべてのサーバーファイルは0640の権限で作成されます( `<umask>` 設定パラメータ)。
|
|
||||||
- 無効な構文を持つクエリのエラーメッセージの改善。
|
|
||||||
- MergeTreeデータの大部分をマージするときのメモリ消費の大幅な削減とパフォーマンスの向上。
|
|
||||||
- 置換用のデータマージのパフォーマンスが大幅に向上しましたマージツリーエンジン。
|
|
||||||
- 性能向上のための非同期に挿入しますから分散型のテーブルを組み合わせで複数のソースしました。 この機能を有効にするには、distributed\_directory\_monitor\_batch\_inserts=1の設定を使用します。
|
|
||||||
|
|
||||||
#### 下位互換性のない変更: {#backward-incompatible-changes-1}
|
|
||||||
|
|
||||||
- の集合状態のバイナリ形式を変更しました `groupArray(array_column)` 配列の関数。
|
|
||||||
|
|
||||||
#### 変更の完全なリスト: {#complete-list-of-changes}
|
|
||||||
|
|
||||||
- 追加された `output_format_json_quote_denormals` json形式でnanおよびinf値を出力できるようにする設定。
|
|
||||||
- 最適化したストリーム配置の場合を読み込んで配布します。
|
|
||||||
- 値が変更されない場合、設定は読み取り専用モードで構成できます。
|
|
||||||
- Preferred\_block\_size\_bytes設定で指定されたブロックサイズの制限を満たすために、MergeTreeエンジンの整数以外の顆粒を取得する機能を追加しました。 のための消費量を削減RAMを増やキャッシュの地域が処理クエリーテーブルの大きい。
|
|
||||||
- 次のような式を含むインデックスの効率的な使用 `toStartOfHour(x)` 条件のためのような `toStartOfHour(x) op сonstexpr.`
|
|
||||||
- MergeTreeエンジンの新しい設定を追加しました(設定のmerge\_treeセクション。xml):
|
|
||||||
- replicated\_deduplication\_window\_secondsレプリケートされたテーブル内の挿入を重複除外するために許可される秒数を設定します。
|
|
||||||
- cleanup\_delay\_periodクリーンアップを開始して古いデータを削除する頻度を設定します。
|
|
||||||
- replicated\_can\_become\_leaderは、レプリカがリーダーになるのを防ぐことができます(およびマージの割り当て)。
|
|
||||||
- 加速の清掃除時代遅れからのデータの飼育係.
|
|
||||||
- クラスタ化されたDDLクエリの複数の改善と修正。 特に興味深いのは、クラスタ内のサーバーからの応答を待つ時間を制限する新しい設定distributed\_ddl\_task\_timeoutです。 Ddl要求がすべてのホストで実行されていない場合、応答にはタイムアウトエラーが含まれ、要求は非同期モードで実行されます。
|
|
||||||
- サーバーログにおけるスタックトレースの表示の改善。
|
|
||||||
- 追加された “none” 圧縮方法の値。
|
|
||||||
- Configでは、複数のdictionaries\_configセクションを使用できます。xml。
|
|
||||||
- ファイルシステム内のソケットを介してMySQLに接続することは可能です。
|
|
||||||
- システム。部品表には、マークのサイズに関する情報をバイト単位で含む新しい列があります。
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes-4}
|
|
||||||
|
|
||||||
- 布を使ってテーブルは、Mergeテーブル現在は正常に動作するクエリを選択し、条件に `_table` フィールド
|
|
||||||
- ReplicatedMergeTreeでデータパーツをチェックする際に、まれな競合状態を修正しました。
|
|
||||||
- 固定可能凍結 “leader election” サーバーを起動するとき。
|
|
||||||
- データソースのローカルレプリカを使用する場合、max\_replica\_delay\_for\_distributed\_queries設定は無視されました。 これは修正されました。
|
|
||||||
- 修正された不正な動作 `ALTER TABLE CLEAR COLUMN IN PARTITION` 既存の列以外の列をクリーンアップしようとする場合。
|
|
||||||
- 空の配列または文字列を使用している場合、関数multifの例外を修正しました。
|
|
||||||
- 固定の過剰なメモリ割当ての場合deserializingネイティブ形式です。
|
|
||||||
- トライ辞書の正しくない自動更新を修正しました。
|
|
||||||
- SAMPLE使用時にMergeテーブルからGROUP BY句を使用してクエリを実行する場合の例外を修正しました。
|
|
||||||
- Distributed\_aggregation\_memory\_efficient=1を使用すると、GROUP BYのクラッシュを修正しました。
|
|
||||||
- これで、データベースを指定できます。INとJOINの右側の表。
|
|
||||||
- 並列集約に使用されたスレッドが多すぎます。 これは修正されました。
|
|
||||||
- どのように修正 “if” 関数はFixedString引数で動作します。
|
|
||||||
- 重みが0のシャードに対して、分散テーブルから誤ってworkedを選択します。 これは修正されました。
|
|
||||||
- 実行中 `CREATE VIEW IF EXISTS no longer causes crashes.`
|
|
||||||
- Input\_format\_skip\_unknown\_fields=1が設定され、負の数がある場合の不正な動作を修正しました。
|
|
||||||
- の無限ループを固定しました。 `dictGetHierarchy()` 辞書に無効なデータがある場合に機能します。
|
|
||||||
- 固定 `Syntax error: unexpected (...)` INまたはJOIN句およびMergeテーブルでサブクエリを使用して分散クエリを実行するときのエラー。
|
|
||||||
- 辞書テーブルからのSELECTクエリの誤った解釈を修正しました。
|
|
||||||
- 固定された “Cannot mremap” 2億を超える要素を持つIN句とJOIN句で配列を使用するとエラーが発生します。
|
|
||||||
- MySQLをソースとする辞書のフェイルオーバーを修正しました。
|
|
||||||
|
|
||||||
#### ClickHouseの開発とアセンブルのワークフローの改善: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
|
|
||||||
|
|
||||||
- ビルドはArcadiaで組み立てることができます。
|
|
||||||
- Gcc7を使用してClickHouseをコンパイルできます。
|
|
||||||
- Ccache+distccを使用した並列ビルドは、より高速になりました。
|
|
||||||
|
|
||||||
### ClickHouseリリース1.1.54245,2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04}
|
|
||||||
|
|
||||||
#### 新しい機能: {#new-features-5}
|
|
||||||
|
|
||||||
- 分散DDL(たとえば, `CREATE TABLE ON CLUSTER`)
|
|
||||||
- 複製されたクエリ `ALTER TABLE CLEAR COLUMN IN PARTITION.`
|
|
||||||
- 辞書テーブルのエンジン(テーブル形式の辞書データへのアクセス)。
|
|
||||||
- 辞書データベースエンジン(タイプのデータベースに自動的に辞書で使用可能なテーブルを接続外部辞書).
|
|
||||||
- ソースに要求を送信することで、辞書の更新を確認できます。
|
|
||||||
- 修飾された列名
|
|
||||||
- 二重引用符を使用した識別子の引用。
|
|
||||||
- HTTPイ
|
|
||||||
- 複製されたテーブルのOPTIMIZEクエリは、リーダーだけでなく実行できます。
|
|
||||||
|
|
||||||
#### 下位互換性のない変更: {#backward-incompatible-changes-2}
|
|
||||||
|
|
||||||
- グローバルセットを削除。
|
|
||||||
|
|
||||||
#### マイナーな変更点: {#minor-changes}
|
|
||||||
|
|
||||||
- 今後のアラート実行のログを出力フルスタックトレース.
|
|
||||||
- 起動時に破損した/余分なデータパーツの数の検証を緩和しました(誤検出が多すぎました)。
|
|
||||||
|
|
||||||
#### バグ修正: {#bug-fixes-5}
|
|
||||||
|
|
||||||
- 接続不良を修正 “sticking” 分散テーブルに挿入するとき。
|
|
||||||
- GLOBAL INは、分散テーブルを参照するMergeテーブルからのクエリに対して機能します。
|
|
||||||
- Google Compute Engine仮想マシンで不正なコア数が検出されました。 これは修正されました。
|
|
||||||
- キャッシュされた外部辞書の実行可能ソースの動作方法の変更。
|
|
||||||
- Null文字を含む文字列の比較を修正しました。
|
|
||||||
- Float32主キーフィールドと定数の比較を修正しました。
|
|
||||||
- 従来、不正確な見積りのサイズの分野が過度に大きな分配すべき。
|
|
||||||
- ALTERを使用してテーブルに追加されたNull許容列を照会するとクラッシュする問題を修正しました。
|
|
||||||
- 行数が制限よりも小さい場合、Null許容列でソートするとクラッシュする問題を修正しました。
|
|
||||||
- 定数値のみで構成されるORDER BYサブクエリを修正しました。
|
|
||||||
- については、従来、複製テーブルが残る無効な状態にした後、失敗した下表に示す。
|
|
||||||
- 空の結果を持つスカラーサブクエリのエイリアスは失われなくなりました。
|
|
||||||
- コンパイルを使用したクエリは、.soファイルが破損してもエラーで失敗しません。
|
|
1
docs/ja/whats-new/changelog/2017.md
Symbolic link
1
docs/ja/whats-new/changelog/2017.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2017.md
|
File diff suppressed because it is too large
Load Diff
1
docs/ja/whats-new/changelog/2018.md
Symbolic link
1
docs/ja/whats-new/changelog/2018.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2018.md
|
File diff suppressed because it is too large
Load Diff
1
docs/ja/whats-new/changelog/2019.md
Symbolic link
1
docs/ja/whats-new/changelog/2019.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2019.md
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_folder_title: "\u5909\u66F4\u5C65\u6B74"
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/ja/whats-new/changelog/index.md
Symbolic link
1
docs/ja/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
@ -61,7 +61,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -672,7 +672,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -621,12 +621,12 @@ data_compressed_bytes: 157
|
|||||||
data_uncompressed_bytes: 91
|
data_uncompressed_bytes: 91
|
||||||
marks_bytes: 144
|
marks_bytes: 144
|
||||||
modification_time: 2020-06-18 13:01:49
|
modification_time: 2020-06-18 13:01:49
|
||||||
remove_time: 0000-00-00 00:00:00
|
remove_time: 1970-01-01 00:00:00
|
||||||
refcount: 1
|
refcount: 1
|
||||||
min_date: 0000-00-00
|
min_date: 1970-01-01
|
||||||
max_date: 0000-00-00
|
max_date: 1970-01-01
|
||||||
min_time: 0000-00-00 00:00:00
|
min_time: 1970-01-01 00:00:00
|
||||||
max_time: 0000-00-00 00:00:00
|
max_time: 1970-01-01 00:00:00
|
||||||
partition_id: all
|
partition_id: all
|
||||||
min_block_number: 1
|
min_block_number: 1
|
||||||
max_block_number: 4
|
max_block_number: 4
|
||||||
@ -643,8 +643,8 @@ path: /var/lib/clickhouse/data/default/months/a
|
|||||||
hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf
|
hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf
|
||||||
hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29
|
hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29
|
||||||
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
|
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
|
||||||
delete_ttl_info_min: 0000-00-00 00:00:00
|
delete_ttl_info_min: 1970-01-01 00:00:00
|
||||||
delete_ttl_info_max: 0000-00-00 00:00:00
|
delete_ttl_info_max: 1970-01-01 00:00:00
|
||||||
move_ttl_info.expression: []
|
move_ttl_info.expression: []
|
||||||
move_ttl_info.min: []
|
move_ttl_info.min: []
|
||||||
move_ttl_info.max: []
|
move_ttl_info.max: []
|
||||||
@ -983,7 +983,8 @@ ProfileEvents.Values: [1,97,81,5,81]
|
|||||||
|
|
||||||
- [system.query_log](#system_tables-query_log) — описание системной таблицы `query_log`, которая содержит общую информацию о выполненных запросах.
|
- [system.query_log](#system_tables-query_log) — описание системной таблицы `query_log`, которая содержит общую информацию о выполненных запросах.
|
||||||
|
|
||||||
## system.trace\_log {#system_tables-trace_log}
|
|
||||||
|
## system.trace_log {#system_tables-trace_log}
|
||||||
|
|
||||||
Contains stack traces collected by the sampling query profiler.
|
Contains stack traces collected by the sampling query profiler.
|
||||||
|
|
||||||
@ -1029,6 +1030,93 @@ thread_number: 48
|
|||||||
query_id: acc4d61f-5bd1-4a3e-bc91-2180be37c915
|
query_id: acc4d61f-5bd1-4a3e-bc91-2180be37c915
|
||||||
trace: [94222141367858,94222152240175,94222152325351,94222152329944,94222152330796,94222151449980,94222144088167,94222151682763,94222144088167,94222151682763,94222144088167,94222144058283,94222144059248,94222091840750,94222091842302,94222091831228,94222189631488,140509950166747,140509942945935]
|
trace: [94222141367858,94222152240175,94222152325351,94222152329944,94222152330796,94222151449980,94222144088167,94222151682763,94222144088167,94222151682763,94222144088167,94222144058283,94222144059248,94222091840750,94222091842302,94222091831228,94222189631488,140509950166747,140509942945935]
|
||||||
```
|
```
|
||||||
|
## system.stack_trace {#system-tables_stack_trace}
|
||||||
|
|
||||||
|
Содержит трассировки стека всех серверных потоков. Позволяет разработчикам анализировать состояние сервера.
|
||||||
|
|
||||||
|
Для анализа логов используйте [функции интроспекции](../sql-reference/functions/introspection.md): `addressToLine`, `addressToSymbol` и `demangle`.
|
||||||
|
|
||||||
|
Столбцы:
|
||||||
|
|
||||||
|
- `thread_id` ([UInt64](../sql-reference/data-types/int-uint.md)) — Идентификатор потока.
|
||||||
|
- `query_id` ([String](../sql-reference/data-types/string.md)) — Идентификатор запроса. Может быть использован для получения подробной информации о выполненном запросе из системной таблицы [query_log](#system_tables-query_log).
|
||||||
|
- `trace` ([Array(UInt64)](../sql-reference/data-types/array.md)) — [Трассировка стека](https://en.wikipedia.org/wiki/Stack_trace). Представляет собой список физических адресов, по которым расположены вызываемые методы.
|
||||||
|
|
||||||
|
**Пример**
|
||||||
|
|
||||||
|
Включение функций интроспекции:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SET allow_introspection_functions = 1;
|
||||||
|
```
|
||||||
|
|
||||||
|
Получение символов из объектных файлов ClickHouse:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
WITH arrayMap(x -> demangle(addressToSymbol(x)), trace) AS all SELECT thread_id, query_id, arrayStringConcat(all, '\n') AS res FROM system.stack_trace LIMIT 1 \G
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Row 1:
|
||||||
|
──────
|
||||||
|
thread_id: 686
|
||||||
|
query_id: 1a11f70b-626d-47c1-b948-f9c7b206395d
|
||||||
|
res: sigqueue
|
||||||
|
DB::StorageSystemStackTrace::fillData(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::Context const&, DB::SelectQueryInfo const&) const
|
||||||
|
DB::IStorageSystemOneBlock<DB::StorageSystemStackTrace>::read(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, DB::SelectQueryInfo const&, DB::Context const&, DB::QueryProcessingStage::Enum, unsigned long, unsigned int)
|
||||||
|
DB::InterpreterSelectQuery::executeFetchColumns(DB::QueryProcessingStage::Enum, DB::QueryPipeline&, std::__1::shared_ptr<DB::PrewhereInfo> const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
|
||||||
|
DB::InterpreterSelectQuery::executeImpl(DB::QueryPipeline&, std::__1::shared_ptr<DB::IBlockInputStream> const&, std::__1::optional<DB::Pipe>)
|
||||||
|
DB::InterpreterSelectQuery::execute()
|
||||||
|
DB::InterpreterSelectWithUnionQuery::execute()
|
||||||
|
DB::executeQueryImpl(char const*, char const*, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool, DB::ReadBuffer*)
|
||||||
|
DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)
|
||||||
|
DB::TCPHandler::runImpl()
|
||||||
|
DB::TCPHandler::run()
|
||||||
|
Poco::Net::TCPServerConnection::start()
|
||||||
|
Poco::Net::TCPServerDispatcher::run()
|
||||||
|
Poco::PooledThread::run()
|
||||||
|
Poco::ThreadImpl::runnableEntry(void*)
|
||||||
|
start_thread
|
||||||
|
__clone
|
||||||
|
```
|
||||||
|
|
||||||
|
Получение имен файлов и номеров строк в исходном коде ClickHouse:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
WITH arrayMap(x -> addressToLine(x), trace) AS all, arrayFilter(x -> x LIKE '%/dbms/%', all) AS dbms SELECT thread_id, query_id, arrayStringConcat(notEmpty(dbms) ? dbms : all, '\n') AS res FROM system.stack_trace LIMIT 1 \G
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
Row 1:
|
||||||
|
──────
|
||||||
|
thread_id: 686
|
||||||
|
query_id: cad353e7-1c29-4b2e-949f-93e597ab7a54
|
||||||
|
res: /lib/x86_64-linux-gnu/libc-2.27.so
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Storages/System/StorageSystemStackTrace.cpp:182
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:656
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:1338
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:751
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:224
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectWithUnionQuery.cpp:192
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:384
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:643
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:251
|
||||||
|
/build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:1197
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:57
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/Mutex_POSIX.h:59
|
||||||
|
/build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/AutoPtr.h:223
|
||||||
|
/lib/x86_64-linux-gnu/libpthread-2.27.so
|
||||||
|
/lib/x86_64-linux-gnu/libc-2.27.so
|
||||||
|
```
|
||||||
|
|
||||||
|
**См. также**
|
||||||
|
|
||||||
|
- [Функции интроспекции](../sql-reference/functions/introspection.md) — Что такое функции интроспекции и как их использовать.
|
||||||
|
- [system.trace_log](system-tables.md#system_tables-trace_log) — Содержит трассировки стека, собранные профилировщиком выборочных запросов.
|
||||||
|
- [arrayMap](../sql-reference/functions/higher-order-functions.md#higher_order_functions-array-map) — Описание и пример использования функции `arrayMap`.
|
||||||
|
- [arrayFilter](../sql-reference/functions/higher-order-functions.md#higher_order_functions-array-filter) — Описание и пример использования функции `arrayFilter`.
|
||||||
|
|
||||||
|
|
||||||
## system.replicas {#system_tables-replicas}
|
## system.replicas {#system_tables-replicas}
|
||||||
|
|
||||||
@ -1065,9 +1153,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
# Date {#data-type-date}
|
# Date {#data-type-date}
|
||||||
|
|
||||||
Дата. Хранится в двух байтах в виде (беззнакового) числа дней, прошедших от 1970-01-01. Позволяет хранить значения от чуть больше, чем начала unix-эпохи до верхнего порога, определяющегося константой на этапе компиляции (сейчас - до 2106 года, последний полностью поддерживаемый год - 2105).
|
Дата. Хранится в двух байтах в виде (беззнакового) числа дней, прошедших от 1970-01-01. Позволяет хранить значения от чуть больше, чем начала unix-эпохи до верхнего порога, определяющегося константой на этапе компиляции (сейчас - до 2106 года, последний полностью поддерживаемый год - 2105).
|
||||||
Минимальное значение выводится как 0000-00-00.
|
|
||||||
|
|
||||||
Дата хранится без учёта часового пояса.
|
Дата хранится без учёта часового пояса.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
toc_priority: 62
|
toc_priority: 62
|
||||||
toc_folder_title: hidden
|
toc_folder_title: Гео-данные
|
||||||
toc_title: Функции для работы с географическими координатами
|
toc_title: hidden
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS SELECT ...
|
|||||||
`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
Пример: `URLDomain String DEFAULT domain(URL)`.
|
Пример: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
Если выражение для значения по умолчанию не указано, то в качестве значений по умолчанию будут использоваться нули для чисел, пустые строки для строк, пустые массивы для массивов, а также `0000-00-00` для дат и `0000-00-00 00:00:00` для дат с временем. NULL-ы не поддерживаются.
|
Если выражение для значения по умолчанию не указано, то в качестве значений по умолчанию будут использоваться нули для чисел, пустые строки для строк, пустые массивы для массивов, а также `1970-01-01` для дат и нулевой unix timestamp для дат с временем, NULL-ы для Nullable.
|
||||||
|
|
||||||
В случае, если указано выражение по умолчанию, то указание типа столбца не обязательно. При отсутствии явно указанного типа, будет использован тип выражения по умолчанию. Пример: `EventDate DEFAULT toDate(EventTime)` - для столбца EventDate будет использован тип Date.
|
В случае, если указано выражение по умолчанию, то указание типа столбца не обязательно. При отсутствии явно указанного типа, будет использован тип выражения по умолчанию. Пример: `EventDate DEFAULT toDate(EventTime)` - для столбца EventDate будет использован тип Date.
|
||||||
|
|
||||||
|
@ -1,474 +1,479 @@
|
|||||||
---
|
# GRANT
|
||||||
toc_priority: 39
|
|
||||||
toc_title: GRANT
|
|
||||||
---
|
|
||||||
|
|
||||||
# GRANT {#grant}
|
- Присваивает [привилегии](#grant-privileges) пользователям или ролям ClickHouse.
|
||||||
|
- Назначает роли пользователям или другим ролям.
|
||||||
|
|
||||||
- Grants [privileges](#grant-privileges) to ClickHouse user accounts or roles.
|
Отозвать привилегию можно с помощью выражения [REVOKE](revoke.md). Чтобы вывести список присвоенных привилегий, воспользуйтесь выражением [SHOW GRANTS](show.md#show-grants-statement).
|
||||||
- Assigns roles to user accounts or to the other roles.
|
|
||||||
|
|
||||||
To revoke privileges, use the [REVOKE](../../sql-reference/statements/revoke.md) statement. Also you can list granted privileges with the [SHOW GRANTS](../../sql-reference/statements/show.md#show-grants-statement) statement.
|
## Синтаксис присвоения привилегий {#grant-privigele-syntax}
|
||||||
|
|
||||||
## Granting Privilege Syntax {#grant-privigele-syntax}
|
```sql
|
||||||
|
|
||||||
``` sql
|
|
||||||
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION]
|
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION]
|
||||||
```
|
```
|
||||||
|
|
||||||
- `privilege` — Type of privilege.
|
- `privilege` — Тип привилегии
|
||||||
- `role` — ClickHouse user role.
|
- `role` — Роль пользователя ClickHouse.
|
||||||
- `user` — ClickHouse user account.
|
- `user` — Пользователь ClickHouse.
|
||||||
|
|
||||||
The `WITH GRANT OPTION` clause grants `user` or `role` with permission to execute the `GRANT` query. Users can grant privileges of the same scope they have and less.
|
`WITH GRANT OPTION` разрешает пользователю или роли выполнять запрос `GRANT`. Пользователь может выдавать только те привилегии, которые есть у него, той же или меньшей области действий.
|
||||||
|
|
||||||
## Assigning Role Syntax {#assign-role-syntax}
|
|
||||||
|
|
||||||
``` sql
|
## Синтаксис назначения ролей {#assign-role-syntax}
|
||||||
|
|
||||||
|
```sql
|
||||||
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION]
|
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION]
|
||||||
```
|
```
|
||||||
|
|
||||||
- `role` — ClickHouse user role.
|
- `role` — Роль пользователя ClickHouse.
|
||||||
- `user` — ClickHouse user account.
|
- `user` — Пользователь ClickHouse.
|
||||||
|
|
||||||
The `WITH ADMIN OPTION` clause grants [ADMIN OPTION](#admin-option-privilege) privilege to `user` or `role`.
|
`WITH ADMIN OPTION` присваивает привилегию [ADMIN OPTION](#admin-option-privilege) пользователю или роли.
|
||||||
|
|
||||||
## Usage {#grant-usage}
|
## Использование {#grant-usage}
|
||||||
|
|
||||||
To use `GRANT`, your account must have the `GRANT OPTION` privilege. You can grant privileges only inside the scope of your account privileges.
|
Для использования `GRANT` пользователь должен иметь привилегию `GRANT OPTION`. Пользователь может выдавать привилегии только внутри области действий назначенных ему самому привилегий.
|
||||||
|
|
||||||
For example, administrator has granted privileges to the `john` account by the query:
|
Например, администратор выдал привилегию пользователю `john`:
|
||||||
|
|
||||||
``` sql
|
```sql
|
||||||
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
|
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
|
||||||
```
|
```
|
||||||
|
|
||||||
It means that `john` has the permission to execute:
|
Это означает, что пользователю `john` разрешено выполнять:
|
||||||
|
|
||||||
- `SELECT x,y FROM db.table`.
|
- `SELECT x,y FROM db.table`.
|
||||||
- `SELECT x FROM db.table`.
|
- `SELECT x FROM db.table`.
|
||||||
- `SELECT y FROM db.table`.
|
- `SELECT y FROM db.table`.
|
||||||
|
|
||||||
`john` can’t execute `SELECT z FROM db.table`. The `SELECT * FROM db.table` also is not available. Processing this query, ClickHouse doesn’t return any data, even `x` and `y`. The only exception is if a table contains only `x` and `y` columns. In this case ClickHouse returns all the data.
|
`john` не может выполнить `SELECT z FROM db.table` или `SELECT * FROM db.table`. После обработки данных запросов ClickHouse ничего не вернет — даже `x` или `y`. Единственное исключение — если таблица содержит только столбцы `x` и `y`. В таком случае ClickHouse вернет все данные.
|
||||||
|
|
||||||
Also `john` has the `GRANT OPTION` privilege, so it can grant other users with privileges of the same or smaller scope.
|
Также у `john` есть привилегия `GRANT OPTION`. `john` может выдать другим пользователям привилегии той же или меньшей области действий из тех, которые есть у него.
|
||||||
|
|
||||||
Specifying privileges you can use asterisk (`*`) instead of a table or a database name. For example, the `GRANT SELECT ON db.* TO john` query allows `john` to execute the `SELECT` query over all the tables in `db` database. Also, you can omit database name. In this case privileges are granted for current database. For example, `GRANT SELECT ON * TO john` grants the privilege on all the tables in the current database, `GRANT SELECT ON mytable TO john` grants the privilege on the `mytable` table in the current database.
|
При присвоении привилегий допускается использовать астериск (`*`) вместо имени таблицы или базы данных. Например, запрос `GRANT SELECT ON db.* TO john` позволит пользователю `john` выполнять `SELECT` над всеми таблицам в базе данных `db`. Также вы можете опускать имя базы данных. В таком случае привилегии позволят совершать операции над текущей базой данных. Например, запрос `GRANT SELECT ON * TO john` выдаст привилегию на выполнение `SELECT` над всеми таблицами в текущей базе данных; `GRANT SELECT ON mytable TO john` — только над таблицей `mytable` в текущей базе данных.
|
||||||
|
|
||||||
Access to the `system` database is always allowed (since this database is used for processing queries).
|
Доступ к базе данных `system` разрешен всегда (данная база данных используется при обработке запросов).
|
||||||
|
|
||||||
You can grant multiple privileges to multiple accounts in one query. The query `GRANT SELECT, INSERT ON *.* TO john, robin` allows accounts `john` and `robin` to execute the `INSERT` and `SELECT` queries over all the tables in all the databases on the server.
|
Вы можете присвоить несколько привилегий нескольким пользователям в одном запросе. Запрос `GRANT SELECT, INSERT ON *.* TO john, robin` позволит пользователям `john` и `robin` выполнять `INSERT` и `SELECT` над всеми таблицами всех баз данных на сервере.
|
||||||
|
|
||||||
## Privileges {#grant-privileges}
|
|
||||||
|
|
||||||
Privilege is a permission to execute specific kind of queries.
|
## Привилегии {#grant-privileges}
|
||||||
|
|
||||||
Privileges have a hierarchical structure. A set of permitted queries depends on the privilege scope.
|
Привилегия — это разрешение на выполнение определенного типа запросов.
|
||||||
|
|
||||||
Hierarchy of privileges:
|
Привилегии имеют иерархическую структуру. Набор разрешенных запросов зависит от области действия привилегии.
|
||||||
|
|
||||||
- [SELECT](#grant-select)
|
Иерархия привилегий:
|
||||||
- [INSERT](#grant-insert)
|
|
||||||
- [ALTER](#grant-alter)
|
|
||||||
- `ALTER TABLE`
|
|
||||||
- `ALTER UPDATE`
|
|
||||||
- `ALTER DELETE`
|
|
||||||
- `ALTER COLUMN`
|
|
||||||
- `ALTER ADD COLUMN`
|
|
||||||
- `ALTER DROP COLUMN`
|
|
||||||
- `ALTER MODIFY COLUMN`
|
|
||||||
- `ALTER COMMENT COLUMN`
|
|
||||||
- `ALTER CLEAR COLUMN`
|
|
||||||
- `ALTER RENAME COLUMN`
|
|
||||||
- `ALTER INDEX`
|
|
||||||
- `ALTER ORDER BY`
|
|
||||||
- `ALTER ADD INDEX`
|
|
||||||
- `ALTER DROP INDEX`
|
|
||||||
- `ALTER MATERIALIZE INDEX`
|
|
||||||
- `ALTER CLEAR INDEX`
|
|
||||||
- `ALTER CONSTRAINT`
|
|
||||||
- `ALTER ADD CONSTRAINT`
|
|
||||||
- `ALTER DROP CONSTRAINT`
|
|
||||||
- `ALTER TTL`
|
|
||||||
- `ALTER MATERIALIZE TTL`
|
|
||||||
- `ALTER SETTINGS`
|
|
||||||
- `ALTER MOVE PARTITION`
|
|
||||||
- `ALTER FETCH PARTITION`
|
|
||||||
- `ALTER FREEZE PARTITION`
|
|
||||||
- `ALTER VIEW`
|
|
||||||
- `ALTER VIEW REFRESH`
|
|
||||||
- `ALTER VIEW MODIFY QUERY`
|
|
||||||
- [CREATE](#grant-create)
|
|
||||||
- `CREATE DATABASE`
|
|
||||||
- `CREATE TABLE`
|
|
||||||
- `CREATE VIEW`
|
|
||||||
- `CREATE DICTIONARY`
|
|
||||||
- `CREATE TEMPORARY TABLE`
|
|
||||||
- [DROP](#grant-drop)
|
|
||||||
- `DROP DATABASE`
|
|
||||||
- `DROP TABLE`
|
|
||||||
- `DROP VIEW`
|
|
||||||
- `DROP DICTIONARY`
|
|
||||||
- [TRUNCATE](#grant-truncate)
|
|
||||||
- [OPTIMIZE](#grant-optimize)
|
|
||||||
- [SHOW](#grant-show)
|
|
||||||
- `SHOW DATABASES`
|
|
||||||
- `SHOW TABLES`
|
|
||||||
- `SHOW COLUMNS`
|
|
||||||
- `SHOW DICTIONARIES`
|
|
||||||
- [KILL QUERY](#grant-kill-query)
|
|
||||||
- [ACCESS MANAGEMENT](#grant-access-management)
|
|
||||||
- `CREATE USER`
|
|
||||||
- `ALTER USER`
|
|
||||||
- `DROP USER`
|
|
||||||
- `CREATE ROLE`
|
|
||||||
- `ALTER ROLE`
|
|
||||||
- `DROP ROLE`
|
|
||||||
- `CREATE ROW POLICY`
|
|
||||||
- `ALTER ROW POLICY`
|
|
||||||
- `DROP ROW POLICY`
|
|
||||||
- `CREATE QUOTA`
|
|
||||||
- `ALTER QUOTA`
|
|
||||||
- `DROP QUOTA`
|
|
||||||
- `CREATE SETTINGS PROFILE`
|
|
||||||
- `ALTER SETTINGS PROFILE`
|
|
||||||
- `DROP SETTINGS PROFILE`
|
|
||||||
- `SHOW ACCESS`
|
|
||||||
- `SHOW_USERS`
|
|
||||||
- `SHOW_ROLES`
|
|
||||||
- `SHOW_ROW_POLICIES`
|
|
||||||
- `SHOW_QUOTAS`
|
|
||||||
- `SHOW_SETTINGS_PROFILES`
|
|
||||||
- `ROLE ADMIN`
|
|
||||||
- [SYSTEM](#grant-system)
|
|
||||||
- `SYSTEM SHUTDOWN`
|
|
||||||
- `SYSTEM DROP CACHE`
|
|
||||||
- `SYSTEM DROP DNS CACHE`
|
|
||||||
- `SYSTEM DROP MARK CACHE`
|
|
||||||
- `SYSTEM DROP UNCOMPRESSED CACHE`
|
|
||||||
- `SYSTEM RELOAD`
|
|
||||||
- `SYSTEM RELOAD CONFIG`
|
|
||||||
- `SYSTEM RELOAD DICTIONARY`
|
|
||||||
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`
|
|
||||||
- `SYSTEM MERGES`
|
|
||||||
- `SYSTEM TTL MERGES`
|
|
||||||
- `SYSTEM FETCHES`
|
|
||||||
- `SYSTEM MOVES`
|
|
||||||
- `SYSTEM SENDS`
|
|
||||||
- `SYSTEM DISTRIBUTED SENDS`
|
|
||||||
- `SYSTEM REPLICATED SENDS`
|
|
||||||
- `SYSTEM REPLICATION QUEUES`
|
|
||||||
- `SYSTEM SYNC REPLICA`
|
|
||||||
- `SYSTEM RESTART REPLICA`
|
|
||||||
- `SYSTEM FLUSH`
|
|
||||||
- `SYSTEM FLUSH DISTRIBUTED`
|
|
||||||
- `SYSTEM FLUSH LOGS`
|
|
||||||
- [INTROSPECTION](#grant-introspection)
|
|
||||||
- `addressToLine`
|
|
||||||
- `addressToSymbol`
|
|
||||||
- `demangle`
|
|
||||||
- [SOURCES](#grant-sources)
|
|
||||||
- `FILE`
|
|
||||||
- `URL`
|
|
||||||
- `REMOTE`
|
|
||||||
- `YSQL`
|
|
||||||
- `ODBC`
|
|
||||||
- `JDBC`
|
|
||||||
- `HDFS`
|
|
||||||
- `S3`
|
|
||||||
- [dictGet](#grant-dictget)
|
|
||||||
|
|
||||||
Examples of how this hierarchy is treated:
|
- [SELECT](#grant-select)
|
||||||
|
- [INSERT](#grant-insert)
|
||||||
|
- [ALTER](#grant-alter)
|
||||||
|
- `ALTER TABLE`
|
||||||
|
- `ALTER UPDATE`
|
||||||
|
- `ALTER DELETE`
|
||||||
|
- `ALTER COLUMN`
|
||||||
|
- `ALTER ADD COLUMN`
|
||||||
|
- `ALTER DROP COLUMN`
|
||||||
|
- `ALTER MODIFY COLUMN`
|
||||||
|
- `ALTER COMMENT COLUMN`
|
||||||
|
- `ALTER CLEAR COLUMN`
|
||||||
|
- `ALTER RENAME COLUMN`
|
||||||
|
- `ALTER INDEX`
|
||||||
|
- `ALTER ORDER BY`
|
||||||
|
- `ALTER ADD INDEX`
|
||||||
|
- `ALTER DROP INDEX`
|
||||||
|
- `ALTER MATERIALIZE INDEX`
|
||||||
|
- `ALTER CLEAR INDEX`
|
||||||
|
- `ALTER CONSTRAINT`
|
||||||
|
- `ALTER ADD CONSTRAINT`
|
||||||
|
- `ALTER DROP CONSTRAINT`
|
||||||
|
- `ALTER TTL`
|
||||||
|
- `ALTER MATERIALIZE TTL`
|
||||||
|
- `ALTER SETTINGS`
|
||||||
|
- `ALTER MOVE PARTITION`
|
||||||
|
- `ALTER FETCH PARTITION`
|
||||||
|
- `ALTER FREEZE PARTITION`
|
||||||
|
- `ALTER VIEW`
|
||||||
|
- `ALTER VIEW REFRESH `
|
||||||
|
- `ALTER VIEW MODIFY QUERY`
|
||||||
|
- [CREATE](#grant-create)
|
||||||
|
- `CREATE DATABASE`
|
||||||
|
- `CREATE TABLE`
|
||||||
|
- `CREATE VIEW`
|
||||||
|
- `CREATE DICTIONARY`
|
||||||
|
- `CREATE TEMPORARY TABLE`
|
||||||
|
- [DROP](#grant-drop)
|
||||||
|
- `DROP DATABASE`
|
||||||
|
- `DROP TABLE`
|
||||||
|
- `DROP VIEW`
|
||||||
|
- `DROP DICTIONARY`
|
||||||
|
- [TRUNCATE](#grant-truncate)
|
||||||
|
- [OPTIMIZE](#grant-optimize)
|
||||||
|
- [SHOW](#grant-show)
|
||||||
|
- `SHOW DATABASES`
|
||||||
|
- `SHOW TABLES`
|
||||||
|
- `SHOW COLUMNS`
|
||||||
|
- `SHOW DICTIONARIES`
|
||||||
|
- [KILL QUERY](#grant-kill-query)
|
||||||
|
- [ACCESS MANAGEMENT](#grant-access-management)
|
||||||
|
- `CREATE USER`
|
||||||
|
- `ALTER USER`
|
||||||
|
- `DROP USER`
|
||||||
|
- `CREATE ROLE`
|
||||||
|
- `ALTER ROLE`
|
||||||
|
- `DROP ROLE`
|
||||||
|
- `CREATE ROW POLICY`
|
||||||
|
- `ALTER ROW POLICY`
|
||||||
|
- `DROP ROW POLICY`
|
||||||
|
- `CREATE QUOTA`
|
||||||
|
- `ALTER QUOTA`
|
||||||
|
- `DROP QUOTA`
|
||||||
|
- `CREATE SETTINGS PROFILE`
|
||||||
|
- `ALTER SETTINGS PROFILE`
|
||||||
|
- `DROP SETTINGS PROFILE`
|
||||||
|
- `SHOW ACCESS`
|
||||||
|
- `SHOW_USERS`
|
||||||
|
- `SHOW_ROLES`
|
||||||
|
- `SHOW_ROW_POLICIES`
|
||||||
|
- `SHOW_QUOTAS`
|
||||||
|
- `SHOW_SETTINGS_PROFILES`
|
||||||
|
- `ROLE ADMIN`
|
||||||
|
- [SYSTEM](#grant-system)
|
||||||
|
- `SYSTEM SHUTDOWN`
|
||||||
|
- `SYSTEM DROP CACHE`
|
||||||
|
- `SYSTEM DROP DNS CACHE`
|
||||||
|
- `SYSTEM DROP MARK CACHE`
|
||||||
|
- `SYSTEM DROP UNCOMPRESSED CACHE`
|
||||||
|
- `SYSTEM RELOAD`
|
||||||
|
- `SYSTEM RELOAD CONFIG`
|
||||||
|
- `SYSTEM RELOAD DICTIONARY`
|
||||||
|
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`
|
||||||
|
- `SYSTEM MERGES`
|
||||||
|
- `SYSTEM TTL MERGES`
|
||||||
|
- `SYSTEM FETCHES`
|
||||||
|
- `SYSTEM MOVES`
|
||||||
|
- `SYSTEM SENDS`
|
||||||
|
- `SYSTEM DISTRIBUTED SENDS`
|
||||||
|
- `SYSTEM REPLICATED SENDS`
|
||||||
|
- `SYSTEM REPLICATION QUEUES`
|
||||||
|
- `SYSTEM SYNC REPLICA`
|
||||||
|
- `SYSTEM RESTART REPLICA`
|
||||||
|
- `SYSTEM FLUSH`
|
||||||
|
- `SYSTEM FLUSH DISTRIBUTED`
|
||||||
|
- `SYSTEM FLUSH LOGS`
|
||||||
|
- [INTROSPECTION](#grant-introspection)
|
||||||
|
- `addressToLine`
|
||||||
|
- `addressToSymbol`
|
||||||
|
- `demangle`
|
||||||
|
- [SOURCES](#grant-sources)
|
||||||
|
- `FILE`
|
||||||
|
- `URL`
|
||||||
|
- `REMOTE`
|
||||||
|
- `MYSQL`
|
||||||
|
- `ODBC`
|
||||||
|
- `JDBC`
|
||||||
|
- `HDFS`
|
||||||
|
- `S3`
|
||||||
|
- [dictGet](#grant-dictget)
|
||||||
|
|
||||||
- The `ALTER` privilege includes all other `ALTER*` privileges.
|
Примеры того, как трактуется данная иерархия:
|
||||||
- `ALTER CONSTRAINT` includes `ALTER ADD CONSTRAINT` and `ALTER DROP CONSTRAINT` privileges.
|
|
||||||
|
|
||||||
Privileges are applied at different levels. Knowing of a level suggests syntax available for privilege.
|
- Привилегия `ALTER` включает все остальные `ALTER*` привилегии.
|
||||||
|
- `ALTER CONSTRAINT` включает `ALTER ADD CONSTRAINT` и `ALTER DROP CONSTRAINT`.
|
||||||
|
|
||||||
Levels (from lower to higher):
|
Привилегии применяются на разных уровнях. Уровень определяет синтаксис присваивания привилегии.
|
||||||
|
|
||||||
- `COLUMN` — Privilege can be granted for column, table, database, or globally.
|
Уровни (от низшего к высшему):
|
||||||
- `TABLE` — Privilege can be granted for table, database, or globally.
|
|
||||||
- `VIEW` — Privilege can be granted for view, database, or globally.
|
|
||||||
- `DICTIONARY` — Privilege can be granted for dictionary, database, or globally.
|
|
||||||
- `DATABASE` — Privilege can be granted for database or globally.
|
|
||||||
- `GLOBAL` — Privilege can be granted only globally.
|
|
||||||
- `GROUP` — Groups privileges of different levels. When `GROUP`-level privilege is granted, only that privileges from the group are granted which correspond to the used syntax.
|
|
||||||
|
|
||||||
Examples of allowed syntax:
|
- `COLUMN` — Привилегия присваивается для столбца, таблицы, базы данных или глобально.
|
||||||
|
- `TABLE` — Привилегия присваивается для таблицы, базы данных или глобально.
|
||||||
|
- `VIEW` — Привилегия присваивается для представления, базы данных или глобально.
|
||||||
|
- `DICTIONARY` — Привилегия присваивается для словаря, базы данных или глобально.
|
||||||
|
- `DATABASE` — Привилегия присваивается для базы данных или глобально.
|
||||||
|
- `GLOBAL` — Привилегия присваивается только глобально.
|
||||||
|
- `GROUP` — Группирует привилегии разных уровней. При присвоении привилегии уровня `GROUP` присваиваются только привилегии из группы в соответствии с используемым синтаксисом.
|
||||||
|
|
||||||
- `GRANT SELECT(x) ON db.table TO user`
|
Примеры допустимого синтаксиса:
|
||||||
- `GRANT SELECT ON db.* TO user`
|
|
||||||
|
|
||||||
Examples of disallowed syntax:
|
- `GRANT SELECT(x) ON db.table TO user`
|
||||||
|
- `GRANT SELECT ON db.* TO user`
|
||||||
|
|
||||||
- `GRANT CREATE USER(x) ON db.table TO user`
|
Примеры недопустимого синтаксиса:
|
||||||
- `GRANT CREATE USER ON db.* TO user`
|
|
||||||
|
|
||||||
The special privilege [ALL](#grant-all) grants all the privileges to a user account or a role.
|
- `GRANT CREATE USER(x) ON db.table TO user`
|
||||||
|
- `GRANT CREATE USER ON db.* TO user`
|
||||||
|
|
||||||
By default, a user account or a role has no privileges.
|
Специальная привилегия [ALL](#grant-all) присваивает все привилегии пользователю или роли.
|
||||||
|
|
||||||
If a user or a role has no privileges, it is displayed as [NONE](#grant-none) privilege.
|
По умолчанию пользователь или роль не имеют привилегий.
|
||||||
|
|
||||||
|
Отсутствие привилегий у пользователя или роли отображается как привилегия [NONE](#grant-none).
|
||||||
|
|
||||||
|
Выполнение некоторых запросов требует определенного набора привилегий. Например, чтобы выполнить запрос [RENAME](misc.md#misc_operations-rename), нужны следующие привилегии: `SELECT`, `CREATE TABLE`, `INSERT` и `DROP TABLE`.
|
||||||
|
|
||||||
Some queries by their implementation require a set of privileges. For example, to execute the [RENAME](../../sql-reference/statements/misc.md#misc_operations-rename) query you need the following privileges: `SELECT`, `CREATE TABLE`, `INSERT` and `DROP TABLE`.
|
|
||||||
|
|
||||||
### SELECT {#grant-select}
|
### SELECT {#grant-select}
|
||||||
|
|
||||||
Allows executing [SELECT](../../sql-reference/statements/select/index.md) queries.
|
Разрешает выполнять запросы [SELECT](select/index.md).
|
||||||
|
|
||||||
Privilege level: `COLUMN`.
|
Уровень: `COLUMN`.
|
||||||
|
|
||||||
**Description**
|
**Описание**
|
||||||
|
|
||||||
User granted with this privilege can execute `SELECT` queries over a specified list of columns in the specified table and database. If user includes other columns then specified a query returns no data.
|
Пользователь с данной привилегией может выполнять запросы `SELECT` над определенными столбцами из определенной таблицы и базы данных. При включении в запрос других столбцов запрос ничего не вернет.
|
||||||
|
|
||||||
Consider the following privilege:
|
Рассмотрим следующую привилегию:
|
||||||
|
|
||||||
``` sql
|
```sql
|
||||||
GRANT SELECT(x,y) ON db.table TO john
|
GRANT SELECT(x,y) ON db.table TO john
|
||||||
```
|
```
|
||||||
|
|
||||||
This privilege allows `john` to execute any `SELECT` query that involves data from the `x` and/or `y` columns in `db.table`, for example, `SELECT x FROM db.table`. `john` can’t execute `SELECT z FROM db.table`. The `SELECT * FROM db.table` also is not available. Processing this query, ClickHouse doesn’t return any data, even `x` and `y`. The only exception is if a table contains only `x` and `y` columns, in this case ClickHouse returns all the data.
|
Данная привилегия позволяет пользователю `john` выполнять выборку данных из столбцов `x` и/или `y` в `db.table`, например, `SELECT x FROM db.table`. `john` не может выполнить `SELECT z FROM db.table` или `SELECT * FROM db.table`. После обработки данных запросов ClickHouse ничего не вернет — даже `x` или `y`. Единственное исключение — если таблица содержит только столбцы `x` и `y`. В таком случае ClickHouse вернет все данные.
|
||||||
|
|
||||||
### INSERT {#grant-insert}
|
### INSERT {#grant-insert}
|
||||||
|
|
||||||
Allows executing [INSERT](../../sql-reference/statements/insert-into.md) queries.
|
Разрешает выполнять запросы [INSERT](insert-into.md).
|
||||||
|
|
||||||
Privilege level: `COLUMN`.
|
Уровень: `COLUMN`.
|
||||||
|
|
||||||
**Description**
|
**Описание**
|
||||||
|
|
||||||
User granted with this privilege can execute `INSERT` queries over a specified list of columns in the specified table and database. If user includes other columns then specified a query doesn’t insert any data.
|
Пользователь с данной привилегией может выполнять запросы `INSERT` над определенными столбцами из определенной таблицы и базы данных. При включении в запрос других столбцов запрос не добавит никаких данных.
|
||||||
|
|
||||||
**Example**
|
**Пример**
|
||||||
|
|
||||||
``` sql
|
```sql
|
||||||
GRANT INSERT(x,y) ON db.table TO john
|
GRANT INSERT(x,y) ON db.table TO john
|
||||||
```
|
```
|
||||||
|
|
||||||
The granted privilege allows `john` to insert data to the `x` and/or `y` columns in `db.table`.
|
Присвоенная привилегия позволит пользователю `john` вставить данные в столбцы `x` и/или `y` в `db.table`.
|
||||||
|
|
||||||
### ALTER {#grant-alter}
|
### ALTER {#grant-alter}
|
||||||
|
|
||||||
Allows executing [ALTER](../../sql-reference/statements/alter.md) queries according to the following hierarchy of privileges:
|
Разрешает выполнять запросы [ALTER](alter.md) в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
- `ALTER`. Level: `COLUMN`.
|
- `ALTER`. Уровень: `COLUMN`.
|
||||||
- `ALTER TABLE`. Level: `GROUP`
|
- `ALTER TABLE`. Уровень: `GROUP`
|
||||||
- `ALTER UPDATE`. Level: `COLUMN`. Aliases: `UPDATE`
|
- `ALTER UPDATE`. Уровень: `COLUMN`. Алиасы: `UPDATE`
|
||||||
- `ALTER DELETE`. Level: `COLUMN`. Aliases: `DELETE`
|
- `ALTER DELETE`. Уровень: `COLUMN`. Алиасы: `DELETE`
|
||||||
- `ALTER COLUMN`. Level: `GROUP`
|
- `ALTER COLUMN`. Уровень: `GROUP`
|
||||||
- `ALTER ADD COLUMN`. Level: `COLUMN`. Aliases: `ADD COLUMN`
|
- `ALTER ADD COLUMN`. Уровень: `COLUMN`. Алиасы: `ADD COLUMN`
|
||||||
- `ALTER DROP COLUMN`. Level: `COLUMN`. Aliases: `DROP COLUMN`
|
- `ALTER DROP COLUMN`. Уровень: `COLUMN`. Алиасы: `DROP COLUMN`
|
||||||
- `ALTER MODIFY COLUMN`. Level: `COLUMN`. Aliases: `MODIFY COLUMN`
|
- `ALTER MODIFY COLUMN`. Уровень: `COLUMN`. Алиасы: `MODIFY COLUMN`
|
||||||
- `ALTER COMMENT COLUMN`. Level: `COLUMN`. Aliases: `COMMENT COLUMN`
|
- `ALTER COMMENT COLUMN`. Уровень: `COLUMN`. Алиасы: `COMMENT COLUMN`
|
||||||
- `ALTER CLEAR COLUMN`. Level: `COLUMN`. Aliases: `CLEAR COLUMN`
|
- `ALTER CLEAR COLUMN`. Уровень: `COLUMN`. Алиасы: `CLEAR COLUMN`
|
||||||
- `ALTER RENAME COLUMN`. Level: `COLUMN`. Aliases: `RENAME COLUMN`
|
- `ALTER RENAME COLUMN`. Уровень: `COLUMN`. Алиасы: `RENAME COLUMN`
|
||||||
- `ALTER INDEX`. Level: `GROUP`. Aliases: `INDEX`
|
- `ALTER INDEX`. Уровень: `GROUP`. Алиасы: `INDEX`
|
||||||
- `ALTER ORDER BY`. Level: `TABLE`. Aliases: `ALTER MODIFY ORDER BY`, `MODIFY ORDER BY`
|
- `ALTER ORDER BY`. Уровень: `TABLE`. Алиасы: `ALTER MODIFY ORDER BY`, `MODIFY ORDER BY`
|
||||||
- `ALTER ADD INDEX`. Level: `TABLE`. Aliases: `ADD INDEX`
|
- `ALTER ADD INDEX`. Уровень: `TABLE`. Алиасы: `ADD INDEX`
|
||||||
- `ALTER DROP INDEX`. Level: `TABLE`. Aliases: `DROP INDEX`
|
- `ALTER DROP INDEX`. Уровень: `TABLE`. Алиасы: `DROP INDEX`
|
||||||
- `ALTER MATERIALIZE INDEX`. Level: `TABLE`. Aliases: `MATERIALIZE INDEX`
|
- `ALTER MATERIALIZE INDEX`. Уровень: `TABLE`. Алиасы: `MATERIALIZE INDEX`
|
||||||
- `ALTER CLEAR INDEX`. Level: `TABLE`. Aliases: `CLEAR INDEX`
|
- `ALTER CLEAR INDEX`. Уровень: `TABLE`. Алиасы: `CLEAR INDEX`
|
||||||
- `ALTER CONSTRAINT`. Level: `GROUP`. Aliases: `CONSTRAINT`
|
- `ALTER CONSTRAINT`. Уровень: `GROUP`. Алиасы: `CONSTRAINT`
|
||||||
- `ALTER ADD CONSTRAINT`. Level: `TABLE`. Aliases: `ADD CONSTRAINT`
|
- `ALTER ADD CONSTRAINT`. Уровень: `TABLE`. Алиасы: `ADD CONSTRAINT`
|
||||||
- `ALTER DROP CONSTRAINT`. Level: `TABLE`. Aliases: `DROP CONSTRAINT`
|
- `ALTER DROP CONSTRAINT`. Уровень: `TABLE`. Алиасы: `DROP CONSTRAINT`
|
||||||
- `ALTER TTL`. Level: `TABLE`. Aliases: `ALTER MODIFY TTL`, `MODIFY TTL`
|
- `ALTER TTL`. Уровень: `TABLE`. Алиасы: `ALTER MODIFY TTL`, `MODIFY TTL`
|
||||||
- `ALTER MATERIALIZE TTL`. Level: `TABLE`. Aliases: `MATERIALIZE TTL`
|
- `ALTER MATERIALIZE TTL`. Уровень: `TABLE`. Алиасы: `MATERIALIZE TTL`
|
||||||
- `ALTER SETTINGS`. Level: `TABLE`. Aliases: `ALTER SETTING`, `ALTER MODIFY SETTING`, `MODIFY SETTING`
|
- `ALTER SETTINGS`. Уровень: `TABLE`. Алиасы: `ALTER SETTING`, `ALTER MODIFY SETTING`, `MODIFY SETTING`
|
||||||
- `ALTER MOVE PARTITION`. Level: `TABLE`. Aliases: `ALTER MOVE PART`, `MOVE PARTITION`, `MOVE PART`
|
- `ALTER MOVE PARTITION`. Уровень: `TABLE`. Алиасы: `ALTER MOVE PART`, `MOVE PARTITION`, `MOVE PART`
|
||||||
- `ALTER FETCH PARTITION`. Level: `TABLE`. Aliases: `FETCH PARTITION`
|
- `ALTER FETCH PARTITION`. Уровень: `TABLE`. Алиасы: `FETCH PARTITION`
|
||||||
- `ALTER FREEZE PARTITION`. Level: `TABLE`. Aliases: `FREEZE PARTITION`
|
- `ALTER FREEZE PARTITION`. Уровень: `TABLE`. Алиасы: `FREEZE PARTITION`
|
||||||
- `ALTER VIEW` Level: `GROUP`
|
- `ALTER VIEW` Уровень: `GROUP`
|
||||||
- `ALTER VIEW REFRESH`. Level: `VIEW`. Aliases: `ALTER LIVE VIEW REFRESH`, `REFRESH VIEW`
|
- `ALTER VIEW REFRESH `. Уровень: `VIEW`. Алиасы: `ALTER LIVE VIEW REFRESH`, `REFRESH VIEW`
|
||||||
- `ALTER VIEW MODIFY QUERY`. Level: `VIEW`. Aliases: `ALTER TABLE MODIFY QUERY`
|
- `ALTER VIEW MODIFY QUERY`. Уровень: `VIEW`. Алиасы: `ALTER TABLE MODIFY QUERY`
|
||||||
|
|
||||||
Examples of how this hierarchy is treated:
|
Примеры того, как трактуется данная иерархия:
|
||||||
|
|
||||||
- The `ALTER` privilege includes all other `ALTER*` privileges.
|
- Привилегия `ALTER` включает все остальные `ALTER*` привилегии.
|
||||||
- `ALTER CONSTRAINT` includes `ALTER ADD CONSTRAINT` and `ALTER DROP CONSTRAINT` privileges.
|
- `ALTER CONSTRAINT` включает `ALTER ADD CONSTRAINT` и `ALTER DROP CONSTRAINT`.
|
||||||
|
|
||||||
**Notes**
|
**Дополнительно**
|
||||||
|
|
||||||
- The `MODIFY SETTING` privilege allows modifying table engine settings. It doesn’t affect settings or server configuration parameters.
|
- Привилегия `MODIFY SETTING` позволяет изменять настройки движков таблиц. Не влияет на настройки или конфигурационные параметры сервера.
|
||||||
- The `ATTACH` operation needs the [CREATE](#grant-create) privilege.
|
- Операция `ATTACH` требует наличие привилегии [CREATE](#grant-create).
|
||||||
- The `DETACH` operation needs the [DROP](#grant-drop) privilege.
|
- Операция `DETACH` требует наличие привилегии [DROP](#grant-drop).
|
||||||
- To stop mutation by the [KILL MUTATION](../../sql-reference/statements/misc.md#kill-mutation-statement) query, you need to have a privilege to start this mutation. For example, if you want to stop the `ALTER UPDATE` query, you need the `ALTER UPDATE`, `ALTER TABLE`, or `ALTER` privilege.
|
- Для остановки мутации с помощью [KILL MUTATION](misc.md#kill-mutation-statement), необходима привилегия на выполнение данной мутации. Например, чтобы остановить запрос `ALTER UPDATE`, необходима одна из привилегий: `ALTER UPDATE`, `ALTER TABLE` или `ALTER`.
|
||||||
|
|
||||||
### CREATE {#grant-create}
|
### CREATE {#grant-create}
|
||||||
|
|
||||||
Allows executing [CREATE](../../sql-reference/statements/create.md) and [ATTACH](../../sql-reference/statements/misc.md#attach) DDL-queries according to the following hierarchy of privileges:
|
Разрешает выполнять DDL-запросы [CREATE](create.md) и [ATTACH](misc.md#attach) в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
- `CREATE`. Level: `GROUP`
|
- `CREATE`. Уровень: `GROUP`
|
||||||
- `CREATE DATABASE`. Level: `DATABASE`
|
- `CREATE DATABASE`. Уровень: `DATABASE`
|
||||||
- `CREATE TABLE`. Level: `TABLE`
|
- `CREATE TABLE`. Уровень: `TABLE`
|
||||||
- `CREATE VIEW`. Level: `VIEW`
|
- `CREATE VIEW`. Уровень: `VIEW`
|
||||||
- `CREATE DICTIONARY`. Level: `DICTIONARY`
|
- `CREATE DICTIONARY`. Уровень: `DICTIONARY`
|
||||||
- `CREATE TEMPORARY TABLE`. Level: `GLOBAL`
|
- `CREATE TEMPORARY TABLE`. Уровень: `GLOBAL`
|
||||||
|
|
||||||
**Notes**
|
**Дополнительно**
|
||||||
|
|
||||||
- To delete the created table, a user needs [DROP](#grant-drop).
|
- Для удаления созданной таблицы пользователю необходима привилегия [DROP](#grant-drop).
|
||||||
|
|
||||||
### DROP {#grant-drop}
|
### DROP {#grant-drop}
|
||||||
|
|
||||||
Allows executing [DROP](../../sql-reference/statements/misc.md#drop) and [DETACH](../../sql-reference/statements/misc.md#detach-statement) queries according to the following hierarchy of privileges:
|
Разрешает выполнять запросы [DROP](misc.md#drop) и [DETACH](misc.md#detach-statement) в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
|
- `DROP`. Уровень:
|
||||||
|
- `DROP DATABASE`. Уровень: `DATABASE`
|
||||||
|
- `DROP TABLE`. Уровень: `TABLE`
|
||||||
|
- `DROP VIEW`. Уровень: `VIEW`
|
||||||
|
- `DROP DICTIONARY`. Уровень: `DICTIONARY`
|
||||||
|
|
||||||
- `DROP`. Level:
|
|
||||||
- `DROP DATABASE`. Level: `DATABASE`
|
|
||||||
- `DROP TABLE`. Level: `TABLE`
|
|
||||||
- `DROP VIEW`. Level: `VIEW`
|
|
||||||
- `DROP DICTIONARY`. Level: `DICTIONARY`
|
|
||||||
|
|
||||||
### TRUNCATE {#grant-truncate}
|
### TRUNCATE {#grant-truncate}
|
||||||
|
|
||||||
Allows executing [TRUNCATE](../../sql-reference/statements/misc.md#truncate-statement) queries.
|
Разрешает выполнять запросы [TRUNCATE](misc.md#truncate-statement).
|
||||||
|
|
||||||
Privilege level: `TABLE`.
|
Уровень: `TABLE`.
|
||||||
|
|
||||||
### OPTIMIZE {#grant-optimize}
|
### OPTIMIZE {#grant-optimize}
|
||||||
|
|
||||||
Allows executing [OPTIMIZE TABLE](../../sql-reference/statements/misc.md#misc_operations-optimize) queries.
|
Разрешает выполнять запросы [OPTIMIZE TABLE](misc.md#misc_operations-optimize).
|
||||||
|
|
||||||
Privilege level: `TABLE`.
|
Уровень: `TABLE`.
|
||||||
|
|
||||||
### SHOW {#grant-show}
|
### SHOW {#grant-show}
|
||||||
|
|
||||||
Allows executing `SHOW`, `DESCRIBE`, `USE`, and `EXISTS` queries according to the following hierarchy of privileges:
|
Разрешает выполнять запросы `SHOW`, `DESCRIBE`, `USE` и `EXISTS` в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
- `SHOW`. Level: `GROUP`
|
- `SHOW`. Уровень: `GROUP`
|
||||||
- `SHOW DATABASES`. Level: `DATABASE`. Allows to execute `SHOW DATABASES`, `SHOW CREATE DATABASE`, `USE <database>` queries.
|
- `SHOW DATABASES`. Уровень: `DATABASE`. Разрешает выполнять запросы `SHOW DATABASES`, `SHOW CREATE DATABASE`, `USE <database>`.
|
||||||
- `SHOW TABLES`. Level: `TABLE`. Allows to execute `SHOW TABLES`, `EXISTS <table>`, `CHECK <table>` queries.
|
- `SHOW TABLES`. Уровень: `TABLE`. Разрешает выполнять запросы `SHOW TABLES`, `EXISTS <table>`, `CHECK <table>`.
|
||||||
- `SHOW COLUMNS`. Level: `COLUMN`. Allows to execute `SHOW CREATE TABLE`, `DESCRIBE` queries.
|
- `SHOW COLUMNS`. Уровень: `COLUMN`. Разрешает выполнять запросы `SHOW CREATE TABLE`, `DESCRIBE`.
|
||||||
- `SHOW DICTIONARIES`. Level: `DICTIONARY`. Allows to execute `SHOW DICTIONARIES`, `SHOW CREATE DICTIONARY`, `EXISTS <dictionary>` queries.
|
- `SHOW DICTIONARIES`. Уровень: `DICTIONARY`. Разрешает выполнять запросы `SHOW DICTIONARIES`, `SHOW CREATE DICTIONARY`, `EXISTS <dictionary>`.
|
||||||
|
|
||||||
**Notes**
|
**Дополнительно**
|
||||||
|
|
||||||
|
У пользователя есть привилегия `SHOW`, если ему присвоена любая другая привилегия по отношению к определенной таблице, словарю или базе данных.
|
||||||
|
|
||||||
A user has the `SHOW` privilege if it has any other privilege concerning the specified table, dictionary or database.
|
|
||||||
|
|
||||||
### KILL QUERY {#grant-kill-query}
|
### KILL QUERY {#grant-kill-query}
|
||||||
|
|
||||||
Allows executing [KILL](../../sql-reference/statements/misc.md#kill-query-statement) queries according to the following hierarchy of privileges:
|
Разрешает выполнять запросы [KILL](misc.md#kill-query-statement) в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
Privilege level: `GLOBAL`.
|
Уровень: `GLOBAL`.
|
||||||
|
|
||||||
**Notes**
|
**Дополнительно**
|
||||||
|
|
||||||
|
`KILL QUERY` позволяет пользователю останавливать запросы других пользователей.
|
||||||
|
|
||||||
`KILL QUERY` privilege allows one user to kill queries of other users.
|
|
||||||
|
|
||||||
### ACCESS MANAGEMENT {#grant-access-management}
|
### ACCESS MANAGEMENT {#grant-access-management}
|
||||||
|
|
||||||
Allows a user to execute queries that manage users, roles and row policies.
|
Разрешает пользователю выполнять запросы на управление пользователями, ролями и политиками доступа к строкам.
|
||||||
|
|
||||||
- `ACCESS MANAGEMENT`. Level: `GROUP`
|
- `ACCESS MANAGEMENT`. Уровень: `GROUP`
|
||||||
- `CREATE USER`. Level: `GLOBAL`
|
- `CREATE USER`. Уровень: `GLOBAL`
|
||||||
- `ALTER USER`. Level: `GLOBAL`
|
- `ALTER USER`. Уровень: `GLOBAL`
|
||||||
- `DROP USER`. Level: `GLOBAL`
|
- `DROP USER`. Уровень: `GLOBAL`
|
||||||
- `CREATE ROLE`. Level: `GLOBAL`
|
- `CREATE ROLE`. Уровень: `GLOBAL`
|
||||||
- `ALTER ROLE`. Level: `GLOBAL`
|
- `ALTER ROLE`. Уровень: `GLOBAL`
|
||||||
- `DROP ROLE`. Level: `GLOBAL`
|
- `DROP ROLE`. Уровень: `GLOBAL`
|
||||||
- `ROLE ADMIN`. Level: `GLOBAL`
|
- `ROLE ADMIN`. Уровень: `GLOBAL`
|
||||||
- `CREATE ROW POLICY`. Level: `GLOBAL`. Aliases: `CREATE POLICY`
|
- `CREATE ROW POLICY`. Уровень: `GLOBAL`. Алиасы: `CREATE POLICY`
|
||||||
- `ALTER ROW POLICY`. Level: `GLOBAL`. Aliases: `ALTER POLICY`
|
- `ALTER ROW POLICY`. Уровень: `GLOBAL`. Алиасы: `ALTER POLICY`
|
||||||
- `DROP ROW POLICY`. Level: `GLOBAL`. Aliases: `DROP POLICY`
|
- `DROP ROW POLICY`. Уровень: `GLOBAL`. Алиасы: `DROP POLICY`
|
||||||
- `CREATE QUOTA`. Level: `GLOBAL`
|
- `CREATE QUOTA`. Уровень: `GLOBAL`
|
||||||
- `ALTER QUOTA`. Level: `GLOBAL`
|
- `ALTER QUOTA`. Уровень: `GLOBAL`
|
||||||
- `DROP QUOTA`. Level: `GLOBAL`
|
- `DROP QUOTA`. Уровень: `GLOBAL`
|
||||||
- `CREATE SETTINGS PROFILE`. Level: `GLOBAL`. Aliases: `CREATE PROFILE`
|
- `CREATE SETTINGS PROFILE`. Уровень: `GLOBAL`. Алиасы: `CREATE PROFILE`
|
||||||
- `ALTER SETTINGS PROFILE`. Level: `GLOBAL`. Aliases: `ALTER PROFILE`
|
- `ALTER SETTINGS PROFILE`. Уровень: `GLOBAL`. Алиасы: `ALTER PROFILE`
|
||||||
- `DROP SETTINGS PROFILE`. Level: `GLOBAL`. Aliases: `DROP PROFILE`
|
- `DROP SETTINGS PROFILE`. Уровень: `GLOBAL`. Алиасы: `DROP PROFILE`
|
||||||
- `SHOW ACCESS`. Level: `GROUP`
|
- `SHOW ACCESS`. Уровень: `GROUP`
|
||||||
- `SHOW_USERS`. Level: `GLOBAL`. Aliases: `SHOW CREATE USER`
|
- `SHOW_USERS`. Уровень: `GLOBAL`. Алиасы: `SHOW CREATE USER`
|
||||||
- `SHOW_ROLES`. Level: `GLOBAL`. Aliases: `SHOW CREATE ROLE`
|
- `SHOW_ROLES`. Уровень: `GLOBAL`. Алиасы: `SHOW CREATE ROLE`
|
||||||
- `SHOW_ROW_POLICIES`. Level: `GLOBAL`. Aliases: `SHOW POLICIES`, `SHOW CREATE ROW POLICY`, `SHOW CREATE POLICY`
|
- `SHOW_ROW_POLICIES`. Уровень: `GLOBAL`. Алиасы: `SHOW POLICIES`, `SHOW CREATE ROW POLICY`, `SHOW CREATE POLICY`
|
||||||
- `SHOW_QUOTAS`. Level: `GLOBAL`. Aliases: `SHOW CREATE QUOTA`
|
- `SHOW_QUOTAS`. Уровень: `GLOBAL`. Алиасы: `SHOW CREATE QUOTA`
|
||||||
- `SHOW_SETTINGS_PROFILES`. Level: `GLOBAL`. Aliases: `SHOW PROFILES`, `SHOW CREATE SETTINGS PROFILE`, `SHOW CREATE PROFILE`
|
- `SHOW_SETTINGS_PROFILES`. Уровень: `GLOBAL`. Алиасы: `SHOW PROFILES`, `SHOW CREATE SETTINGS PROFILE`, `SHOW CREATE PROFILE`
|
||||||
|
|
||||||
The `ROLE ADMIN` privilege allows a user to assign and revoke any roles including those which are not assigned to the user with the admin option.
|
Привилегия `ROLE ADMIN` разрешает пользователю назначать и отзывать любые роли, включая те, которые не назначены пользователю с опцией администратора.
|
||||||
|
|
||||||
### SYSTEM {#grant-system}
|
### SYSTEM {#grant-system}
|
||||||
|
|
||||||
Allows a user to execute [SYSTEM](../../sql-reference/statements/system.md) queries according to the following hierarchy of privileges.
|
Разрешает выполнять запросы [SYSTEM](system.md) в соответствии со следующей иерархией привилегий:
|
||||||
|
|
||||||
- `SYSTEM`. Level: `GROUP`
|
- `SYSTEM`. Уровень: `GROUP`
|
||||||
- `SYSTEM SHUTDOWN`. Level: `GLOBAL`. Aliases: `SYSTEM KILL`, `SHUTDOWN`
|
- `SYSTEM SHUTDOWN`. Уровень: `GLOBAL`. Алиасы: `SYSTEM KILL`, `SHUTDOWN`
|
||||||
- `SYSTEM DROP CACHE`. Aliases: `DROP CACHE`
|
- `SYSTEM DROP CACHE`. Алиасы: `DROP CACHE`
|
||||||
- `SYSTEM DROP DNS CACHE`. Level: `GLOBAL`. Aliases: `SYSTEM DROP DNS`, `DROP DNS CACHE`, `DROP DNS`
|
- `SYSTEM DROP DNS CACHE`. Уровень: `GLOBAL`. Алиасы: `SYSTEM DROP DNS`, `DROP DNS CACHE`, `DROP DNS`
|
||||||
- `SYSTEM DROP MARK CACHE`. Level: `GLOBAL`. Aliases: `SYSTEM DROP MARK`, `DROP MARK CACHE`, `DROP MARKS`
|
- `SYSTEM DROP MARK CACHE`. Уровень: `GLOBAL`. Алиасы: `SYSTEM DROP MARK`, `DROP MARK CACHE`, `DROP MARKS`
|
||||||
- `SYSTEM DROP UNCOMPRESSED CACHE`. Level: `GLOBAL`. Aliases: `SYSTEM DROP UNCOMPRESSED`, `DROP UNCOMPRESSED CACHE`, `DROP UNCOMPRESSED`
|
- `SYSTEM DROP UNCOMPRESSED CACHE`. Уровень: `GLOBAL`. Алиасы: `SYSTEM DROP UNCOMPRESSED`, `DROP UNCOMPRESSED CACHE`, `DROP UNCOMPRESSED`
|
||||||
- `SYSTEM RELOAD`. Level: `GROUP`
|
- `SYSTEM RELOAD`. Уровень: `GROUP`
|
||||||
- `SYSTEM RELOAD CONFIG`. Level: `GLOBAL`. Aliases: `RELOAD CONFIG`
|
- `SYSTEM RELOAD CONFIG`. Уровень: `GLOBAL`. Алиасы: `RELOAD CONFIG`
|
||||||
- `SYSTEM RELOAD DICTIONARY`. Level: `GLOBAL`. Aliases: `SYSTEM RELOAD DICTIONARIES`, `RELOAD DICTIONARY`, `RELOAD DICTIONARIES`
|
- `SYSTEM RELOAD DICTIONARY`. Уровень: `GLOBAL`. Алиасы: `SYSTEM RELOAD DICTIONARIES`, `RELOAD DICTIONARY`, `RELOAD DICTIONARIES`
|
||||||
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`. Level: `GLOBAL`. Aliases: R`ELOAD EMBEDDED DICTIONARIES`
|
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`. Уровень: `GLOBAL`. Алиасы: `RELOAD EMBEDDED DICTIONARIES`
|
||||||
- `SYSTEM MERGES`. Level: `TABLE`. Aliases: `SYSTEM STOP MERGES`, `SYSTEM START MERGES`, `STOP MERGES`, `START MERGES`
|
- `SYSTEM MERGES`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP MERGES`, `SYSTEM START MERGES`, `STOP MERGES`, `START MERGES`
|
||||||
- `SYSTEM TTL MERGES`. Level: `TABLE`. Aliases: `SYSTEM STOP TTL MERGES`, `SYSTEM START TTL MERGES`, `STOP TTL MERGES`, `START TTL MERGES`
|
- `SYSTEM TTL MERGES`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP TTL MERGES`, `SYSTEM START TTL MERGES`, `STOP TTL MERGES`, `START TTL MERGES`
|
||||||
- `SYSTEM FETCHES`. Level: `TABLE`. Aliases: `SYSTEM STOP FETCHES`, `SYSTEM START FETCHES`, `STOP FETCHES`, `START FETCHES`
|
- `SYSTEM FETCHES`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP FETCHES`, `SYSTEM START FETCHES`, `STOP FETCHES`, `START FETCHES`
|
||||||
- `SYSTEM MOVES`. Level: `TABLE`. Aliases: `SYSTEM STOP MOVES`, `SYSTEM START MOVES`, `STOP MOVES`, `START MOVES`
|
- `SYSTEM MOVES`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP MOVES`, `SYSTEM START MOVES`, `STOP MOVES`, `START MOVES`
|
||||||
- `SYSTEM SENDS`. Level: `GROUP`. Aliases: `SYSTEM STOP SENDS`, `SYSTEM START SENDS`, `STOP SENDS`, `START SENDS`
|
- `SYSTEM SENDS`. Уровень: `GROUP`. Алиасы: `SYSTEM STOP SENDS`, `SYSTEM START SENDS`, `STOP SENDS`, `START SENDS`
|
||||||
- `SYSTEM DISTRIBUTED SENDS`. Level: `TABLE`. Aliases: `SYSTEM STOP DISTRIBUTED SENDS`, `SYSTEM START DISTRIBUTED SENDS`, `STOP DISTRIBUTED SENDS`, `START DISTRIBUTED SENDS`
|
- `SYSTEM DISTRIBUTED SENDS`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP DISTRIBUTED SENDS`, `SYSTEM START DISTRIBUTED SENDS`, `STOP DISTRIBUTED SENDS`, `START DISTRIBUTED SENDS`
|
||||||
- `SYSTEM REPLICATED SENDS`. Level: `TABLE`. Aliases: `SYSTEM STOP REPLICATED SENDS`, `SYSTEM START REPLICATED SENDS`, `STOP REPLICATED SENDS`, `START REPLICATED SENDS`
|
- `SYSTEM REPLICATED SENDS`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP REPLICATED SENDS`, `SYSTEM START REPLICATED SENDS`, `STOP REPLICATED SENDS`, `START REPLICATED SENDS`
|
||||||
- `SYSTEM REPLICATION QUEUES`. Level: `TABLE`. Aliases: `SYSTEM STOP REPLICATION QUEUES`, `SYSTEM START REPLICATION QUEUES`, `STOP REPLICATION QUEUES`, `START REPLICATION QUEUES`
|
- `SYSTEM REPLICATION QUEUES`. Уровень: `TABLE`. Алиасы: `SYSTEM STOP REPLICATION QUEUES`, `SYSTEM START REPLICATION QUEUES`, `STOP REPLICATION QUEUES`, `START REPLICATION QUEUES`
|
||||||
- `SYSTEM SYNC REPLICA`. Level: `TABLE`. Aliases: `SYNC REPLICA`
|
- `SYSTEM SYNC REPLICA`. Уровень: `TABLE`. Алиасы: `SYNC REPLICA`
|
||||||
- `SYSTEM RESTART REPLICA`. Level: `TABLE`. Aliases: `RESTART REPLICA`
|
- `SYSTEM RESTART REPLICA`. Уровень: `TABLE`. Алиасы: `RESTART REPLICA`
|
||||||
- `SYSTEM FLUSH`. Level: `GROUP`
|
- `SYSTEM FLUSH`. Уровень: `GROUP`
|
||||||
- `SYSTEM FLUSH DISTRIBUTED`. Level: `TABLE`. Aliases: `FLUSH DISTRIBUTED`
|
- `SYSTEM FLUSH DISTRIBUTED`. Уровень: `TABLE`. Алиасы: `FLUSH DISTRIBUTED`
|
||||||
- `SYSTEM FLUSH LOGS`. Level: `GLOBAL`. Aliases: `FLUSH LOGS`
|
- `SYSTEM FLUSH LOGS`. Уровень: `GLOBAL`. Алиасы: `FLUSH LOGS`
|
||||||
|
|
||||||
|
Привилегия `SYSTEM RELOAD EMBEDDED DICTIONARIES` имплицитно присваивается привилегией `SYSTEM RELOAD DICTIONARY ON *.*`.
|
||||||
|
|
||||||
The `SYSTEM RELOAD EMBEDDED DICTIONARIES` privilege implicitly granted by the `SYSTEM RELOAD DICTIONARY ON *.*` privilege.
|
|
||||||
|
|
||||||
### INTROSPECTION {#grant-introspection}
|
### INTROSPECTION {#grant-introspection}
|
||||||
|
|
||||||
Allows using [introspection](../../operations/optimizing-performance/sampling-query-profiler.md) functions.
|
Разрешает использовать функции [интроспекции](../../operations/optimizing-performance/sampling-query-profiler.md).
|
||||||
|
|
||||||
|
- `INTROSPECTION`. Уровень: `GROUP`. Алиасы: `INTROSPECTION FUNCTIONS`
|
||||||
|
- `addressToLine`. Уровень: `GLOBAL`
|
||||||
|
- `addressToSymbol`. Уровень: `GLOBAL`
|
||||||
|
- `demangle`. Уровень: `GLOBAL`
|
||||||
|
|
||||||
- `INTROSPECTION`. Level: `GROUP`. Aliases: `INTROSPECTION FUNCTIONS`
|
|
||||||
- `addressToLine`. Level: `GLOBAL`
|
|
||||||
- `addressToSymbol`. Level: `GLOBAL`
|
|
||||||
- `demangle`. Level: `GLOBAL`
|
|
||||||
|
|
||||||
### SOURCES {#grant-sources}
|
### SOURCES {#grant-sources}
|
||||||
|
|
||||||
Allows using external data sources. Applies to [table engines](../../engines/table-engines/index.md) and [table functions](../../sql-reference/table-functions/index.md#table-functions).
|
Разрешает использовать внешние источники данных. Применяется к [движкам таблиц](../../engines/table-engines/index.md) и [табличным функциям](../table-functions/index.md#table-functions).
|
||||||
|
|
||||||
- `SOURCES`. Level: `GROUP`
|
- `SOURCES`. Уровень: `GROUP`
|
||||||
- `FILE`. Level: `GLOBAL`
|
- `FILE`. Уровень: `GLOBAL`
|
||||||
- `URL`. Level: `GLOBAL`
|
- `URL`. Уровень: `GLOBAL`
|
||||||
- `REMOTE`. Level: `GLOBAL`
|
- `REMOTE`. Уровень: `GLOBAL`
|
||||||
- `MYSQL`. Level: `GLOBAL`
|
- `YSQL`. Уровень: `GLOBAL`
|
||||||
- `ODBC`. Level: `GLOBAL`
|
- `ODBC`. Уровень: `GLOBAL`
|
||||||
- `JDBC`. Level: `GLOBAL`
|
- `JDBC`. Уровень: `GLOBAL`
|
||||||
- `HDFS`. Level: `GLOBAL`
|
- `HDFS`. Уровень: `GLOBAL`
|
||||||
- `S3`. Level: `GLOBAL`
|
- `S3`. Уровень: `GLOBAL`
|
||||||
|
|
||||||
The `SOURCES` privilege enables use of all the sources. Also you can grant a privilege for each source individually. To use sources, you need additional privileges.
|
Привилегия `SOURCES` разрешает использование всех источников. Также вы можете присвоить привилегию для каждого источника отдельно. Для использования источников необходимы дополнительные привилегии.
|
||||||
|
|
||||||
Examples:
|
Примеры:
|
||||||
|
|
||||||
- To create a table with the [MySQL table engine](../../engines/table-engines/integrations/mysql.md), you need `CREATE TABLE (ON db.table_name)` and `MYSQL` privileges.
|
- Чтобы создать таблицу с [движком MySQL](../../engines/table-engines/integrations/mysql.md), необходимы привилегии `CREATE TABLE (ON db.table_name)` и `MYSQL`.
|
||||||
- To use the [mysql table function](../../sql-reference/table-functions/mysql.md), you need `CREATE TEMPORARY TABLE` and `MYSQL` privileges.
|
- Чтобы использовать [табличную функцию mysql](../table-functions/mysql.md), необходимы привилегии `CREATE TEMPORARY TABLE` и `MYSQL`.
|
||||||
|
|
||||||
### dictGet {#grant-dictget}
|
### dictGet {#grant-dictget}
|
||||||
|
|
||||||
- `dictGet`. Aliases: `dictHas`, `dictGetHierarchy`, `dictIsIn`
|
- `dictGet`. Алиасы: `dictHas`, `dictGetHierarchy`, `dictIsIn`
|
||||||
|
|
||||||
Allows a user to execute [dictGet](../../sql-reference/functions/ext-dict-functions.md#dictget), [dictHas](../../sql-reference/functions/ext-dict-functions.md#dicthas), [dictGetHierarchy](../../sql-reference/functions/ext-dict-functions.md#dictgethierarchy), [dictIsIn](../../sql-reference/functions/ext-dict-functions.md#dictisin) functions.
|
Разрешает вызывать функции [dictGet](../functions/ext-dict-functions.md#dictget), [dictHas](../functions/ext-dict-functions.md#dicthas), [dictGetHierarchy](../functions/ext-dict-functions.md#dictgethierarchy), [dictIsIn](../functions/ext-dict-functions.md#dictisin).
|
||||||
|
|
||||||
Privilege level: `DICTIONARY`.
|
Уровень: `DICTIONARY`.
|
||||||
|
|
||||||
**Examples**
|
**Примеры**
|
||||||
|
|
||||||
- `GRANT dictGet ON mydb.mydictionary TO john`
|
- `GRANT dictGet ON mydb.mydictionary TO john`
|
||||||
- `GRANT dictGet ON mydictionary TO john`
|
- `GRANT dictGet ON mydictionary TO john`
|
||||||
|
|
||||||
### ALL {#grant-all}
|
### ALL {#grant-all}
|
||||||
|
|
||||||
Grants all the privileges on regulated entity to a user account or a role.
|
Присваивает пользователю или роли все привилегии на объект с регулируемым доступом.
|
||||||
|
|
||||||
|
|
||||||
### NONE {#grant-none}
|
### NONE {#grant-none}
|
||||||
|
|
||||||
Doesn’t grant any privileges.
|
Не присваивает никаких привилегий.
|
||||||
|
|
||||||
|
|
||||||
### ADMIN OPTION {#admin-option-privilege}
|
### ADMIN OPTION {#admin-option-privilege}
|
||||||
|
|
||||||
The `ADMIN OPTION` privilege allows a user to grant their role to another user.
|
Привилегия `ADMIN OPTION` разрешает пользователю назначать свои роли другому пользователю.
|
||||||
|
|
||||||
[Original article](https://clickhouse.tech/docs/en/query_language/grant/) <!--hide-->
|
[Оригинальная статья](https://clickhouse.tech/docs/ru/sql-reference/statements/grant/) <!--hide-->
|
||||||
|
@ -153,11 +153,11 @@ ORDER BY
|
|||||||
```text
|
```text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
│ 0000-00-00 │ 1970-01-03 │ │
|
│ 1970-01-01 │ 1970-01-03 │ │
|
||||||
│ 0000-00-00 │ 1970-01-04 │ │
|
│ 1970-01-01 │ 1970-01-04 │ │
|
||||||
│ 1970-02-10 │ 1970-01-05 │ original │
|
│ 1970-02-10 │ 1970-01-05 │ original │
|
||||||
│ 0000-00-00 │ 1970-01-06 │ │
|
│ 1970-01-01 │ 1970-01-06 │ │
|
||||||
│ 0000-00-00 │ 1970-01-07 │ │
|
│ 1970-01-01 │ 1970-01-07 │ │
|
||||||
│ 1970-03-12 │ 1970-01-08 │ original │
|
│ 1970-03-12 │ 1970-01-08 │ original │
|
||||||
└────────────┴────────────┴──────────┘
|
└────────────┴────────────┴──────────┘
|
||||||
```
|
```
|
||||||
@ -181,17 +181,17 @@ ORDER BY
|
|||||||
```text
|
```text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
│ 1970-01-16 │ 0000-00-00 │ │
|
│ 1970-01-16 │ 1970-01-01 │ │
|
||||||
│ 1970-01-21 │ 0000-00-00 │ │
|
│ 1970-01-21 │ 1970-01-01 │ │
|
||||||
│ 1970-01-26 │ 0000-00-00 │ │
|
│ 1970-01-26 │ 1970-01-01 │ │
|
||||||
│ 1970-01-31 │ 0000-00-00 │ │
|
│ 1970-01-31 │ 1970-01-01 │ │
|
||||||
│ 1970-02-05 │ 0000-00-00 │ │
|
│ 1970-02-05 │ 1970-01-01 │ │
|
||||||
│ 1970-02-10 │ 1970-01-05 │ original │
|
│ 1970-02-10 │ 1970-01-05 │ original │
|
||||||
│ 1970-02-15 │ 0000-00-00 │ │
|
│ 1970-02-15 │ 1970-01-01 │ │
|
||||||
│ 1970-02-20 │ 0000-00-00 │ │
|
│ 1970-02-20 │ 1970-01-01 │ │
|
||||||
│ 1970-02-25 │ 0000-00-00 │ │
|
│ 1970-02-25 │ 1970-01-01 │ │
|
||||||
│ 1970-03-02 │ 0000-00-00 │ │
|
│ 1970-03-02 │ 1970-01-01 │ │
|
||||||
│ 1970-03-07 │ 0000-00-00 │ │
|
│ 1970-03-07 │ 1970-01-01 │ │
|
||||||
│ 1970-03-12 │ 1970-01-08 │ original │
|
│ 1970-03-12 │ 1970-01-08 │ original │
|
||||||
└────────────┴────────────┴──────────┘
|
└────────────┴────────────┴──────────┘
|
||||||
```
|
```
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
toc_folder_title: Changelog
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/ru/whats-new/changelog/index.md
Symbolic link
1
docs/ru/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
78
docs/tools/purge_cache_for_changed_files.py
Normal file
78
docs/tools/purge_cache_for_changed_files.py
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import requests
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
|
FNAME_START = "+++"
|
||||||
|
|
||||||
|
CLOUDFLARE_URL = "https://api.cloudflare.com/client/v4/zones/4fc6fb1d46e87851605aa7fa69ca6fe0/purge_cache"
|
||||||
|
|
||||||
|
# we have changes in revision and commit sha on all pages
|
||||||
|
# so such changes have to be ignored
|
||||||
|
MIN_CHANGED_WORDS = 4
|
||||||
|
|
||||||
|
|
||||||
|
def collect_changed_files():
|
||||||
|
proc = subprocess.Popen("git diff HEAD~1 --word-diff=porcelain | grep -e '^+[^+]\|^\-[^\-]\|^\+\+\+'", stdout=subprocess.PIPE, shell=True)
|
||||||
|
changed_files = []
|
||||||
|
current_file_name = ""
|
||||||
|
changed_words = []
|
||||||
|
while True:
|
||||||
|
line = proc.stdout.readline().decode("utf-8").strip()
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
if FNAME_START in line:
|
||||||
|
if changed_words:
|
||||||
|
if len(changed_words) > MIN_CHANGED_WORDS:
|
||||||
|
changed_files.append(current_file_name)
|
||||||
|
changed_words = []
|
||||||
|
current_file_name = line[6:]
|
||||||
|
else:
|
||||||
|
changed_words.append(line)
|
||||||
|
return changed_files
|
||||||
|
|
||||||
|
|
||||||
|
def filter_and_transform_changed_files(changed_files, base_domain):
|
||||||
|
result = []
|
||||||
|
for f in changed_files:
|
||||||
|
if f.endswith(".html"):
|
||||||
|
result.append(base_domain + f.replace("index.html", ""))
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def convert_to_dicts(changed_files, batch_size):
|
||||||
|
result = []
|
||||||
|
current_batch = {"files": []}
|
||||||
|
for f in changed_files:
|
||||||
|
if len(current_batch["files"]) >= batch_size:
|
||||||
|
result.append(current_batch)
|
||||||
|
current_batch = {"files": []}
|
||||||
|
current_batch["files"].append(f)
|
||||||
|
|
||||||
|
if current_batch["files"]:
|
||||||
|
result.append(current_batch)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def post_data(prepared_batches, token):
|
||||||
|
headers = {"Authorization": "Bearer {}".format(token)}
|
||||||
|
for batch in prepared_batches:
|
||||||
|
print("Pugring cache for", ", ".join(batch["files"]))
|
||||||
|
response = requests.post(CLOUDFLARE_URL, json=batch, headers=headers)
|
||||||
|
response.raise_for_status()
|
||||||
|
time.sleep(3)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
token = os.getenv("CLOUDFLARE_TOKEN")
|
||||||
|
if not token:
|
||||||
|
raise Exception("Env variable CLOUDFLARE_TOKEN is empty")
|
||||||
|
base_domain = os.getenv("BASE_DOMAIN", "https://content.clickhouse.tech/")
|
||||||
|
changed_files = collect_changed_files()
|
||||||
|
print("Found", len(changed_files), "changed files")
|
||||||
|
filtered_files = filter_and_transform_changed_files(changed_files, base_domain)
|
||||||
|
print("Files rest after filtering", len(filtered_files))
|
||||||
|
prepared_batches = convert_to_dicts(filtered_files, 25)
|
||||||
|
post_data(prepared_batches, token)
|
@ -10,13 +10,6 @@ GIT_PROD_URI="git@github.com:ClickHouse/clickhouse-website-content.git"
|
|||||||
EXTRA_BUILD_ARGS="${EXTRA_BUILD_ARGS:---enable-stable-releases --minify --verbose}"
|
EXTRA_BUILD_ARGS="${EXTRA_BUILD_ARGS:---enable-stable-releases --minify --verbose}"
|
||||||
HISTORY_SIZE="${HISTORY_SIZE:-5}"
|
HISTORY_SIZE="${HISTORY_SIZE:-5}"
|
||||||
|
|
||||||
if [[ -z "$1" ]]
|
|
||||||
then
|
|
||||||
TAG=$(head -c 8 /dev/urandom | xxd -p)
|
|
||||||
else
|
|
||||||
TAG="$1"
|
|
||||||
fi
|
|
||||||
DOCKER_HASH="$2"
|
|
||||||
if [[ -z "$1" ]]
|
if [[ -z "$1" ]]
|
||||||
then
|
then
|
||||||
source "${BASE_DIR}/venv/bin/activate"
|
source "${BASE_DIR}/venv/bin/activate"
|
||||||
@ -44,27 +37,6 @@ then
|
|||||||
if [[ ! -z "${CLOUDFLARE_TOKEN}" ]]
|
if [[ ! -z "${CLOUDFLARE_TOKEN}" ]]
|
||||||
then
|
then
|
||||||
sleep 1m
|
sleep 1m
|
||||||
git diff --stat="9999,9999" --diff-filter=M HEAD~1 | grep '|' | awk '$1 ~ /\.html$/ { if ($3>6) { url="https://content.clickhouse.tech/"$1; sub(/index.html/, "", url); print "\""url"\""; }}' | split -l 25 /dev/stdin PURGE
|
python3 "${BASE_DIR}/purge_cache_for_changed_files.py"
|
||||||
for FILENAME in $(ls PURGE*)
|
|
||||||
do
|
|
||||||
POST_DATA=$(cat "${FILENAME}" | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}' | awk '{print "{\"files\":["$0"]}";}')
|
|
||||||
sleep 3s
|
|
||||||
set +x
|
|
||||||
curl -X POST "https://api.cloudflare.com/client/v4/zones/4fc6fb1d46e87851605aa7fa69ca6fe0/purge_cache" -H "Authorization: Bearer ${CLOUDFLARE_TOKEN}" -H "Content-Type:application/json" --data "${POST_DATA}"
|
|
||||||
set -x
|
|
||||||
rm "${FILENAME}"
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
cd "${BUILD_DIR}"
|
|
||||||
DOCKER_HASH=$(head -c 16 < /dev/urandom | xxd -p)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
QLOUD_ENDPOINT="https://platform.yandex-team.ru/api/v1"
|
|
||||||
QLOUD_PROJECT="clickhouse.clickhouse-website"
|
|
||||||
if [[ -z "$1" ]]
|
|
||||||
then
|
|
||||||
QLOUD_ENV="${QLOUD_PROJECT}.test"
|
|
||||||
else
|
|
||||||
QLOUD_ENV="${QLOUD_PROJECT}.prod"
|
|
||||||
fi
|
|
||||||
echo ">>> Successfully deployed ${TAG} ${DOCKER_HASH} to ${QLOUD_ENV} <<<"
|
|
||||||
|
@ -72,7 +72,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -708,7 +708,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -794,9 +794,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -8,7 +8,6 @@ toc_title: Tarihli
|
|||||||
# Tarihli {#date}
|
# Tarihli {#date}
|
||||||
|
|
||||||
Tarihli. 1970-01-01 (imzasız) gün sayısı olarak iki bayt olarak saklanır. Unix döneminin başlangıcından hemen sonra, derleme aşamasında bir sabit tarafından tanımlanan üst eşiğe kadar değerlerin depolanmasına izin verir (şu anda, bu 2106 yılına kadar, ancak tam olarak desteklenen son yıl 2105'tir).
|
Tarihli. 1970-01-01 (imzasız) gün sayısı olarak iki bayt olarak saklanır. Unix döneminin başlangıcından hemen sonra, derleme aşamasında bir sabit tarafından tanımlanan üst eşiğe kadar değerlerin depolanmasına izin verir (şu anda, bu 2106 yılına kadar, ancak tam olarak desteklenen son yıl 2105'tir).
|
||||||
Minimum değer 0000-00-00 olarak çıktıdır.
|
|
||||||
|
|
||||||
Tarih değeri saat dilimi olmadan depolanır.
|
Tarih değeri saat dilimi olmadan depolanır.
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Sonra başka maddeler olabilir `ENGINE` sorguda yan tümcesi. Açıklamalarda ta
|
|||||||
Sütun açıklaması, aşağıdaki yollardan biriyle varsayılan değer için bir ifade belirtebilir:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
Sütun açıklaması, aşağıdaki yollardan biriyle varsayılan değer için bir ifade belirtebilir:`DEFAULT expr`, `MATERIALIZED expr`, `ALIAS expr`.
|
||||||
Örnek: `URLDomain String DEFAULT domain(URL)`.
|
Örnek: `URLDomain String DEFAULT domain(URL)`.
|
||||||
|
|
||||||
Varsayılan değer için bir ifade tanımlanmamışsa, varsayılan değerler sayılar için sıfırlar, dizeler için boş dizeler, diziler için boş diziler ve `0000-00-00` tarihler için veya `0000-00-00 00:00:00` zamanla tarihler için. Boş alanlar desteklenmez.
|
Varsayılan değer için bir ifade tanımlanmamışsa, varsayılan değerler sayılar için sıfırlar, dizeler için boş dizeler, diziler için boş diziler ve `1970-01-01` tarihler için veya zero unix timestamp zamanla tarihler için. Boş alanlar desteklenmez.
|
||||||
|
|
||||||
Varsayılan ifade tanımlanmışsa, sütun türü isteğe bağlıdır. Açıkça tanımlanmış bir tür yoksa, varsayılan ifade türü kullanılır. Örnek: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ türü için kullanılacak ‘EventDate’ sütun.
|
Varsayılan ifade tanımlanmışsa, sütun türü isteğe bağlıdır. Açıkça tanımlanmış bir tür yoksa, varsayılan ifade türü kullanılır. Örnek: `EventDate DEFAULT toDate(EventTime)` – the ‘Date’ türü için kullanılacak ‘EventDate’ sütun.
|
||||||
|
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_priority: 79
|
|
||||||
toc_title: '2017'
|
|
||||||
---
|
|
||||||
|
|
||||||
### ClickHouse Sürüm 1.1.54327, 2017-12-21 {#clickhouse-release-1-1-54327-2017-12-21}
|
|
||||||
|
|
||||||
Bu sürüm önceki sürüm 1.1.54318 için hata düzeltmeleri içerir:
|
|
||||||
|
|
||||||
- Veri kaybına yol açabilir çoğaltma Olası yarış koşulu ile Sabit hata. Bu sorun sürümleri 1.1.54310 ve 1.1.54318 etkiler. Bu sürümlerden birini çoğaltılmış tablolarla kullanırsanız, güncelleştirme önerilir. Bu sorun, aşağıdaki gibi uyarı iletilerindeki günlüklerde gösterilir `Part ... from own log doesn't exist.` Bu iletileri günlüklerde görmeseniz bile sorun geçerlidir.
|
|
||||||
|
|
||||||
### ClickHouse Sürümü 1.1.54318, 2017-11-30 {#clickhouse-release-1-1-54318-2017-11-30}
|
|
||||||
|
|
||||||
Bu sürüm önceki sürüm 1.1.54310 için hata düzeltmeleri içerir:
|
|
||||||
|
|
||||||
- SummingMergeTree motorunda birleştirmeler sırasında hatalı satır silme işlemleri düzeltildi
|
|
||||||
- Unreplicated MergeTree motorlarında bir bellek sızıntısı düzeltildi
|
|
||||||
- MergeTree motorlarında sık sık eklerle sabit performans düşüşü
|
|
||||||
- Çoğaltma kuyruğunun çalışmayı durdurmasına neden olan bir sorun giderildi
|
|
||||||
- Sunucu günlüklerinin sabit rotasyonu ve arşivlenmesi
|
|
||||||
|
|
||||||
### ClickHouse Sürümü 1.1.54310, 2017-11-01 {#clickhouse-release-1-1-54310-2017-11-01}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features}
|
|
||||||
|
|
||||||
- Tablo motorları MergeTree ailesi için özel bölümleme anahtarı.
|
|
||||||
- [Kafka](https://clickhouse.tech/docs/en/operations/table_engines/kafka/) masa motoru.
|
|
||||||
- Yükleme için destek eklendi [CatBoost](https://catboost.yandex/) modelleri ve ClickHouse saklanan verilere uygulayarak.
|
|
||||||
- UTC olmayan tamsayı uzaklıklar ile saat dilimleri için destek eklendi.
|
|
||||||
- Zaman aralıklarıyla aritmetik işlemler için destek eklendi.
|
|
||||||
- Tarih ve DateTime türleri için değer aralığı 2105 yılına genişletilir.
|
|
||||||
- Add theed the `CREATE MATERIALIZED VIEW x TO y` sorgu (materyalleştirilmiş bir görünümün verilerini depolamak için varolan bir tabloyu belirtir).
|
|
||||||
- Add theed the `ATTACH TABLE` argüman olmadan sorgu.
|
|
||||||
- Bir SummingMergeTree tablosunda-Map biten adları ile iç içe sütunlar için işleme mantığı için ayıklandı sumMap toplama işlevi. Şimdi bu tür sütunları açıkça belirtebilirsiniz.
|
|
||||||
- IP trie sözlüğünün maksimum boyutu 128M girişlerine yükseltilir.
|
|
||||||
- GetSizeOfEnumType işlevi eklendi.
|
|
||||||
- SumWithOverflow toplama işlevi eklendi.
|
|
||||||
- Cap'n Proto giriş biçimi için destek eklendi.
|
|
||||||
- Artık zstd algoritmasını kullanırken sıkıştırma seviyesini özelleştirebilirsiniz.
|
|
||||||
|
|
||||||
#### Geriye Dönük Uyumsuz Değişiklikler: {#backward-incompatible-changes}
|
|
||||||
|
|
||||||
- Bellek dışında bir motor ile geçici tablolar oluşturulmasına izin verilmez.
|
|
||||||
- View veya MaterializedView altyapısı ile tabloların açık oluşturulmasına izin verilmez.
|
|
||||||
- Tablo oluşturma sırasında yeni bir onay örnekleme anahtar ifadesinin birincil anahtara dahil edildiğini doğrular.
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes}
|
|
||||||
|
|
||||||
- Sabit hangups zaman eşzamanlı bir dağıtılmış tabloya ekleme.
|
|
||||||
- Sabit atomik olmayan ekleme ve çoğaltılmış tablolarda parçaların çıkarılması.
|
|
||||||
- Materialized görünümüne eklenen veriler gereksiz tekilleştirme tabi değildir.
|
|
||||||
- Yerel yinelemenin geciktiği ve uzak yinelemelerin kullanılamadığı dağıtılmış bir tabloya bir sorgu yürütmek artık bir hataya neden olmaz.
|
|
||||||
- Kullanıcıların erişim izinlerine ihtiyacı yoktur `default` veritabanı artık geçici tablolar oluşturmak için.
|
|
||||||
- Bağımsız değişkenler olmadan dizi türünü belirtirken çökmesini düzeltildi.
|
|
||||||
- Sunucu günlüklerini içeren disk birimi dolu olduğunda sabit hangups.
|
|
||||||
- Unix döneminin ilk haftası için toRelativeWeekNum işlevinde bir taşma düzeltildi.
|
|
||||||
|
|
||||||
#### İyileştirmeler Oluşturun: {#build-improvements}
|
|
||||||
|
|
||||||
- Birkaç üçüncü taraf Kütüphanesi (özellikle Poco) güncellendi ve git alt modüllerine dönüştürüldü.
|
|
||||||
|
|
||||||
### ClickHouse Sürümü 1.1.54304, 2017-10-19 {#clickhouse-release-1-1-54304-2017-10-19}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features-1}
|
|
||||||
|
|
||||||
- Yerel protokolde TLS desteği (etkinleştirmek, ayarlamak için `tcp_ssl_port` içinde `config.xml` ).
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes-1}
|
|
||||||
|
|
||||||
- `ALTER` çoğaltılmış tablolar için şimdi en kısa sürede çalışmaya başlamak çalışır.
|
|
||||||
- Ayarı ile veri okurken çökmesini sabit `preferred_block_size_bytes=0.`
|
|
||||||
- Sabit çöker `clickhouse-client` bas whenarken `Page Down`
|
|
||||||
- Bazı karmaşık sorguların doğru yorumlanması `GLOBAL IN` ve `UNION ALL`
|
|
||||||
- `FREEZE PARTITION` her zaman atomik olarak çalışır.
|
|
||||||
- Boş posta istekleri şimdi 411 koduyla bir yanıt döndürür.
|
|
||||||
- Gibi ifadeler için sabit yorumlama hataları `CAST(1 AS Nullable(UInt8)).`
|
|
||||||
- Okurken bir hata düzeltildi `Array(Nullable(String))` Col fromum fromns from `MergeTree` Tablolar.
|
|
||||||
- Gibi sorguları ayrıştırırken sabit çökmesini `SELECT dummy AS dummy, dummy AS b`
|
|
||||||
- Kullanıcılar geçersiz ile doğru güncellenir `users.xml`
|
|
||||||
- Yürütülebilir bir sözlük sıfır olmayan bir yanıt kodu döndürdüğünde doğru işleme.
|
|
||||||
|
|
||||||
### ClickHouse Yayın 1.1.54292, 2017-09-20 {#clickhouse-release-1-1-54292-2017-09-20}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features-2}
|
|
||||||
|
|
||||||
- Add theed the `pointInPolygon` koordinat düzleminde koordinatlarla çalışmak için işlev.
|
|
||||||
- Add theed the `sumMap` benzer dizilerin toplamını hesaplamak için toplama işlevi `SummingMergeTree`.
|
|
||||||
- Add theed the `trunc` İşlev. Yuvarlama fonksiyonlarının geliştirilmiş performansı (`round`, `floor`, `ceil`, `roundToExp2`) ve nasıl çalıştıklarının mantığını düzeltti. Mantığını değiştirdi `roundToExp2` kesirler ve negatif sayılar için işlev.
|
|
||||||
- ClickHouse yürütülebilir dosyası artık libc sürümüne daha az bağımlıdır. Aynı ClickHouse yürütülebilir dosya Linux sistemleri çok çeşitli çalıştırabilirsiniz. Derlenmiş sorguları kullanırken hala bir bağımlılık var (ayar ile `compile = 1` , varsayılan olarak kullanılmaz).
|
|
||||||
- Sorguların dinamik derlenmesi için gereken süreyi azalttı.
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes-2}
|
|
||||||
|
|
||||||
- Bazen üretilen bir hata düzeltildi `part ... intersects previous part` mesajlar ve kopya tutarlılığı zayıfladı.
|
|
||||||
- ZooKeeper kapatma sırasında kullanılamıyorsa sunucunun kilitlenmesine neden olan bir hata düzeltildi.
|
|
||||||
- Kopyaları geri yüklerken aşırı günlüğü kaldırıldı.
|
|
||||||
- Birlik tüm uygulamasında bir hata düzeltildi.
|
|
||||||
- Bir bloktaki ilk sütun dizi türüne sahipse, concat işlevinde bir hata düzeltildi.
|
|
||||||
- İlerleme şimdi sistemde doğru görüntülenir.tablo birleştirir.
|
|
||||||
|
|
||||||
### ClickHouse Yayın 1.1.54289, 2017-09-13 {#clickhouse-release-1-1-54289-2017-09-13}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features-3}
|
|
||||||
|
|
||||||
- `SYSTEM` sunucu yönetimi için sorgular: `SYSTEM RELOAD DICTIONARY`, `SYSTEM RELOAD DICTIONARIES`, `SYSTEM DROP DNS CACHE`, `SYSTEM SHUTDOWN`, `SYSTEM KILL`.
|
|
||||||
- Dizilerle çalışmak için işlevler eklendi: `concat`, `arraySlice`, `arrayPushBack`, `arrayPushFront`, `arrayPopBack`, `arrayPopFront`.
|
|
||||||
- Katma `root` ve `identity` ZooKeeper yapılandırması için parametreler. Bu, aynı ZooKeeper kümesinde tek tek kullanıcıları izole etmenizi sağlar.
|
|
||||||
- Toplam fonksiyonları eklendi `groupBitAnd`, `groupBitOr`, ve `groupBitXor` (uyumluluk için, isimler altında da mevcuttur `BIT_AND`, `BIT_OR`, ve `BIT_XOR`).
|
|
||||||
- Dış sözlükler dosya sisteminde bir soket belirterek Mysql'den yüklenebilir.
|
|
||||||
- Harici sözlükler SSL üzerinden MySQL yüklenebilir (`ssl_cert`, `ssl_key`, `ssl_ca` parametre).
|
|
||||||
- Add theed the `max_network_bandwidth_for_user` kullanıcı başına sorgular için genel bant genişliği kullanımını kısıtlamak için ayarlama.
|
|
||||||
- İçin destek `DROP TABLE` geçici tablolar için.
|
|
||||||
- Okuma desteği `DateTime` Unix zaman damgası biçimindeki değerler `CSV` ve `JSONEachRow` biçimliler.
|
|
||||||
- Dağıtılmış sorgularda gecikmeli yinelemeler artık varsayılan olarak dışlanır (varsayılan eşik 5 dakikadır).
|
|
||||||
- FIFO kilitleme sırasında kullanılır ALTER: bir ALTER sorgusu sürekli çalışan sorgular için süresiz olarak engellenmez.
|
|
||||||
- Seçeneği ayarlamak için `umask` yapılandırma dosyasında.
|
|
||||||
- İle sorgular için geliştirilmiş performans `DISTINCT` .
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes-3}
|
|
||||||
|
|
||||||
- ZooKeeper eski düğümleri silme işlemi geliştirildi. Daha önce, eski düğümler bazen çok sık ekler varsa silinmedi, bu da sunucunun diğer şeylerin yanı sıra kapanması için yavaş olmasına neden oldu.
|
|
||||||
- ZooKeeper bağlantı için ana seçerken sabit randomizasyon.
|
|
||||||
- Çoğaltma localhost ise, dağıtılmış sorgularda gecikmiş kopyaların dışlanması düzeltildi.
|
|
||||||
- Bir veri parçası bir hata düzeltildi `ReplicatedMergeTree` tablo çalıştırdıktan sonra kırık olabilir `ALTER MODIFY` bir element üzerinde `Nested` yapılı.
|
|
||||||
- SELECT sorgularına neden olabilecek bir hata düzeltildi “hang”.
|
|
||||||
- Dağıtılmış DDL sorguları için iyileştirmeler.
|
|
||||||
- Sorgu düzeltildi `CREATE TABLE ... AS <materialized view>`.
|
|
||||||
- Çık themaz theı Çöz thedü `ALTER ... CLEAR COLUMN IN PARTITION` sorgu için `Buffer` Tablolar.
|
|
||||||
- İçin geçersiz varsayılan değer düzeltildi `Enum` kullanırken s (minimum yerine 0) `JSONEachRow` ve `TSKV` biçimliler.
|
|
||||||
- Bir sözlük ile bir sözlük kullanırken zombi süreçlerinin görünümünü çözdü `executable` kaynaklı.
|
|
||||||
- Kafa sorgusu için sabit segfault.
|
|
||||||
|
|
||||||
#### ClickHouse geliştirmek ve birleştirmek için geliştirilmiş İş Akışı: {#improved-workflow-for-developing-and-assembling-clickhouse}
|
|
||||||
|
|
||||||
- Kullanabilirsiniz `pbuilder` ClickHouse inşa etmek.
|
|
||||||
- Kullanabilirsiniz `libc++` yerine `libstdc++` Linux üzerine inşa edilmiştir.
|
|
||||||
- Statik kod analiz araçlarını kullanma talimatları eklendi: `Coverage`, `clang-tidy`, `cppcheck`.
|
|
||||||
|
|
||||||
#### Yükseltme Yaparken Lütfen Unutmayın: {#please-note-when-upgrading}
|
|
||||||
|
|
||||||
- MergeTree ayarı için artık daha yüksek bir varsayılan değer var `max_bytes_to_merge_at_max_space_in_pool` (bayt olarak birleştirilecek veri parçalarının maksimum toplam boyutu): 100 Gib'den 150 Gib'e yükseldi. Bu, disk Alt Sisteminde artan bir yüke neden olabilecek sunucu yükseltmesinden sonra çalışan büyük birleştirmelere neden olabilir. Sunucuda kullanılabilir boş alan, çalışan birleştirmelerin toplam miktarının iki katından azsa, bu, diğer tüm birleştirmelerin, küçük veri parçalarının birleştirmeleri de dahil olmak üzere çalışmayı durdurmasına neden olur. Sonuç olarak, INSERT sorguları iletiyle başarısız olur “Merges are processing significantly slower than inserts.” Kullan... `SELECT * FROM system.merges` durumu izlemek için sorgu. Ayrıca kontrol edebilirsiniz `DiskSpaceReservedForMerge` metr theik `system.metrics` tablo veya Grafit. Bunu düzeltmek için hiçbir şey yapmanıza gerek yoktur, çünkü büyük birleşimler bittikten sonra sorun kendiliğinden çözülür. Bu kabul edilemez bulursanız, önceki değeri geri yükleyebilirsiniz `max_bytes_to_merge_at_max_space_in_pool` ayar. Bunu yapmak için, gidin `<merge_tree>` config bölümünde.xml, set ``` <merge_tree>``<max_bytes_to_merge_at_max_space_in_pool>107374182400</max_bytes_to_merge_at_max_space_in_pool> ``` ve sunucuyu yeniden başlatın.
|
|
||||||
|
|
||||||
### ClickHouse Sürümü 1.1.54284, 2017-08-29 {#clickhouse-release-1-1-54284-2017-08-29}
|
|
||||||
|
|
||||||
- Bu, önceki 1.1.54282 sürümü için bir hata düzeltme sürümüdür. Bu ZooKeeper parçalar dizininde sızıntıları giderir.
|
|
||||||
|
|
||||||
### ClickHouse Yayın 1.1.54282, 2017-08-23 {#clickhouse-release-1-1-54282-2017-08-23}
|
|
||||||
|
|
||||||
Bu sürüm önceki sürüm 1.1.54276 için hata düzeltmeleri içerir:
|
|
||||||
|
|
||||||
- Sabit `DB::Exception: Assertion violation: !_path.empty()` dağıtılmış bir tabloya eklerken.
|
|
||||||
- Giriş verileri'; ' ile başlarsa RowBinary biçiminde eklerken ayrıştırma düzeltildi.
|
|
||||||
- Errors during runtime compilation of certain aggregate functions (e.g. `groupArray()`).
|
|
||||||
|
|
||||||
### ClickHouse Yayın 1.1.54276, 2017-08-16 {#clickhouse-release-1-1-54276-2017-08-16}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features-4}
|
|
||||||
|
|
||||||
- Bir seçme sorgusu için bölüm ile isteğe bağlı eklendi. Örnek sorgu: `WITH 1+1 AS a SELECT a, a*a`
|
|
||||||
- INSERT, dağıtılmış bir tabloda eşzamanlı olarak gerçekleştirilebilir: Tamam, yalnızca tüm veriler tüm parçalara kaydedildikten sonra döndürülür. Bu ayar tarafından etkinleştirilir ınsert\_distributed\_sync = 1.
|
|
||||||
- 16 baytlık tanımlayıcılarla çalışmak için UUID veri türü eklendi.
|
|
||||||
- Tablo ile uyumluluk için CHAR, FLOAT ve diğer türlerin takma adları eklendi.
|
|
||||||
- Sayılara zaman dönüştürmek için fonksiyonları toYYYYMM, toYYYYMMDD ve toYYYYMMDDhhmmss eklendi.
|
|
||||||
- Kümelenmiş DDL sorguları için sunucuları tanımlamak için IP adreslerini (ana bilgisayar adı ile birlikte) kullanabilirsiniz.
|
|
||||||
- İşlevde sabit olmayan argümanlar ve negatif uzaklıklar için destek eklendi `substring(str, pos, len).`
|
|
||||||
- İçin max\_size parametresi eklendi `groupArray(max_size)(column)` toplama işlevi ve performansını optimize etti.
|
|
||||||
|
|
||||||
#### Ana Değişiklikler: {#main-changes}
|
|
||||||
|
|
||||||
- Güvenlik iyileştirmeleri: tüm sunucu dosyaları 0640 izinleriyle oluşturulur (üzerinden değiştirilebilir `<umask>` config parametresi).
|
|
||||||
- Geçersiz sözdizimi ile sorgular için geliştirilmiş hata mesajları.
|
|
||||||
- MergeTree verilerinin büyük bölümlerini birleştirirken bellek tüketimini önemli ölçüde azalttı ve performansı artırdı.
|
|
||||||
- ReplacingMergeTree motoru için veri birleştirmelerinin performansını önemli ölçüde artırdı.
|
|
||||||
- Birden çok kaynak ekler birleştirerek dağıtılmış bir tablodan zaman uyumsuz ekler için geliştirilmiş performans. Bu işlevi etkinleştirmek için distributed\_directory\_monitor\_batch\_ınserts = 1 ayarını kullanın.
|
|
||||||
|
|
||||||
#### Geriye Dönük Uyumsuz Değişiklikler: {#backward-incompatible-changes-1}
|
|
||||||
|
|
||||||
- Toplam durumların ikili biçimini değiştirdi `groupArray(array_column)` diziler için fonksiyonlar.
|
|
||||||
|
|
||||||
#### Değişikliklerin tam listesi: {#complete-list-of-changes}
|
|
||||||
|
|
||||||
- Add theed the `output_format_json_quote_denormals` json formatında nan ve ınf değerleri çıktısı sağlayan ayar.
|
|
||||||
- Dağıtılmış bir tablodan okurken optimize edilmiş akış tahsisi.
|
|
||||||
- Değer değişmezse ayarlar salt okunur modda yapılandırılabilir.
|
|
||||||
- Preferred\_block\_size\_bytes ayarında belirtilen blok boyutu üzerindeki kısıtlamaları karşılamak için mergetree motorunun tamsayı olmayan granüllerini alma yeteneği eklendi. Amaç, RAM tüketimini azaltmak ve büyük sütunlu tablolardan gelen sorguları işlerken önbellek konumunu arttırmaktır.
|
|
||||||
- Gibi ifadeler içeren dizinlerin verimli kullanımı `toStartOfHour(x)` gibi koşullar için `toStartOfHour(x) op сonstexpr.`
|
|
||||||
- MergeTree motorları için yeni ayarlar eklendi (yapılandırmada merge\_tree bölümü.xml):
|
|
||||||
- replicated\_deduplication\_window\_seconds yinelenen tablolar ekler tekilleştirme için izin verilen saniye sayısını ayarlar.
|
|
||||||
- cleanup\_delay\_period, eski verileri kaldırmak için temizleme işleminin ne sıklıkta başlatılacağını ayarlar.
|
|
||||||
- replicated\_can\_become\_leader, bir kopyanın lider olmasını (ve birleştirme atamasını) engelleyebilir.
|
|
||||||
- Hızlandırılmış Temizleme ZooKeeper eski verileri kaldırmak için.
|
|
||||||
- Kümelenmiş DDL sorguları için birden fazla iyileştirme ve düzeltme. Özellikle ilgi çekici olan yeni ayardır distributed\_ddl\_task\_timeout, kümedeki sunuculardan bir yanıt beklemek için zamanı sınırlar. Tüm ana bilgisayarlarda bir ddl isteği gerçekleştirilmediyse, bir yanıt bir zaman aşımı hatası içerir ve bir zaman uyumsuz modunda bir istek yürütülür.
|
|
||||||
- Sunucu günlüklerinde yığın izlerinin geliştirilmiş gösterimi.
|
|
||||||
- Add theed the “none” sıkıştırma yöntemi için değer.
|
|
||||||
- Yapılandırmada birden çok dictionaries\_config bölümünü kullanabilirsiniz.xml.
|
|
||||||
- Bu dosya sisteminde bir soket üzerinden MySQL bağlanmak mümkündür.
|
|
||||||
- Sistem.parçalar tablosu, bayt cinsinden işaretlerin boyutu hakkında bilgi içeren yeni bir sütuna sahiptir.
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes-4}
|
|
||||||
|
|
||||||
- Bir birleştirme tablosu kullanarak dağıtılmış tablolar artık bir koşulla bir SELECT sorgusu için doğru şekilde çalışır. `_table` alan.
|
|
||||||
- Veri parçalarını kontrol ederken ReplicatedMergeTree nadir bir yarış durumu düzeltildi.
|
|
||||||
- Sabit Olası donma “leader election” bir sunucu başlatırken.
|
|
||||||
- Veri kaynağının yerel bir kopyasını kullanırken max\_replica\_delay\_for\_distributed\_queries ayarı göz ardı edildi. Bu sorun giderildi.
|
|
||||||
- Sabit yanlış davranış `ALTER TABLE CLEAR COLUMN IN PARTITION` varolan olmayan bir sütunu temizlemeye çalışırken.
|
|
||||||
- Boş diziler veya dizeleri kullanırken multiİf işlevinde bir istisna düzeltildi.
|
|
||||||
- Sabit aşırı bellek ayırmaları yerel biçimi serisini kaldırırken.
|
|
||||||
- Trie sözlüklerin sabit yanlış otomatik güncelleme.
|
|
||||||
- Örnek kullanırken bir birleştirme tablosundan bir GROUP BY yan tümcesi ile sorguları çalıştırırken bir özel durum düzeltildi.
|
|
||||||
- Distributed\_aggregation\_memory\_efficient = 1 kullanırken grup çökmesi düzeltildi.
|
|
||||||
- Şimdi veritabanını belirtebilirsiniz.ın ve JOİN sağ tarafında tablo.
|
|
||||||
- Paralel toplama için çok fazla iplik kullanıldı. Bu sorun giderildi.
|
|
||||||
- Sabit nasıl “if” işlev FixedString argümanları ile çalışır.
|
|
||||||
- 0 ağırlığında kırıkları için dağıtılmış bir tablodan yanlış çalıştı seçin. Bu sorun giderildi.
|
|
||||||
- Çalışma `CREATE VIEW IF EXISTS no longer causes crashes.`
|
|
||||||
- Sabit yanlış davranış input\_format\_skip\_unknown\_fields=1 ayarlanır ve negatif sayılar vardır.
|
|
||||||
- Sabit bir sonsuz döngü içinde `dictGetHierarchy()` sözlükte bazı geçersiz veriler varsa işlev.
|
|
||||||
- Sabit `Syntax error: unexpected (...)` bir In veya JOIN yan tümcesi ve birleştirme tablolarındaki alt sorgularla dağıtılmış sorguları çalıştırırken hatalar.
|
|
||||||
- Sözlük tablolarından bir seçme sorgusunun yanlış yorumlanması düzeltildi.
|
|
||||||
- Sabit “Cannot mremap” 2 milyardan fazla öğe içeren ın ve JOIN yan tümcelerinde diziler kullanılırken hata oluştu.
|
|
||||||
- Kaynak olarak MySQL ile sözlükler için yük devretme düzeltildi.
|
|
||||||
|
|
||||||
#### ClickHouse geliştirmek ve birleştirmek için geliştirilmiş İş Akışı: {#improved-workflow-for-developing-and-assembling-clickhouse-1}
|
|
||||||
|
|
||||||
- Yapılar Arcadia'da monte edilebilir.
|
|
||||||
- Clickhouse'u derlemek için gcc 7'yi kullanabilirsiniz.
|
|
||||||
- Ccache+distcc kullanarak paralel yapılar artık daha hızlı.
|
|
||||||
|
|
||||||
### ClickHouse Yayın 1.1.54245, 2017-07-04 {#clickhouse-release-1-1-54245-2017-07-04}
|
|
||||||
|
|
||||||
#### Yenilik: {#new-features-5}
|
|
||||||
|
|
||||||
- Dağıtılmış DDL (örneğin, `CREATE TABLE ON CLUSTER`)
|
|
||||||
- Çoğaltılan sorgu `ALTER TABLE CLEAR COLUMN IN PARTITION.`
|
|
||||||
- Sözlük tabloları için motor (bir tablo şeklinde sözlük verilerine erişim).
|
|
||||||
- Sözlük veritabanı motoru (bu tür veritabanı otomatik olarak bağlı tüm dış sözlükler için sözlük tabloları vardır).
|
|
||||||
- Kaynağa bir istek göndererek sözlükteki güncellemeleri kontrol edebilirsiniz.
|
|
||||||
- Nitelikli sütun adları
|
|
||||||
- Çift tırnak işaretleri kullanarak tanımlayıcıları alıntı.
|
|
||||||
- HTTP arabirimindeki oturumlar.
|
|
||||||
- Çoğaltılmış bir tablo için en iyi duruma getirme sorgusu yalnızca lider üzerinde çalışabilir.
|
|
||||||
|
|
||||||
#### Geriye Dönük Uyumsuz Değişiklikler: {#backward-incompatible-changes-2}
|
|
||||||
|
|
||||||
- Kaldırıldı set GLOBAL.
|
|
||||||
|
|
||||||
#### Küçük Değişiklikler: {#minor-changes}
|
|
||||||
|
|
||||||
- Şimdi bir uyarı tetiklendikten sonra günlük tam yığın izleme yazdırır.
|
|
||||||
- Başlangıçta hasarlı / ekstra veri parçalarının sayısının doğrulanmasını rahatlattı(çok fazla yanlış pozitif vardı).
|
|
||||||
|
|
||||||
#### Hata Düzeltmeleri: {#bug-fixes-5}
|
|
||||||
|
|
||||||
- Kötü bir bağlantı düzeltildi “sticking” dağıtılmış bir tabloya eklerken.
|
|
||||||
- GLOBAL IN şimdi dağıtılmış bir tabloya bakan bir birleştirme tablosundan bir sorgu için çalışır.
|
|
||||||
- Bir Google Compute Engine sanal makinesinde yanlış sayıda çekirdek tespit edildi. Bu sorun giderildi.
|
|
||||||
- Önbelleğe alınmış harici sözlüklerin yürütülebilir bir kaynağının nasıl çalıştığındaki değişiklikler.
|
|
||||||
- Null karakter içeren dizelerin karşılaştırması düzeltildi.
|
|
||||||
- Float32 birincil anahtar alanlarının sabitler ile karşılaştırılması düzeltildi.
|
|
||||||
- Önceden, bir alanın boyutunun yanlış bir tahmini, aşırı büyük tahsisatlara neden olabilir.
|
|
||||||
- Alter kullanarak bir tabloya eklenen null bir sütun sorgularken bir kilitlenme düzeltildi.
|
|
||||||
- Satır sayısı sınırdan az ise, null bir sütuna göre sıralama yaparken bir kilitlenme düzeltildi.
|
|
||||||
- Yalnızca sabit değerlerden oluşan alt sorgu ile bir sipariş düzeltildi.
|
|
||||||
- Daha önce, çoğaltılmış bir tablo başarısız bir bırakma tablosundan sonra geçersiz durumda kalabilir.
|
|
||||||
- Boş sonuçları olan skaler alt sorgular için takma adlar artık kaybolmaz.
|
|
||||||
- Şimdi derleme kullanılan bir sorgu .so dosyası zarar görürse bir hata ile başarısız değil.
|
|
1
docs/tr/whats-new/changelog/2017.md
Symbolic link
1
docs/tr/whats-new/changelog/2017.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2017.md
|
File diff suppressed because it is too large
Load Diff
1
docs/tr/whats-new/changelog/2018.md
Symbolic link
1
docs/tr/whats-new/changelog/2018.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2018.md
|
File diff suppressed because it is too large
Load Diff
1
docs/tr/whats-new/changelog/2019.md
Symbolic link
1
docs/tr/whats-new/changelog/2019.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/2019.md
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
machine_translated: true
|
|
||||||
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
||||||
toc_folder_title: Changelog
|
|
||||||
toc_priority: 74
|
|
||||||
toc_title: '2020'
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include "content/changelog.md" %}
|
|
1
docs/tr/whats-new/changelog/index.md
Symbolic link
1
docs/tr/whats-new/changelog/index.md
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../en/whats-new/changelog/index.md
|
@ -61,7 +61,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
2014-03-22 1031592
|
2014-03-22 1031592
|
||||||
2014-03-23 1046491
|
2014-03-23 1046491
|
||||||
|
|
||||||
0000-00-00 8873898
|
1970-01-01 8873898
|
||||||
|
|
||||||
2014-03-17 1031592
|
2014-03-17 1031592
|
||||||
2014-03-23 1406958
|
2014-03-23 1406958
|
||||||
@ -556,7 +556,7 @@ SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORD
|
|||||||
|
|
||||||
Totals:
|
Totals:
|
||||||
┌──EventDate─┬───────c─┐
|
┌──EventDate─┬───────c─┐
|
||||||
│ 0000-00-00 │ 8873898 │
|
│ 1970-01-01 │ 8873898 │
|
||||||
└────────────┴─────────┘
|
└────────────┴─────────┘
|
||||||
|
|
||||||
Extremes:
|
Extremes:
|
||||||
|
@ -38,9 +38,9 @@ inserts_in_queue: 0
|
|||||||
merges_in_queue: 1
|
merges_in_queue: 1
|
||||||
part_mutations_in_queue: 0
|
part_mutations_in_queue: 0
|
||||||
queue_oldest_time: 2020-02-20 08:34:30
|
queue_oldest_time: 2020-02-20 08:34:30
|
||||||
inserts_oldest_time: 0000-00-00 00:00:00
|
inserts_oldest_time: 1970-01-01 00:00:00
|
||||||
merges_oldest_time: 2020-02-20 08:34:30
|
merges_oldest_time: 2020-02-20 08:34:30
|
||||||
part_mutations_oldest_time: 0000-00-00 00:00:00
|
part_mutations_oldest_time: 1970-01-01 00:00:00
|
||||||
oldest_part_to_get:
|
oldest_part_to_get:
|
||||||
oldest_part_to_merge_to: 20200220_20284_20840_7
|
oldest_part_to_merge_to: 20200220_20284_20840_7
|
||||||
oldest_part_to_mutate_to:
|
oldest_part_to_mutate_to:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# 日期 {#date}
|
# 日期 {#date}
|
||||||
|
|
||||||
日期类型,用两个字节存储,表示从 1970-01-01 (无符号) 到当前的日期值。允许存储从 Unix 纪元开始到编译阶段定义的上限阈值常量(目前上限是2106年,但最终完全支持的年份为2105)。最小值输出为0000-00-00。
|
日期类型,用两个字节存储,表示从 1970-01-01 (无符号) 到当前的日期值。允许存储从 Unix 纪元开始到编译阶段定义的上限阈值常量(目前上限是2106年,但最终完全支持的年份为2105)。最小值输出为1970-01-01。
|
||||||
|
|
||||||
日期中没有存储时区信息。
|
日期中没有存储时区信息。
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user