diff --git a/docs/sql/queries.md b/docs/sql/queries.md index 03a67d0992362fe6d593b9be96e6929ed70febe7..d68ffcaf830b89b12f2af8b516ba4f00416fb959 100644 --- a/docs/sql/queries.md +++ b/docs/sql/queries.md @@ -115,6 +115,17 @@ pico.sql([[select * from "characters"]], {})  +Таблицы Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкими данными в Picodata могут быть двух типов: + +- _глобальными_, Ñ‚.е. полноÑтью доÑтупными на каждом из инÑтанÑов + клаÑтера. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð¹ таблицы Ñледует иÑпользовать + параметр `distributed globally`. +- _шардированными_, Ñ‚.е. раÑпределенные по шардам клаÑтера. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ + шардированной таблицы Ñледует иÑпользовать параметр `distributed by + ()`, указав в Ñкобках название колонки, по которой Ñ‚Ð°ÐºÐ°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° будет + раÑпределена. См. [подробнее](../glossary.md#table). + +Ð”Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ñтрации работы раÑпределенного SQL будем Ñоздавать шардированные таблицы. Создадим первую таблицу Ñледующей командой: ```sql @@ -130,7 +141,7 @@ option (timeout = 3.0) ; Ð”Ð»Ñ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ таблицы команда будет отличатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ именем третьей колонки. -При Ñоздании таблицы можно выбрать один из доÑтупных движков Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…: +При Ñоздании таблицы также можно выбрать один из доÑтупных движков Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…: - `memtx` — движок Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²ÐµÑ… данных в ОЗУ (in-memory); - `vinyl` — диÑковый движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, иÑпользующий LSM-Ð´ÐµÑ€ÐµÐ²ÑŒÑ diff --git a/docs/tutorial_data.md b/docs/tutorial_data.md index 56fe0256229f3898b3d0fa2f58573ae9d8841fc7..9f0cb6298d221b601e212abefde846077b28366e 100644 --- a/docs/tutorial_data.md +++ b/docs/tutorial_data.md @@ -1,16 +1,17 @@ # Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ SQL Ð’ данном разделе приведены примеры команд Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в -Picodata Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñзыка [SQL-запроÑов](sql/queries.md). Ðтот ÑпоÑоб отноÑитÑÑ Ðº работе Ñ -шардированными [таблицами](glossary.md#table). - - -## Создание шардированной таблицы {: #creating-sharded-table } - -ПоÑле Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº инÑтанÑу клаÑтера поÑредÑтвом команды `picodata -connect`, в интерактивной конÑоли Picodata доÑтупна Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ -`pico.sql()`, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет выполнÑÑ‚ÑŒ в клаÑтере SQL-запроÑÑ‹. Ð”Ð°Ð½Ð½Ð°Ñ -Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ именно Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ таблицами и -реализует возможноÑти [раÑпределенного SQL](../sql/review). +Picodata Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñзыка [SQL-запроÑов](sql/queries.md). + +## Создание таблицы {: #creating-table } +ПоÑле [подключениÑ](tutorial_first_steps.md#accessing-console) к +инÑтанÑу клаÑтера, в интерактивной конÑоли Picodata можно выполнÑÑ‚ÑŒ +SQL-запроÑÑ‹. Ð”Ð»Ñ Ñтого можно иÑпользовать как напрÑмую Ñзык SQL, так и +SQL-запроÑÑ‹, обернутые в ÑинтакÑÐ¸Ñ Lua. Переключение Ñзыков ввода и +оÑобенноÑти ÑоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ опиÑаны в разделе [Команды +SQL](sql/queries.md#available_langs). ПользователÑм доÑтупны функции Ð´Ð»Ñ +работы как Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸, так и шардированными таблицами (в поÑледнем +Ñлучае реализованы возможноÑти [раÑпределенного +SQL](../sql/broadcasted_sql.md)). Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° Ñоздадим шаблон ÑпиÑка друзей Свинки Пеппы, котором будет два полÑ: идентификатор запиÑи и Ð¸Ð¼Ñ Ð´Ñ€ÑƒÐ³Ð°: @@ -28,15 +29,31 @@ pico.sql([[ Помимо двух колонок, в примере указаны: -- первичный ключ таблицы; +- первичный ключ таблицы (колонка `"id"`); - движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… in-memory (`memtx`); -- ключ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ +- тип таблицы (шардированный, `distributed by`); +- ключ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ (колонка `"id"`); - таймаут перед возвращением ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ. -ПодробноÑти иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SQL приведены в разделе [Команды SQL](sql/queries.md). +Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы Ñоздать такую же, но глобальную таблицу, Ñледует указать +ÑоответÑтвующий тип: + +```sql +pico.sql([[ + create table "friends_of_peppa" ( + "id" integer, + "name" text not null, + primary key ("id") + ) using memtx distributed globally + option (timeout = 3.0) +]]) +``` + +Подробнее о типах таблиц Ñм. в [глоÑÑарии](../glossary.md#table). +ОпиÑание команд SQL приведено в разделе [Команды SQL](sql/queries.md). -## ЗапиÑÑŒ данных в шардированную таблицу {: #writing-to-sharded-table } -ЗапиÑÑŒ данных, Ñ‚.е. вÑтавка Ñтрок, в шардированную таблицу проиÑходит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды `INSERT` в SQL-запроÑе. +## ЗапиÑÑŒ данных в таблицу {: #writing-to-table } +ЗапиÑÑŒ данных, Ñ‚.е. вÑтавка Ñтрок, в таблицу проиÑходит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды `INSERT` в SQL-запроÑе. Можно иÑпользовать обычный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ñ€Ñмой передачей значений: ```sql @@ -55,8 +72,8 @@ pico.sql( ``` См. [подробнее](sql/queries.md#insert) о различиÑÑ… в `INSERT`-запроÑах. -## Чтение данных из шардированноой таблицы {: #reading-from-sharded-table } -Ð”Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð²Ñех данных из шардированноой таблицы подойдёт команда: +## Чтение данных из таблицы {: #reading-from-table } +Ð”Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð²Ñех данных из таблицы подойдёт команда: ``` pico.sql([[select * from "friends_of_peppa"]], {}) @@ -70,7 +87,7 @@ pico.sql([[select * from "friends_of_peppa" where "id" = 1]], {}) См. [подробнее](sql/queries.md#select) о вариантах Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в SQL. -## Удаление данных {: #deleting-from-sharded-table } +## Удаление данных {: #deleting-from-table } Удаление Ñтроки Ñ Ð¸Ð·Ð²ÐµÑтным `id`: