15 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
39 | غیره |
متفرقه نمایش داده شد
ATTACH
این پرس و جو دقیقا همان است CREATE
اما
- به جای کلمه
CREATE
با استفاده از این کلمهATTACH
. - پرس و جو می کند داده ها بر روی دیسک ایجاد کنید, اما فرض می شود که داده ها در حال حاضر در مکان های مناسب, و فقط می افزاید: اطلاعات در مورد جدول به سرور. پس از اجرای یک ضمیمه پرس و جو در سرور خواهد شد در مورد وجود جدول.
اگر جدول قبلا جدا شد (DETACH
), به این معنی که ساختار خود شناخته شده است, شما می توانید مختصر بدون تعریف ساختار استفاده.
ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster]
این پرس و جو در هنگام شروع سرور استفاده می شود. سرور ذخیره ابرداده جدول به عنوان فایل های با ATTACH
نمایش داده شد, که به سادگی در راه اندازی اجرا می شود (به غیر از جداول سیستم, که به صراحت بر روی سرور ایجاد).
CHECK TABLE
چک اگر داده ها در جدول خراب شده است.
CHECK TABLE [db.]name
این CHECK TABLE
پرس و جو اندازه فایل واقعی با مقادیر مورد انتظار که بر روی سرور ذخیره می شود مقایسه می کند. اگر اندازه فایل انجام مقادیر ذخیره شده مطابقت ندارد, به این معنی که داده ها خراب شده است. این می تواند باعث, مثلا, توسط یک تصادف سیستم در طول اجرای پرس و جو.
پاسخ پرس و جو شامل result
ستون با یک ردیف. ردیف دارای ارزش
بولی نوع:
- 0-داده ها در جدول خراب شده است.
- 1-داده حفظ یکپارچگی.
این CHECK TABLE
پرس و جو از موتورهای جدول زیر پشتیبانی می کند:
انجام بیش از جداول با موتورهای جدول دیگر باعث یک استثنا.
موتورهای از *Log
خانواده بازیابی اطلاعات خودکار در شکست را فراهم نمی کند. استفاده از CHECK TABLE
پرس و جو برای پیگیری از دست دادن داده ها به موقع.
برای MergeTree
موتورهای خانواده CHECK TABLE
پرس و جو نشان می دهد وضعیت چک برای هر بخش داده های فردی از یک جدول بر روی سرور محلی.
اگر داده ها خراب شده است
اگر جدول خراب شده است, شما می توانید داده های غیر خراب به جدول دیگر کپی کنید. برای انجام این کار:
- ایجاد یک جدول جدید با ساختار همان جدول صدمه دیده است. برای انجام این کار پرس و جو را اجرا کنید
CREATE TABLE <new_table_name> AS <damaged_table_name>
. - تنظیم _مخفی کردن ارزش به 1 برای پردازش پرس و جو بعدی در یک موضوع واحد. برای انجام این کار پرس و جو را اجرا کنید
SET max_threads = 1
. - اجرای پرسوجو
INSERT INTO <new_table_name> SELECT * FROM <damaged_table_name>
. این درخواست داده های غیر خراب شده را از جدول خراب شده به جدول دیگر کپی می کند. فقط داده ها قبل از قسمت خراب کپی خواهد شد. - راه اندازی مجدد
clickhouse-client
برای تنظیم مجددmax_threads
ارزش.
DESCRIBE TABLE
DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
بازگرداندن موارد زیر String
نوع ستونها:
name
— Column name.type
— Column type.default_type
— Clause that is used in عبارت پیشفرض (DEFAULT
,MATERIALIZED
یاALIAS
). ستون شامل یک رشته خالی, اگر عبارت پیش فرض مشخص نشده است.default_expression
— Value specified in theDEFAULT
بند بند.comment_expression
— Comment text.
ساختارهای داده تو در تو خروجی در “expanded” قالب. هر ستون به طور جداگانه نشان داده شده است, با نام بعد از یک نقطه.
DETACH
حذف اطلاعات در مورد ‘name’ جدول از سرور. سرور متوقف می شود دانستن در مورد وجود جدول.
DETACH TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
این داده ها و یا ابرداده جدول را حذف کنید. در راه اندازی سرور بعدی, سرور خواهد ابرداده به عنوان خوانده شده و پیدا کردن در مورد جدول دوباره.
به طور مشابه “detached” جدول را می توان دوباره متصل با استفاده از ATTACH
پرس و جو (به غیر از جداول سیستم که لازم نیست metadata ذخیره شده برای آنها).
وجود ندارد DETACH DATABASE
پرس و جو.
DROP
این پرسوجو دارای دو نوع است: DROP DATABASE
و DROP TABLE
.
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
حذف تمام جداول در داخل ‘db’ پایگاه داده, سپس حذف ‘db’ پایگاه داده خود را.
اگر IF EXISTS
مشخص شده است, این خطا بازگشت نیست اگر پایگاه داده وجود ندارد.
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
حذف جدول.
اگر IF EXISTS
مشخص شده است, این خطا را نمی گرداند اگر جدول وجود ندارد و یا پایگاه داده وجود ندارد.
DROP DICTIONARY [IF EXISTS] [db.]name
دلس فرهنگ لغت.
اگر IF EXISTS
مشخص شده است, این خطا را نمی گرداند اگر جدول وجود ندارد و یا پایگاه داده وجود ندارد.
EXISTS
EXISTS [TEMPORARY] [TABLE|DICTIONARY] [db.]name [INTO OUTFILE filename] [FORMAT format]
بازگرداندن یک UInt8
- نوع ستون, که شامل ارزش واحد 0
اگر جدول یا پایگاه داده وجود ندارد, یا 1
اگر جدول در پایگاه داده مشخص شده وجود دارد.
KILL QUERY
KILL QUERY [ON CLUSTER cluster]
WHERE <where expression to SELECT FROM system.processes query>
[SYNC|ASYNC|TEST]
[FORMAT format]
تلاش برای به زور خاتمه نمایش داده شد در حال حاضر در حال اجرا.
نمایش داده شد به فسخ از سیستم انتخاب شده است.جدول پردازش ها با استفاده از معیارهای تعریف شده در WHERE
بند از KILL
پرس و جو.
مثالها:
-- Forcibly terminates all queries with the specified query_id:
KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'
-- Synchronously terminates all queries run by 'username':
KILL QUERY WHERE user='username' SYNC
فقط خواندنی کاربران تنها می تواند نمایش داده شد خود را متوقف کند.
به طور پیش فرض, نسخه ناهمزمان از نمایش داده شد استفاده شده است (ASYNC
), که برای تایید است که نمایش داده شد را متوقف کرده اند منتظر نیست.
نسخه همزمان (SYNC
) منتظر تمام نمایش داده شد برای متوقف کردن و نمایش اطلاعات در مورد هر فرایند به عنوان متوقف می شود.
پاسخ شامل kill_status
ستون, که می تواند مقادیر زیر را:
- ‘finished’ – The query was terminated successfully.
- ‘waiting’ – Waiting for the query to end after sending it a signal to terminate.
- The other values explain why the query can't be stopped.
پرسوجوی تست (TEST
) فقط چک حقوق کاربر و نمایش یک لیست از نمایش داده شد برای متوقف کردن.
KILL MUTATION
KILL MUTATION [ON CLUSTER cluster]
WHERE <where expression to SELECT FROM system.mutations query>
[TEST]
[FORMAT format]
تلاش برای لغو و حذف جهشها که در حال حاضر اجرای. جهش به لغو از انتخاب system.mutations
جدول با استفاده از فیلتر مشخص شده توسط WHERE
بند از KILL
پرس و جو.
آزمون پرس و جو (TEST
) فقط چک حقوق کاربر و نمایش یک لیست از نمایش داده شد برای متوقف کردن.
مثالها:
-- Cancel and remove all mutations of the single table:
KILL MUTATION WHERE database = 'default' AND table = 'table'
-- Cancel the specific mutation:
KILL MUTATION WHERE database = 'default' AND table = 'table' AND mutation_id = 'mutation_3.txt'
The query is useful when a mutation is stuck and cannot finish (e.g. if some function in the mutation query throws an exception when applied to the data contained in the table).
تغییرات در حال حاضر توسط جهش ساخته شده به عقب نورد نیست.
OPTIMIZE
OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL] [DEDUPLICATE]
این پرس و جو تلاش می کند تا ادغام برنامه ریزی نشده از قطعات داده برای جداول با یک موتور جدول از ادغام خانواده
این OPTMIZE
پرس و جو نیز برای پشتیبانی ماده بینی و بافر موتورها. دیگر موتورهای جدول پشتیبانی نمی شوند.
زمانی که OPTIMIZE
با استفاده از تکرار غذای اصلی خانواده از موتورهای جدول, تاتر ایجاد یک کار برای ادغام و منتظر اعدام در تمام گره (در صورتی که replication_alter_partitions_sync
تنظیم فعال است).
- اگر
OPTIMIZE
یک ادغام به هر دلیلی انجام نمی, این کار مشتری اطلاع نیست. برای فعال کردن اعلان ها از ا_فزون_ف_کوپ تنظیمات. - اگر شما یک مشخص
PARTITION
فقط پارتیشن مشخص شده بهینه شده است. نحوه تنظیم بیان پارتیشن. - اگر شما مشخص کنید
FINAL
حتی زمانی که تمام داده ها در حال حاضر در یک بخش بهینه سازی انجام شده است. - اگر شما مشخص کنید
DEDUPLICATE
و سپس به طور کامل یکسان ردیف خواهد بود deduplicated (تمام ستون ها در مقایسه با) آن را حس می کند تنها برای MergeTree موتور.
!!! warning "اخطار"
OPTIMIZE
می توانید رفع نیست “Too many parts” خطا.
RENAME
تغییر نام یک یا چند جدول.
RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster]
همه جداول تحت قفل جهانی تغییر نام داد. تغییر نام جداول یک عملیات نور است. اگر شما یک پایگاه داده دیگر نشان داد پس از به, جدول خواهد شد به این پایگاه داده منتقل. اما, دایرکتوری ها با پایگاه داده باید اقامت در همان فایل سیستم (در غیر این صورت یک خطا بازگشته است).
SET
SET param = value
انتساب value
به param
تنظیم برای جلسه فعلی. شما نمی توانید تغییر دهید تنظیمات سرور از این طرف
شما همچنین می توانید تمام مقادیر را از مشخصات تنظیمات مشخص شده در یک پرس و جو واحد تنظیم کنید.
SET profile = 'profile-name-from-the-settings-file'
برای کسب اطلاعات بیشتر, دیدن تنظیمات.
TRUNCATE
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
حذف تمام داده ها را از یک جدول. هنگامی که بند IF EXISTS
حذف شده است, پرس و جو یک خطا می گرداند اگر جدول وجود ندارد.
این TRUNCATE
پرسوجو برای پشتیبانی نمیشود مشاهده, پرونده, URL و خالی موتورهای جدول.
USE
USE db
به شما اجازه می دهد پایگاه داده فعلی را برای جلسه تنظیم کنید. پایگاه داده فعلی برای جستجو برای جداول استفاده می شود اگر پایگاه داده به صراحت در پرس و جو با یک نقطه قبل از نام جدول تعریف نشده است. این پرس و جو را نمی توان در هنگام استفاده از پروتکل قام ساخته شده, از هیچ مفهوم یک جلسه وجود دارد.