ClickHouse/docs/fa/sql_reference/statements/misc.md
2020-04-04 12:15:31 +03:00

15 KiB
Raw Blame History

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 پرس و جو نشان می دهد وضعیت چک برای هر بخش داده های فردی از یک جدول بر روی سرور محلی.

اگر داده ها خراب شده است

اگر جدول خراب شده است, شما می توانید داده های غیر خراب به جدول دیگر کپی کنید. برای انجام این کار:

  1. ایجاد یک جدول جدید با ساختار همان جدول صدمه دیده است. برای انجام این کار پرس و جو را اجرا کنید CREATE TABLE <new_table_name> AS <damaged_table_name>.
  2. تنظیم _مخفی کردن ارزش به 1 برای پردازش پرس و جو بعدی در یک موضوع واحد. برای انجام این کار پرس و جو را اجرا کنید SET max_threads = 1.
  3. اجرای پرسوجو INSERT INTO <new_table_name> SELECT * FROM <damaged_table_name>. این درخواست داده های غیر خراب شده را از جدول خراب شده به جدول دیگر کپی می کند. فقط داده ها قبل از قسمت خراب کپی خواهد شد.
  4. راه اندازی مجدد 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 the DEFAULT بند بند.
  • 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 ستون, که می تواند مقادیر زیر را:

  1. finished The query was terminated successfully.
  2. waiting Waiting for the query to end after sending it a signal to terminate.
  3. 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

به شما اجازه می دهد پایگاه داده فعلی را برای جلسه تنظیم کنید. پایگاه داده فعلی برای جستجو برای جداول استفاده می شود اگر پایگاه داده به صراحت در پرس و جو با یک نقطه قبل از نام جدول تعریف نشده است. این پرس و جو را نمی توان در هنگام استفاده از پروتکل قام ساخته شده, از هیچ مفهوم یک جلسه وجود دارد.

مقاله اصلی