From d136717060113552d935a591e95d8300675bdeb3 Mon Sep 17 00:00:00 2001 From: "a.tolstoy" <a.tolstoy@picodata.io> Date: Mon, 27 Mar 2023 17:28:17 +0300 Subject: [PATCH 1/2] docs: revise the preface page for Sbroad --- docs/cli.md | 2 +- docs/index.md | 5 +++-- docs/sbroad/sql_basics.md | 39 --------------------------------- docs/sbroad/sql_glossary.md | 37 +++++++++++++++++++++++++++++++ docs/sbroad/sql_index.md | 40 +++++++++++++++++++++++++++++----- docs/sbroad/sql_queries.md | 4 +++- docs/sbroad/tables.svg | Bin 30772 -> 0 bytes docs/sbroad/tables_curves.svg | Bin 48859 -> 0 bytes mkdocs.yml | 1 + 9 files changed, 79 insertions(+), 49 deletions(-) delete mode 100644 docs/sbroad/sql_basics.md create mode 100644 docs/sbroad/sql_glossary.md delete mode 100644 docs/sbroad/tables.svg delete mode 100644 docs/sbroad/tables_curves.svg diff --git a/docs/cli.md b/docs/cli.md index 88030b1b..76a21bb6 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -1,4 +1,4 @@ -# ОпиÑание параметров запуÑка +# ОпиÑание параметров запуÑка Picodata Picodata ÑвлÑетÑÑ ÐºÐ¾Ð½Ñольным приложением, которое поддерживает различные параметры запуÑка в виде аргументов командной Ñтроки. Полный ÑпиÑок аргументов доÑтупен Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñледующей команды: diff --git a/docs/index.md b/docs/index.md index 883aab32..4797b103 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,8 +15,9 @@ * [Пример работы Ñ ÐºÐ»Ð°Ñтером Picodata](tutorial) ### Справочные материалы -* [ОпиÑание параметров запуÑка](cli) -* [Поддерживаемые функции Ñтандарта SQL](sql_reference) +* [ОпиÑание параметров запуÑка Picodata](cli) +* [Поддерживаемые функции Ñтандарта SQL](sbroad/sql_reference) +* [ГлоÑÑарий оÑновных терминов и определений](sbroad/sql_glossary) Ðа данном портале предÑтавлена техничеÑÐºÐ°Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ продукта Picodata. Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ выгодах ÑотрудничеÑтва Ñ ÐºÐ¾Ð¼Ð¿Ð°Ð½Ð¸ÐµÐ¹ Picodata, корпоративных решениÑÑ… и уÑлугах, новоÑÑ‚ÑÑ…, ÑобытиÑÑ… находитÑÑ Ð½Ð° Ñайте [picodata.io](https://www.picodata.io){:target="_blank"}. diff --git a/docs/sbroad/sql_basics.md b/docs/sbroad/sql_basics.md deleted file mode 100644 index 1485ac0e..00000000 --- a/docs/sbroad/sql_basics.md +++ /dev/null @@ -1,39 +0,0 @@ -# ОÑновы и базовые понÑÑ‚Ð¸Ñ SQL -Данный раздел Ñодержит опиÑание оÑновных понÑтий и терминов, которые -понадобÑÑ‚ÑÑ Ð¿Ñ€Ð¸ взаимодейÑтвии Ñ Ð¡Ð£Ð‘Ð”. Раздел ориентирован на -пользователей, не имеющих обширного опыта работы Ñ Ñ€ÐµÐ»Ñционными СУБД. - -## Что такое SQL - -Picodata предоÑтавлÑет Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾Ñтупа к СУБД Tarantool — релÑционной ÑиÑтеме ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ данных, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·ÑƒÐµÑ‚ поддержку [Ñтандарта SQL](../sql_reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов). Ðто означает, что Ñто ÑиÑтема ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, предÑтавленными в виде отношений (relation). Отношение — Ñто математичеÑки точное обозначение таблицы. -РелÑÑ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных ÑоÑтоит из таблиц, и у нее еÑÑ‚ÑŒ две ключевые характериÑтики: - -* Данные раÑпределены по ÑмыÑлу по таблицам -* Между таблицами еÑÑ‚ÑŒ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ - -Ð›ÑŽÐ±Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° предÑтавлÑет Ñобой именованный набор Ñтрок. Ð’Ñе Ñтроки таблицы имеют одинаковый набор именованных Ñтолбцов, при Ñтом каждому Ñтолбцу назначаетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ð¹ тип данных. ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то что порÑдок Ñтолбцов во вÑех Ñтроках фикÑирован, важно помнить, что SQL не гарантирует какой-либо порÑдок Ñтрок в таблице (Ñ…Ð¾Ñ‚Ñ Ð¸Ñ… можно Ñвно отÑортировать при выводе). - -## Что позволÑет делать SQL - -SQL позволÑет работать Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼Ð¸ данных и отношениÑми между ними. Ð’ общем Ñлучае, пользователю базы данных (БД) доÑтупны Ñледующие дейÑтвиÑ: - -* Выполнение запроÑов к БД -* Получение данных из БД в виде предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (view) -* Сортировать полученные из БД данные -* Добавление таблиц в БД -* ЗапиÑÑŒ данных в БД -* Обновление данных в БД -* Удаление данных из БД -* Управление правами доÑтупа к данным в БД - -## Применение SQL -SQL применÑетÑÑ Ð¿Ñ€Ð°ÐºÑ‚Ð¸Ñ‡ÐµÑки везде, где требуетÑÑ Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ðµ и хранение важных бизнеÑ-данных. Ðапример, Ñто может быть ÑпиÑок клиентов, ÑпиÑок их покупок, ÑпиÑок их адреÑов и Ñ‚.п. Каждый ÑпиÑок будет отдельной таблицей в БД. - -При запроÑе на получение данных из таблиц формируетÑÑ Ð¿Ñ€ÐµÐ´Ñтавление (view) — результат запроÑа в виде объединенной таблицы, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñодержит в Ñебе найденные Ð²Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸Ð· одной или неÑкольких иÑходных таблиц. Вариант предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½ на риÑунке ниже. - -![tables_query](tables_curves.svg "Tables and views") - -ПредÑтавление может Ñодержать Ñтолбцы из разных таблиц, при Ñтом количеÑтво Ñтрок будет ÑоответÑтвовать чиÑлу найденных вхождений ÑоглаÑно заданному запроÑу. - -Более подробные ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ работе SQL в Picodata приведены в разделе [Принцип работы раÑпределенных запроÑов](../sql_review) - diff --git a/docs/sbroad/sql_glossary.md b/docs/sbroad/sql_glossary.md new file mode 100644 index 00000000..880f78a7 --- /dev/null +++ b/docs/sbroad/sql_glossary.md @@ -0,0 +1,37 @@ +# ГлоÑÑарий +## Общие ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ +Данный документ Ñодержит ÑпиÑок терминов и их определений Ð´Ð»Ñ Ð¾Ñновных программных компонентов и понÑтий, которые иÑпользуютÑÑ Ð² Picodata. У глоÑÑÐ°Ñ€Ð¸Ñ Ð´Ð²Ðµ проÑтые цели: + +- Дать точное и непротиворечивое определение каждому термину применительно к его иÑпользованию в Picodata. +- ОбеÑпечить единообразие терминологии во внутренних документах (комментарии в коде, readme и прочие Markdown-документы в наших репозиториÑÑ…). + +СпиÑок ниже будет дополнÑÑ‚ÑŒÑÑ Ð¸ иÑправлÑÑ‚ÑŒÑÑ Ð² течение времени. + +## СпиÑок терминов и определений +**ИнÑтанÑ** — программный узел, входÑщий в ÑоÑтав клаÑтера. Каждый инÑÑ‚Ð°Ð½Ñ ÑвлÑетÑÑ ÑкземплÑром Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Picodata, а также репликой в ÑоÑтаве репликаÑета. Среда Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть как виртуальной, так и физичеÑкой. + +**КлаÑтер** — набор программных узлов, ÑоÑтавлÑющих отдельную группу. + +**Raft** — алгоритм Ñинхронной репликации, обеÑпечивающий целоÑтноÑÑ‚ÑŒ клаÑтера (raft-группы). Raft отвечает за автоматичеÑкий выбор лидера raft-группы (лидер может менÑÑ‚ÑŒÑÑ). Ð’ raft-группе еÑÑ‚ÑŒ лидер, а оÑтальные узлы называютÑÑ follower’ами. + +**ОтказоуÑтойчивоÑÑ‚ÑŒ** — показатель надежноÑти клаÑтера и/или отдельных его узлов. ОтказоуÑтойчивоÑÑ‚ÑŒ означает ÑпоÑобноÑÑ‚ÑŒ клаÑтера продолжать работу при выходе из ÑÑ‚Ñ€Ð¾Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ или неÑкольких узлов. ДоÑтигаетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ репликации. + +**РепликациÑ** — Ñоздание и поддержание в актуальном ÑоÑтоÑнии резервных копий инÑтанÑов. Ðабор из активного инÑтанÑа и его резервных копий называетÑÑ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñетом. + +**Фактор репликации** — чиÑло инÑтанÑов в репликаÑете. + +**РепликаÑет** — буквально «набор реплик», ÑкземплÑров приложений, в которых хранитÑÑ Ð¾Ð´Ð¸Ð½ и тот же набор реплицированных данных. Ð’ завиÑимоÑти от роли реплик, в Picodata еÑÑ‚ÑŒ реплики _active (RW)_ и _standby (RO)_. + +**Failure domain** — букв. _"домен отказа"_. Термин обозначает зону доÑтупноÑти инÑтанÑа Picodata, Ñ‚.е. признак физичеÑкого Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñервера, на котором запущен инÑÑ‚Ð°Ð½Ñ (географичеÑкий регион, датацентр, Ñтойка и Ñ‚.д.). Зона доÑтупноÑти иÑпользуетÑÑ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы в один репликаÑет по возможноÑти попадали инÑтанÑÑ‹ Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼ размещением, Ð¿Ð¾Ð²Ñ‹ÑˆÐ°Ñ Ñ‚Ð°ÐºÐ¸Ð¼ образом отказоуÑтойчивоÑÑ‚ÑŒ как отдельного репликаÑета, так и клаÑтера в целом. + +**Bucket** (бакет) — Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ð¸Ð¼Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ†Ð° Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾ÑÑ‚ÑŒ данных (Ñ‚. е. их нахождение на каком-то одном репликаÑете). + +**Горизонтальное маÑштабирование** — шардинг, Ñ‚.е. раÑпределение bucket'ов между различными репликаÑетами, находÑщихÑÑ Ð½Ð° разных Ñерверах. Каждый такое репликаÑет называетÑÑ ÑˆÐ°Ñ€Ð´Ð¾Ð¼. + +**Discovery** — алгоритм взаимного Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¸Ð½ÑтанÑами друг друга во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² клаÑтер. + +**Space** (ÑпейÑ) — проÑтранÑтво Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в СУБД. Ð’ резидентных СУБД ÑÐ¿ÐµÐ¹Ñ ÑвлÑетÑÑ Ñинонимом _таблицы_ из релÑционных СУБД. + +**Grade** (грейд) — Ñпецифичный Ð´Ð»Ñ Picodata ÑпоÑоб Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ Ð¸Ð½ÑтанÑа. Грейд отражает то, как инÑÑ‚Ð°Ð½Ñ Ñконфигурирован его ÑоÑедÑми. СущеÑтвуют _текущий_ (current) и _целевой_ (target) типы грейдов. За приведение первого ко второму отвечает _governor_ (губернатор). + +**Governor** (губернатор) — внутреннÑÑ Ñ†ÐµÐ½Ñ‚Ñ€Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑущноÑÑ‚ÑŒ, управлÑÑŽÑ‰Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñми и жизненными циклами инÑтанÑов в ÑоответÑтвие Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñми их грейдов. diff --git a/docs/sbroad/sql_index.md b/docs/sbroad/sql_index.md index c174adbe..389bb8e3 100644 --- a/docs/sbroad/sql_index.md +++ b/docs/sbroad/sql_index.md @@ -1,17 +1,45 @@ # Работа Ñ SQL в Picodata +Данный раздел Ñодержит базовые ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ поддержке раÑпределенного SQL в Picodata и иÑпользуемой в ней СУБД Tarantool. -## ВозможноÑти и функции при работе Ñ SQL в Picodata +## ОÑновные термины и Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ +Работа Ñ Ð¡Ð£Ð‘Ð” Tarantool предполагает знание и понимание оÑновных терминов, иÑпользуемых при ÑкÑплуатации раÑпределенных ÑиÑтем. Ð”Ð»Ñ Ñтого на нашем портале документации имеетÑÑ [Ñправочник-глоÑÑарий](../sql_review), дающий Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ñ‹Ñ… понÑтий. + +## Picodata и SQL Picodata включает в ÑÐµÐ±Ñ Ð±Ð¾Ð³Ð°Ñ‚ÑƒÑŽ функциональноÑÑ‚ÑŒ по работе Ñ Ñ€ÐµÐ»Ñционными данными, имеющуюÑÑ Ð² СУБД Tarantool. Пользователи могут Ñоздавать, наполнÑÑ‚ÑŒ данными хранилище БД и затем Ñчитывать данные поÑредÑтвом запроÑов в интерактивной конÑоли Picodata. Дополнительно, Picodata предоÑтавлÑет функцию Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… из вÑего раÑпределенного хранилища поÑредÑтвом компонента [SQL Broadcaster](https://git.picodata.io/picodata/picodata/sbroad). Таким образом, Picodata ÑвлÑетÑÑ Ð¾Ð´Ð½Ð¾Ð¹ из немногих СУБД, где реализован механизм как локального, так и раÑпределенного SQL. -SQL Broadcaster предÑтавлÑет Ñобой библиотеку, предоÑтавлÑющую функции планировщика и Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ SQL-запроÑов в рамках раÑпределенного клаÑтера СУБД Tarantool. ПодробноÑти архитектуры планировщика доÑтупны в отдельной [PDF-презентации](https://git.picodata.io/picodata/picodata/sbroad/-/blob/main/doc/design/sbroad.pdf). +## ОÑновные понÑÑ‚Ð¸Ñ SQL + +СУБД Tarantool в Picodata реализует поддержку [Ñтандарта SQL](../sql_reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов). Ðто означает, что Ñто ÑиÑтема ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, предÑтавленными в виде отношений (relation). Отношение — Ñто математичеÑки точное обозначение таблицы. +РелÑÑ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных ÑоÑтоит из таблиц, и у нее еÑÑ‚ÑŒ две ключевые характериÑтики: + +* Данные раÑпределены по ÑмыÑлу по таблицам +* Между таблицами еÑÑ‚ÑŒ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ + +Ð›ÑŽÐ±Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° предÑтавлÑет Ñобой именованный набор Ñтрок. Ð’Ñе Ñтроки таблицы имеют одинаковый набор именованных Ñтолбцов, при Ñтом каждому Ñтолбцу назначаетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ð¹ тип данных. ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то что порÑдок Ñтолбцов во вÑех Ñтроках фикÑирован, важно помнить, что SQL не гарантирует какой-либо порÑдок Ñтрок в таблице (Ñ…Ð¾Ñ‚Ñ Ð¸Ñ… можно Ñвно отÑортировать при выводе). + +Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ SQL в рамках раÑпределенной ÑиÑтемы (клаÑтера) в Picodata иÑпользуетÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚ SQL Broadcaster. + +## Что такое SQL Broadcaster + +SQL Broadcaster — Ñто динамичеÑÐºÐ°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ°, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ на вÑех ÑкземплÑрах БД Tarantool в клаÑтере. Ð”Ð°Ð½Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° предоÑтавлÑет функции планировщика и Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ SQL-запроÑов в рамках клаÑтера СУБД Tarantool. SQL-запроÑÑ‹ выполнÑÑŽÑ‚ÑÑ Ð½Ð° узлах, иÑполнÑющих роль маршрутизаторов (роутеров), и получают данные Ñ ÑƒÐ·Ð»Ð¾Ð² Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ (storages). ПоÑкольку в клаÑтере может быть много как узлов хранениÑ, так и роутеров, каждый раÑпределенный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ€Ð°Ð·Ð±Ð¸Ð²Ð°ÐµÑ‚ÑÑ Ð½Ð° чаÑти Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð¾Ñа вÑех узлов. Собранные данные затем конÑолидируютÑÑ Ð¸ возвращаютÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ. -## ДоÑтупные документы -Данный раздел предоÑтавлÑет Ñледующие документы: +ПодробноÑти архитектуры планировщика доÑтупны в отдельной [PDF-презентации](https://git.picodata.io/picodata/picodata/sbroad/-/blob/main/doc/design/sbroad.pdf). + + +## ДоÑтупные материалы в данном разделе +Мы предоÑтавлÑем Ñледующие документы Ð´Ð»Ñ SQL Broadcaster: -* [ОÑновы и базовые понÑÑ‚Ð¸Ñ SQL](../sql_basics) * [Общее опиÑание и принцип работы компонента SQL Broadcaster](../sql_review) -* [ОпиÑание поддерживаемых запроÑов и их ÑинтакÑиÑа](../sql_queries) +* [Справочник команд SQL Broadcaster](../sql_queries) * [Перечень поддерживаемых типов данных](../sql_datatypes) * [ИнÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð¿Ð¾ уÑтановке SQL Broadcaster и теÑтового приложениÑ](../sql_tutorial) +* [ГлоÑÑарий оÑновных терминов и определений](../sql_glossary) * [Справочник поддерживаемых функций Ñтандарта SQL](../sql_reference) + +## СвÑзь Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð¼ и получение помощи +Программное обеÑпечение Picodata, включающее в ÑебÑ, в том чиÑле, компонент SQL Broadcaster, ÑвлÑетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ и доÑтупно в нашем [Git-репозитории](https://git.picodata.io/). Мы приветÑтвуем иÑпользование, раÑпроÑтранение и доработку нашего ПО в рамках ÑовмеÑтной коллективной работы. + +Дополнительную техничеÑкую поддержку, информацию о новоÑÑ‚ÑÑ… и тренингах Picodata, а также о ÑотрудничеÑтве можно также получить в нашем Telegram-канале [@picodataru](https://t.me/picodataru) + + diff --git a/docs/sbroad/sql_queries.md b/docs/sbroad/sql_queries.md index 76fbf675..572423c4 100644 --- a/docs/sbroad/sql_queries.md +++ b/docs/sbroad/sql_queries.md @@ -1,4 +1,6 @@ -# Поддерживаемые запроÑÑ‹ и их ÑинтакÑÐ¸Ñ +# Справочник команд SQL Broadcaster +Справочник команд предоÑтавлÑÑ‚ оÑновные варианты иÑпользование команд SQL в Picodata при работе Ñ Ñ€Ð°Ñпределенной СУБД. + ФункциональноÑÑ‚ÑŒ компонента SQL Broadcaster обеÑпечивает поддержку раÑпределенных запроÑов SELECT и INSERT. Ðиже на Ñхеме показаны базовые варианты Ñтих запроÑов. diff --git a/docs/sbroad/tables.svg b/docs/sbroad/tables.svg deleted file mode 100644 index d34b5230b0671f81c9eb339e6e75530f42d1fa86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30772 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 diff --git a/docs/sbroad/tables_curves.svg b/docs/sbroad/tables_curves.svg deleted file mode 100644 index feb677c25d99996b730230f0f7a3eecb43cd8ce7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48859 zcmeI5-EL$@lHc#=Dax%I4bZHv^IgSOYq6e%Ap<jeVXQxPZw!hos%f#w7Rm0G=F01f zeFa|{@Dt1$9$?{x?N?~Mk$?YxWS(=1Rj0a}tR5|}mLRb*PoB)k$cV^@$cQ{&{n?MN zE@yAoH@6qpS1+Cv^Tm_d`s(!h?BeRX7f=4}U;V42<&)X%-O1J2$>sIc`o)v0>nDHq z^{>AA7e`04-`uQE?$&3scNcdrXaD-@``go#*X!ArFYoSNA3uBc?%lijMXH=%-+cG% z*R!LeuYdKcuWsLd_p8~Ax6bZfGGbfJi@IHQuU<V-^~?3ecQ5a#uZnrwwQZT|-(IZW z{mbhgUp!gN7PJ1PS>MbrkLFRh;^OSZ6UJ*?V5Y~nuTM^y#p|2(?fT~JIvOP?k4LYU z^K$m(w~Lcyy=<GhcseT=WqDMTM~mXue(4qzz2?8;v+L8VlUMY4ck=D!`u0DbzM<dS zIiu!5uWpYsB3?Y1!jAedaJSEL<I($hwEq2EF~7Zjb91^r2f^$4)%xz)U;NcyJj)M{ z7W1>av!R>*ZLQ6_%BxZ?7K>+_z*5@V^6Rhi0LOy*OiQDso6UsozN+)Uv)SvD@7AZ+ zm)AEho_ulcf6{|*uW!!QH~CTPe>NUnvsf2*KLuH)5%OByzPx^?o^M~CoL#?r@uW;| zX5<~~Vc)?5y1v(e!Fstq{eFG(?e)nGkZ(0PTi<@4!8<GT@BL0#{5P-GS9eEmt}gCw zUpz^~I-3c+?{0*T^OMWlpfm83q5u8$^(zLPcZ;rAwB7Q4zo!s-v6?Sd#d29~Jp?1= zs+d=0w_4qQ`0nBgd>m!&T9sR~N-cUuTNGQ<N=?LV6a521wT1HZ+N+ZvFJ4{ze$C{! zdWJi0gs;n!pVknB{}fMV&%XZZY<+$^P?1XIldr#eb#lW3MLk%(`{@!+yM|HEFR$Mn zzrDD<fawy9L4SXKb94PJgEpJptk3_$Fb$XgdR)G~xd5IQPfp(4T^}LnZtjk5))EAx zUh}Hm-d&%5uQk0lMgaNmL!fo@cBOyvn$BkN_?slynt9{rdF5ua4bj%kyIC`DhbiU3 zFK#_Na^~jE4%nd6%k`-ya{2D$r`!JhEb0FI_BD_H&B@)x^@}Gz{_f)JulWxIzdpHp znbA9&-QApA-6BjNPNeze`b$VO<em9@#@v55J1U<Z)w9*pg?`nu(;4M*URC-F=<RIr z^k_NzeGfvvZs!-5m&d2qS9j|l@4)rV_4n)Nsyn)QbGbeS>sQxjXV2ro@fF+6s0*R} z#7p~IlgqQf>epXA6RCXtmG_hphh3h0yS{w!<hP=;*%ldocXR#b^{eYMh{+_F2GSsj zBm*ZSeE8=j8{U^k-D+O6ZM|f^Z9A{{-TwL>D%H~s2w#<TKZ!)W#=;j}w>&>z=E;76 z6y~2)4DLN%%$vn>xyt-M6ZT)tmJnD~cdO><l1*y4T9n1?<!m`Gs;X>@+1vE9Sy6k` zSO4Bf8!vVbVUc-!bDa(WVOP(K5+T;@f)HRo62fZWrNiN{tm~?Lx?0ZLve}Ko_G96z zKL-XAe2aPAutzL+V(_B@9OU5v5xA<B?bD*D=c~4;d-x!{OoJl?QoDx)>(9X?Wx%&+ z=iLh7lzHSq@D1{K1Ak}TVzGJ%6C*+DreP!4!Nel~`Ps9`2QWCnA_stQn~6sdj+uBr zgv|t#JPN|PDXVsyiN^qbEC!ni9ytVjTTJ{Q04JE_Q2;gzG|X)#9&IEeCZ=`|6E~lQ zNdmt6O#Be|x(WO>CyT|peZWq<YUazLUM#vDOx#wz6lAS?CZ>812D=Fi9st5^CLTdJ zX5tS(I3Z>p1>vG<>w24sQ6zV4B-HM~;BrF990I;ACVmir6H?}J04|%=E+#H_BCy<x zz|X-Xi-2#7i5~*r1Oc9~ou2o$!zZZI#iE+8R#jQ<V&Wcu8$7%Zf2#=sJOF$<Sh$C8 zgM;_NH$i`ogKt@)32v*>19&3|xEHz!>N^B<+wA-4;7!QqM}pTaiyb@gr$hHySYv7E zwpjO5p(_@P3CinEG2qW1u>BTAIWM}ht`5Sv060N>2LSL8tP6k><o7rL+Y$xl@w^Lo z6ZCfo@E*^+#bVOW@hAdpyG3~b?ghNh!XE+NC$Vqxq|Ih0Hy0;3YVAjR|KH#L;r-vg z|Ht?L@bllj|3mLk3zw_>d7R;7hyUP5!qs<lizoQFoHx~?Y+nEP{PN;zeH6au<6>Sm z&(GE9{N&Ze<xj`otS{fL?=DVH{&M|h{hOa|o*!k8`H`E+hk0?%bG(>W+pWWM*n7{4 z<*I83q8$11UY*?CT>SWD!Oq{|1}dH|_;)BBbxV92^`dR;;45kzFdX~bcb0}bu9?@1 z6>h$#as@W4wv!KTF^8+_r9E7WdAq1P*#iZx-+Ix=8^+O0S#`@=)kmB4xwV=^Cu3Kt z+;(!~p|{}tm*afw)XP4?c3#)3Wz#%uyZLIlDjKO;3wbS>@$3f;&+IyUxO0}JQdtYw z)Z>a}-7W0p<)Kiyda7otvRtkFf}SsVAwkJQrdc%IMpd+zuXr)97H!e06PzaP(tQ-T zEsKe&lGBl@lQ)@HYrKdxQ>fbtdqGuoJe`*vj?d10RQN+_gGaVxPt`#664#jqESQQa z^tLO2Kov#VHbto#5aAX@Q}~r!j!yNcEE>*h1b4Y=!T)BR-Yc4zX(?*2gv=J;^u~h4 zHg;RUcEze{OQWi+%R~_f(V}2^1Wn@!l&Yd!)T?r7_~@@*2;icwOUO=h;5>AtR@I9A zFqSD-l^x5>lJHb?%7DX+>uLe%gCx+zbHl0zi?(E%RB-4SFw=+2WvA7}9ob`O^tuqH z?yJ?ZV%2z(m)Wxs)~aS<+DR1yG36FZuteW_8RBX*Xwh|oQWA0lsIt>A(N67iIe^xa zrYb5g>7v7GoV^m-s~XR}vDPfwMU!};jEQ+HFAj90nFhIN`O<O<d2Y~i4=8d)C6_!6 zHI`mraO19jLqFW0-0VRU%Ws%uSo$b8khOYD<xD~O1w=p>Lx^GxWSR!hx@@W!@EOPq zwQw3Of(U~I+yz+Gpu)%o6z#GKFcT(3JTa&V-N1O^`i0UPbX7>`ndh{k>bqH*el1Bx z<)*G`p0jd^Xa$d^Kn-h;ug{CQRg>6qx0I|GalE)&N_GgCawXB-b`|Utytjn8%~w^; zv;>djuxnNwGJX>t;gp(cv20f%bhJ=<OT254lSnCX`681wt;}*+m@Tr@!HzX`MvIs3 z2B{;+^d8hDjQMphS6cC|s)7VEm04=3g-778kgl=@QWyOKdqgUR1<fRositR!21(^n zlU(R&TSCp9#$Ezp1~X(*h1H@#Pk5Q*dg4yB(Z7+w$_+B<X8y{uDbu<zAP{o<%zycL zqQ?9@HZ8qi%rmR1td^Y#wk?p&ny3Y<t1N3>rEOAFOyi=|v5dxq=YP<TrfI!56`680 z-@=<yqS6ggUM|>;Arv;L#`LwwH7r5Nba+@-O$j;jp1YzZ7|Jzuvs4FtO}!Eonhn!F zp;>r7v=51=8ndK(K+iFs*Uh3bcNSf)3I!!LG`5^7cF=;Y1}CBWtwDy_qAuE%#h_Nj zY$^&3!Dxb0^VnAS6*R~Xj{vKv56(Ip?J7k>Fp!Z5&#ju;f}3}=kpl6uDK!+>rcjn8 z5kh)NeNzE*vNgM6x%B2%RBg-Y4{h19B`y1kVp$el;FztINDI$I3XGbEa242FHT1Y# zGKkv8MsI8w1gff*o`ZZm<59PIK|5S*(b2Jn$dKsy3YzdXEfO*Y^W+jFdLd6&Lp69* zh7<fjKdcwkq<+W&cE#o^!H1S8M=RkZi>5`^hHe^~&RglGMbWU5uC7}V`0P^i&HHkL zj@|2&A)ZQ9PpHs<re)x)6$u+v$a1fPg{!7)+hC(=5z3L<$F`smy~6_&2<S}t<~d0^ zUXHz+M+L`{R%<M4c+j!9W~Bn;;x15EiO<Bap*k)rD;t(mg2@cXOf{@zEOp&-RU>7m zu-)v&_U~rP)x2Zxho4){<6E7G&%RMDJcq(O`**Xv486FQ4M8j(F9BAF7?gnD&Q`)! z$BE6x8&dI>yVp>9KWo_cq`6B%PEDelngsDiOn-$|$|P8G&h&wMG#@})Hdqj=>G@<z z!Xm267NVM*`Op%<(v%&u$Y#_O<deqGsshn1J$|Y&WL*W~G{GffCw|MWG+S>PLn6aJ zy)k5k;seG|XilHe7_!bX*hiB28@7-((NDL9VpD})h3pMe$m4CALdL^}DYRMh|1BZ$ z{x4$*Svl;r#jK<Dsu}Xj5`1I{*|6z#xqpV15Xz3U7Rz>TSzC6`wr#ZE5+crX!e7Km zc7cHqKCBk~L)%6{+)PnBc1zq>$(oMcg#Ddk`J@t9Z&W>7Zz#^%l~Ju)9HW{-Ro4Uw zc?!v-AML}rrYrG_naf)_iKh0aB2=1Z-)*|Rax5Fh!-S9g{JdP&4>{ylxE;7bbwn|p z6G-HV_i=UkgxWs6zIOVA8VCoE<VGyfAt0=m^R7jaW@&m@J{`h7WO#7oDsYqF?ML7c zQ<yONqO0cU?|Ahd2jPUT{16bf;)Md0V+Vv*gL};GTji;+&&NTC_pEt}FBXrowDt_) zD4J+Qht%$c@N;kqjA952%vMzNT@b1=#if1#!fN6y{rvn}yqpg>F;vuDh4A6P<}ke6 zhrn-f%HttC3@=v`hnkPVAqEUivjg#RHA#n$z+r;$FuXh!e*8EbHe_}jikGJXkPiak zL3nv8!gt*v5xWQQGAax9c*l9t4qmR&M?y@G<Y9{|X-febG>3YE4i5q0HZMO2!U@gc zQ4kUvjsJd|mpP@}fkSHd;czO(_Ye?n@$v}5(Z2j42q!d$M?uIjE~iD?`|>Ena!iN& zVn9(fCnWYkAiU4ZBM3+P^4=Iw84A6>aYKV$R_A9;^8jAP*UEW2$JD!cc^4V(ivh(q zI-xfl0={idegJ$EH26698Xfm<^YIWwJ0`)sT-;7j;344K;^G0m5fgu4eJ3RK<KSzn zU8?l}-p8Zw^RS1(+v4Az`o`?LcXhi7>N`L0PFLkaxL0v_#JcR#s&{T8`}dHkF#SWo zx5d2=fp3EP9tU65aprXp?(LI_w``KftZ%?~2=1K<(SIEN>XM_|?H#!3`D4VsIxxHM z2pjak<>%p#fbTy44)BfmH^cWafp`P3pAg>07LJcYcJNWN;@rDkmer8uD^xh5kF?0G zjs8y@(f97<#ohYI_aYpV$^87{%JGAaDMaj`GStt{E^c3ww96d}dX@y({UE?ie_;xf zBkC2OrcQ>4)ZizlThI&6OND#LO_9%>a_F9Oq2vp7gojVoBDke*TPpie?oxNL`>d*h z1@6;dhKS|hG_*z*EQm+s09^gav$`*8Z|^}>oHeh?jbp3?AAmY!PY3G(vAnn`E=SXF z#9qX(tcWzw({aS!y&47VrPF-J>jC%&!u1?DGmh3PcxN1}r#Kpik;yl#a|1Wv;K2T5 z#Wm_sBNZ#KAE)v<zV<R~#_4$i_m8H0HlY{+Mi@uwx%`MAJs`UmqDRfW2t8_&hu@(d z1n5Q3LZ0Xlp%<sq5d-1le@#5cz_gB>h=XcIy&s<EcZDROkmx+ePJmUTNXNlie(b=A z=ZZ2^5Ex0130t5Wozf5#s<Cytt`2vE<>_&b_2M9XfK<O6mm^f;rXI)Sc||8;^1Kv% z6jDS*FrRd)6w}D@K?KXVc@9Bh7>%aW3qdc>uFCxxRJ6`-Go6j*L<sur{s79wQ6!$q z5i6ojp+`0EgPWrBQ5c>d_k*PnyF_F}b;W23J`k)W@kMELM|}~(6y3+n2_E)f9}$0N zuE|UCY2kNzbtC$2vqDEsQ!x=0d+D^G<944_fg2Ig3-=K*^MlA^9D7GOj?>Njgx(Q! z6R?>3gX$f3=Q69JH%3u+k`4;Gi=bnnmk|)JW8p!ZnTvYb$6o-8Q0wsKVObQB1!Y$$ zuE`Nc3ke;yRk!>Z!t8wHotKaZ1U=15rnn=suU|!ZR<R=3$qVXmubxr~Npa&Lv`)oL zsOc%(81Dv*iI7<FaoYq$dI<XTF!2YX#HFAq=IBzQenrUBGM+(&!!xf>FjmmMqv$MY zI1G&NC5IyOilw2T>_g2JL#NDqbv_EAi<mOvpG<0-5p=X2Q6mxdtT5qogi;H2QC94Z zj~*2}r-A9hQDSV?mRX7(Qb(!ms5uKaMHE;7=qOVt*a(@6cUKVs?0`9Uo+_*raE`4R zDqJo?-5oCHNfUOQf&+D^N}~_O%BjspsGI~absLd#CSFI%Z3oIpXXwM^G~XOHrYJd= z$3b$!q+;YeOGVA8g(B19AX*`E8r@N7ep%7SyDAhPmp5X?!F%=_(Qz9!(IFivG|toM zYx3}VsJOTQEv-<R%+NT`j-WWX*mlLlRm*xxBB2nA1q+-|NF<_Hh~dp)aVd|($LrGX zwu0iiAtp{lqma0<2vI<smt0#j4HOM$(eB+-L<F&$BoqoaDk}~yC<=J+0DuTZ!G(^g zAUF*}9YTn=v?pt26ahCB760ZX^s&3UFq?3Mct7+_4;}fI1K%9wq_{Wv&UYiU-G|V& zBqITY;vqmT+s4rdaG$ZLkVD~?I%{lw&|8uTjo~216{O@SwrCz*M9|{)>L}bTg)E}p zOoGnUcDwUu2)rctf#iOJ-c&7Gfz|q&JPaEFgw#R))3X=?*c|E>4Ts9uH8tI#&XI03 z%tprq!pSh6gxVQM2y4h{!gz>%XUO<5os44K;4m{MM=K$PM}~vAueTCxH;gN!FviQ{ zG@qb)C^GikkrCmF35&tc#vyG%sMhZzyT@d#1S_b11<#5x*nwSK2IN_Xj#z%{W;9Br z-KIjol#K@mvBi`e<|~#O*$FO&nGtLn0v-Ak7fA~V-dvb%H=@@BuC^M$)utH92HGa6 zkcALZFja_M%)jIO9Zi%_R{b9W55OpmEd#@s4Fj!vZx@W;i_r32RsnB}jRJKr*aUjG z%OvnH@VY>XuyxBTN=X+P>;cb7dbt;G(;6@WHjM#OZdP-$#x!LL1ep((0AOWBM*~tC z*#Ul-beqtLvT~K$CWT4zQvHNdgtqB^!eH280vLt_f=HBC+3`gjh^LL&Sjfjp>M1C4 z<6issu%E8{(}^`4t%WoBLOYFh)CkEC@XnHg%_0i{aCymkmKWz<d9TjDn$-EBKW>R* zw2)6_OTLYr8~8b-1!`MOvE%@U>IyQH_hxf5sp%!*VYc~6_RwQ_BLu2=#T8t<=k_W8 zFF{UDLEoM2QSFJsb)dkzPYee)(x1ZDTuyqB5(KPamJ4E_HJ~ycq6O&?;|kj&p{O}& z&kN2CS!zsfL>LRJq_0wMX+eBhz>_Kp!i|$CMvM_`%!mqJcV|I);SA9n2wmrSRU%}w z@IjgOenk?7rH}_#M}jmX1D`3ws{&P5$h5|ecEX*Yo@}mg-ck}lBuohyP2aB)=Nsk7 zLy4knZ-kp3z-XSLtQ(cH2uT`?5-BtX>nLfpRYt1OT4_Ui?78ag9tSb!MPdpo*&dBF z5cijOHJMad(a$~)?_%yx-Vg=|89P9y^<sD!Glr)b<&fc1`*LWOyFwG4uS<+;uR(1b zo1UM;or@11yeyVoTw|-77@c~|@&GZ{AUrLqhV_@0cEXLg;`Rob=t#PT8dngs?#zY1 z(xddG`-rv(;^<~y<J50%TkPp~6NG%9)NW7re<kJo|Ni`+-~XSV|F*~6E-yE?2QNuV zN=e+g#Hw;4N>Y;q3B$I{iknt<xw)6Wc;fnJcXN|~DU)7$AqhN$_x=!up{1$l-)UQ7 z{SNUus&K}*D!dtsWt2j$ipYWr^{DCUDrJJ@#}<?!RaT*H2Gj9o-6=arT7R`Fxqd9G zNfsmo0$ZGhn;FQIGAT(T>&{FWnL0L8yiZ0s(z-09A}dT|hd%(DD|vvTX<rUyHax~M zygaRHMF@uFrK_yXrJON~RGpS2%`T@_vdJd^B{W=;b|*_tlZ>B$Q`T&LX=||gAP}9m z$dA~n$2HlPR5<C>^GV(%J5UgiUMU4;TNOdWQbkOUzgc5Y7PeN-4m8gP)1}5#gb1Y0 z#MY!8j&i?lay?r?)sE_gR1PF9f)WIAs_;^Tmw>w}SDn2-$`Yh;PHn@&9eET44yk&= z1x=FeoAR_G(%ch?#4Y*%V;9f_^g`0?Q%*c{ke4l?*PBcle1RA@Fojj^T=ZtXVH9S0 ztkbP`zNh#2+w04?IXf=C)uC8iy8xw68DOgwBFEeHJ&TtM&MM+{fAFm2jf%yD(zRZ4 zWDA|1mVSh%DE&|q5Z{C+OOI6J_<GnuzrkOFPfl-Us){81s7hPnP$gFi_%aNMBgFr1 zt?X7%86IqUw86t4`;I+=x}yRra0eo2Z<OJH6Ae;!@~&PFb>Cx01D>dXJ?LtXTo#&p zG>|c>9+ZIZ1}NCfj7cWHt(0ggbR&gzI^mBB{?9MJ0z;?^yV(aI`f^~&^A8saZ6dwF zD6m(Bsswbhhe5cdjo??Ga3Z9b9lD89?W74Etg4i}7c7>OylX^)n8G)FXsld;Jj7_W zw8%eMb2--E(!9Zi&}Y1I^RMx542z5OET5xDoSIh&X5o}3=q)AADks~N6L=DS;y6Kq zM}wOX-9l%V7PZ;hb(W-Nn<pQ~A;}e}SCdDH+zm6RR8?wOh_E$7g!ea$1QA$%NQw#l znF}NZ^lC4&!>iwy!%;NW!9I<7_xOD9CKW82eLf?16`ULDG(I03dCA*^X5mX!HY(Lr zAthKc*|o(THwEh0!^I7;y_5bPygU_l&)8uJ-6{*mgs1Esle9Jvkm{W5aYfmZgX{&c zgwfK8t!SDxW|c#;57&9v<PzKV@`zl*o}l+t9E^wwEQMvms6qBy<g!MkK|I1w9uUa} z6t%a+_B&WZ#NA^aURV4scX&{(17jdC#|M#nLyRu7t0r6_V%4xvq(5lLDB9B<+fSNd zGNaN1n%Sz#4wcPbnY7(DCS9(N_6$6L`VT*CelwRxQa6xnSfXw3AI^>Ks-b}n5|d;{ zPkJ!b*L!U8n(SCdKoFaPYLf*GoXbuC2+0&>+ZVyR0x6S7#Tczozhl8gE3^m)U@WjM zBrtl6=Dt7wNX=seYGMcrW}-5zY!qC{;GL=Are#~4R0Kv6rHbtG0HR#f7T;O~-Ej<L zV>PwRGwEqMjBJKg*I9<@Y()J@kCT=xNbR6dUCc%DJp4s@t?h=OL8)&t_?28^A(tqV z#k6xjKg%?BuN<6Z)u{Jom>4rsM(;_?YEUl-{a9m@&%|6UstxR?M?HP%h=5mfIad4O z^tI<yr9nm^hGcq>G|pBXyHeQy!NNwdv`kiSRdd&gD$sNWPXiU+4@Gu%Jy5|yCk03g z9qyehVx)FX)abAeiKa!eAOQ<~>;7cTlp!b-3qy+_@ll2RP#S#%m(<vR+e)f#cW~b# zV8-&9TWH@+fnW?Y$j?Ey=yyfhoo%m<Y9!jE8mN_*lQFz{R3y<h(2sWCL?uF%>6T{U zF$%Kn-%9d|p-q&zD03o+$H%A|R`U80!YB0Q`;L*kZ7a1<-+K6f1B7dOuwip_mm<CR z+R*X0Z|?5Kb^q!5;_CPnF=IEm_Uwc&#N6BvA2u4~D18{_xOg6)kvLjkogKfqx%~2r z__W91CJ0YUsq++Fm81|&JZ+q8pU!ZMu(f&pAWF2-0_$2v>QR9#L$O`W_=XERrUXjK z*$j9bd_dWvAXRA;QJTLh#FsGEcR#&e^G%u4(=7#{k5*)m-Ze5t=)*tWfWSpRU7)uW z%%b4J3tdi@lWB5F$mmk=z0tf}CiD5=(;*k>(T{>}xgFx@T-OJGo@0bRmK-Yv^W_ov z>%abUFPird@D&Pw#DVxI_y(Wk!RfCiz*EZX4){jVvis?8hi~s->s!^_W3uF^WP5!_ z(Z>7XTTRg4gD>@m;|MR1!)u#=hiKyw|K@1p@dasvd>MUxW@CL10pAw?J_NoA`a1-C zTm1VF_$K7@A>iBM--p0AA)gNc-xmK4@QwI)Fa4F=-j~Bp4o-ht{5!xm;@=OzH$i_7 z&ekIcojV**GZO!nqy2Y)?_>EF5BF~T9Rfb{uWbA*{~iM01pOTXKJjlyK=otb>%Wb6 zZ~r|6eCA)@xEAWw1JK8PC_CBX5a5}8WtMC&??<yo@fq2}?5kk($G|s1eh*G1B<5w# z5jW;&Y`>3W-yIn^R$mSQ-yztyoS?r$z;_7tEhp&j5bzy<eai{yd<gIk!M^2ZWRF9z zZ#6-F56&elNh(|L&0jLYZ2dlxeX9xbI|O`(VBczj{tf}(A=tN?pua=FcL4USCzR7e zfOiP?tv@4s9D;p6r}K)$)<U;r_1eLZ>OC?(_8RB7@^@=jhj6|$3qC%<$7^=LH`1>5 z!#Cx;I)w4Ig}*^N9pP`kaWv(;ItYCC@i)LX!ruqrn-I^3(4K|AMv+gC&`zhER|kPl z_`|)s1HO-6-wFOWg!*y_{7pI64g%i+@HgdLJH-BR5d2N>$3fuxB>e3T5dCiihyL;X z|NQxHfBr9oivAD2PV~q3|NH$vy#He_w&lo7cNuKY<xhN<!7uT3qM|~dt#wR@Te#!I zRJ$NId6NypP3At0blM^}anpc%ImvBwEmt9MNvGN>I*2TizHJk2qqD#1F&$rmiV!(s zI<}6ia?COSu`LsCwA2|V7tW^(4mfco+=&Bs9q>A8#b=@l^>UO{e@f~gMLzkH0uGf) zr=!kzpC5{T*;S!aey1g-bKf{+R_J>QX>_bg4rWo@L3~l8KX>kHoNpQ@vfOeRNstap zirXVvU4EYtmeSe?2;#<h!q-y>i*uU<WqeG*XTcHb5C^^EZxuumt&V5?LcTTM@g>w$ z9jB2x(AN1d2fd1gOKFBF%#*TCh=;d%$!F&gRp%Fc;O%f01qV8UK>?f5nTF;Z*dd$_ zFfcIG^keIkI4;FdJA$>;K0S5KW*2JiDe9TV**sp(N28pnV&P3iKN0iJWxAwgER{vK zBDf-*sS_^BTooY4l?9BTkUAZV4>kS>Lt4S6OnI&P?nNYJDi6XF?mvYgs&W-y)l$;s z5IzuR{>Bfvqx>WEb7y_Ts5o+WOu`Y%OHGPi5Oou!uf^*#O9;VqS>J`CGeyl&h9Q-k ztPm-G(<SlgQlG_&4>F{*aeWL3K5`cd<WnE4h(iMuiaa8aLijU7>5C1#(N~xWBfKep zTub4U8a&0kIGj>_D<?zP!gg)|FvZdI(cTW?%HLVyf&?R0yySQXhcftWfA>PmrEp(2 z5|x=Lo%FL=B|en|(6|wb!6bA0oQxGASTs>6r=m*~gT*AqaV}$8oA`pmEAkn1lnYKo zYb(;Y9lx%zy=aaLcWS77%~Y>eim}&HjcZ4Z;~Q@Zfu~bCW4(ySjEL9%3j5$%y6eAc zlC$L;NS-4sg_yciqBbK6CdF+?2L=w#cjLozn`x$`N2jl0aVfUm4|x3g3VixZo$848 z(>z2$c+wMHIa<?e6@j7zjuFKW75+Gm!)cS?Qkpn(&<EV4j%R=M=7urx-3g(-BNewK zi38N@3ndP|2ey<Zm+mE}LLaUXqa>-Pnh1mnDQjq|<%%49o=EPxCgf1WszKl>Xh_k% znojH{`l0<LDApScRsFYi_#H9+!jnE%A&fS>3iU=!5(fTq9xwLe#OEVeGPpAKGZNGd zpFek{w-sYAfHSAY0K(_+Sr#WeB;lvHWQH%7d=AM|(C1M+{!q1Zr|G}yBk9e6A(rW? z-%K|5nb-)@;zmA!+D1isTW~0GuJ4W?A<meZHw?k*J3pv!7VW6)IeRi3<0$%bf_5gq z{J|<iCVXf_%7*a8ElTE3=v9(5WnU+zjmTnnV6)n^9h{}WK~m^m>P5oUr*5e)@e56D zS~V*NtC*T$Yu#sL_EOqRP7p}hp$cmk`Xm0UkIqg}jDDn;N+HN$YC)Z`kt3LNg%yuJ zGEaN>9HV79GWcH2*2fqfP|U{|V_PJR#ni5kF&ZSUByb{T1nX*5718fi?$fpNml$IX zN&(Q`lvA{oemyEie<lYhRk1N-B_gR`LWQn(N*ja36tuVT-4U08R=D}tv~9DoKESBa z2Ud3ou!dCfsdmxL)a_7IcjRt+k~w)>Upo|pR?oD9sYr^0;Y>R&=`CWR5Wzf-jXr-u zZph$fM7@^Rj?^BC%Ha;l73G0e(sO^1D&AC<hsGzY%mZ#EavSuNORRmS2Ub56I4G>% z`^Ja^<YFhWo~vvffyp3VMCGWetnfsy3WV?H5QNK_AIMR0nM4LX*DxB+@rrbpo0Hk? z$Ngs(V>B9!o0Ikw#hla~#fX&D?K)u}Bzfj*Slm7V4`sPX`lSX_{*22*W_R@0r*;Q7 z4!PYCDeXHrc%M{^fG*8__!i%u%bgfFayNwhPfhTKBzRrhjMr@Zagm<K$|;eHV|kB& zgFBH5Y}c%ej5>?d{_A2{*^tT;x?`xB3ON)erN{GkjM$i`o`O!XmGGsazk1jgi-?vM zT4G}rZ~9gWwjqCA&dRfv&VxH=oVU}E5e3XEJ)fn;MB(+APTEgeuA{R<Xj=jhdCj=K z%Pn%%vc(mh(Z=7H6KqivsSM4Mcn{&5U{R12aIv*Zg3&a~chZcU1?8+GT06f=Fs0qz zi8wH$mr^%q^`tG}oLe=n!6T3?9bw1)slr>MjW$etcFazfsQgV*6lG-!dg+-<JtxHl zvr}4T9p6#a)F7yUJm;AE!;d3K@0YE|w*fgLEF(YOVc`NSRZZ;t^|Zpy@yW`c79P79 zA}hxc1N1$)-;+DOeVtD>E`6g`pRbX0qlvHEg@Q@Gm4&-A*g|NGFZGH2*1{A<VamFk zD&=OTBza3po{aAG(U!F9VxRb+<i4wYG&d8yceB0Uv@7drwY;vi{ww@A53;`5nKW6x z>H1l$@31oe30dE;jui*(n2Bh5mEP1O-s*LHdBC#q9ch+(jBm@2U()#Q(+9le^(KIo z84<KDmtlJQjqiF|i-**f3$lerTS|B%2j|*ocL}x*0j6(BOG1&=XN4bVP!BtYgbe~< zLM+gh8^>@{c(CYVLJ&236#kZ7q2lYo!+sdRZ(M?9nKXt7?+TW!fk#c-aSc{HOIK-4 z%m9N~-8fhfmcN&UIP!cnd-ij__DE2Z_wx^W*;wUGC)<e4gC%9i^_I0o-|)TJf6`92 z>Z6=&pUURkA@k9EZfyOMd@fD*15UON^LZ0{_G7bwNLeg$iqD@q8K_l^P(dmnN}m$` z$;c=3hkUU3@-ZssDC{wF8J|uY?&`k%v@{<q>D}KHa7xoT5rKU|leB9R+%j&CzgV8~ z?|DYmyNk2Cm&Y{Xb9-%_Ylj>uvXxOjtEZBgZqmD4A`hxt&T&wo-Lr?ym)!ax>Bu!S z6&KAkq(p%R()6`?ao~a6mnF6YO=Lo)a{7x=(4l$jxZ)J;FW$3YpgGZ3(OSNk=q6Vn zJ4eIuSmTL_QcLfaG2&2@Uq-(g51QVV0j@XjLga?=m%ehv^o8*xeDD6;$ivr$l;8d{ zDo5kBA=#hoGOdl9Y_1I^=)A>stIr5DYQdhO3G?+^-NI-zGav3S@~O^>#bd@?%qWl1 zEdCB<R+ao}edSS$>X$%rYK3E&x0kt?`(R1OgXOW<bYrk+H%ntaO+~F}KU4-#3z`PY zuMZXJ#aNS_C&M}s*2O{Z|JVCJ^jH!n>MXb;4X>}fz5D5M{o=`ae-_M&<6kIV|M=WD z&A*J>K$uJO+>OppUR_-Nbo|Zw^6mQW;`HP%*KgLp`RV5Q(Z$vGx1=PlkD{;F>(h&K zp5I+uUv0O}`G<C~xBbWLhFj}(m^R3ZUAG>sKq_CeOSc~7(h(fW7R$c>^oVan7p(1~ z`1O;W*WZ(<Kks1o@+seL*6}Fz+z&QT!vBQvzDl>Z;^y=D3AghkC6BL|dpkf7*b{<x z8L^-ZqOU<c!|+juy58BG$$2z3jm;cxSPPW^yD0k_Qx!)>zVt^HAYS6+s?enY>Z>E; z+iEn&%%MS4I8^O_8-__W7*oofr5o&PIo2`0Bd;7O73CH}wvy^gbV{62{=z3C$%C(S zcz!O@C5^~L<ezFd9Zqibz6z&zOjjzXO}-u%i*Q*H@fB_(7jdbQ=V8xV(Q)yTCWTEG zjsy^$Y&?}YCg)8?g}?3mN@cd=n4deaDX;qz)KR(|B^S9q!3H&_IK|{KOfh}eM1xG> zE-ljvHvz01S*PWwmEkDI%90CSoh=~LHF3EgKgZR%v0B7gwY2jkPMt~beldM@0U+VF z0@HjDlN}O5HXMj@5tLm#T-Xt3FI<SCPZN;vn2vaI1!eCadQ^v>Rqx9ORY0QIa^I*R zk(Xp-FC0fYT|UXgTgy^$5mvsX3FAQ?Sm<IASN(7sTX<Ic8qNfD<G-0iny}YM$cxJ` zIBwP_6~37jOjZ<vL}$0<(2x$pg;cKmdHc+GCRdG^dKE1W6a?ZIaR~vAg1B-xmG2Xy zPZtxJW?JNs&$OsFp+zhysf5v!rrDdVs1Tk>CR>l8u@l+mazCgDB3Qr>`U-{gFoWE` z&W~WQzGlKIE2eKH(C0si?XD&HSQ~w{-t?loN4x~FK#9CJY7#<4OBK#j%^Tq;@q>93 zhj;fYxC#ha9rQxvM{5C+TU(ylQ<Q5=z;TfVlxCqCB<Y#==iX+f0Ie6QgGeND!eTbp zB(k)NkY}8R31a3OhZ^mQV1wk7Y)EkTy2=q2;txV#@Ud*q7i#t*&J3O9Ur@%-ei5Xz zRnZdwog=El$(g8*qfnoX+@m_8B78Vv`sFprkr45w^qwe0>4thBx<poVoFX_lOl3o` zfY&I(FP>%W?kS3zy!wm7Mf{~L3=BoFMbvPu?R?~m%y+tmS|Tch_<`i-<g;0hRly4n z?O1w&dqh)ucaWmG$pP25#ATMP_MYh!QvSTU;<^@10FRpL)R3D6xUnV1X4jK#RuQ(v zIpfsyrY}b#oRHm$J%s6XoEp%HWIq004%zY^88>8c`+8XT-kVU+b2-TefQ&`+4>s!1 zDB>xz(_LeMugZJfP=h>Gu$LZk<Q*5jauOKYgGr1hTNMRI{#?Eml+Rt>oV18{#aZeI z@#)K|v{0%b=Ew(^lI(7Q^TX`TbgZy&UVyFRfh;RHs_=#zcc!wvI>IJhp_+PA$6hy| z@`MQ4sNyXhTWM-+K5=YGpiyWGaYUuhsO!0Qc3KgS0E-8WHCzv80k%NayI(?ayoHg> z64R6#C8;g*EMzl*OcL_MLZvTY<O;S_>21P|qT3iT&5&;=tHed4>PcTI;{TlDdHMjP zBKHbL(Xkk?V2_Q_n{m9k(yr(e%YF^LRY6mPNqMTFQigt~smF8CHH)a>8ji;W3nxhi zMt2mc7{H*%x~L0|sLe$`RWsd_?`}b#gde}Th$X~E5||<XxED+v6lJ=u7Lss>q6Bq- z5v4NvvWtY{xH)T}r|5Qm$|x$P+xc_j*i>a|>0x?RyZ*Q>!I*w(1h7C+OlOy=Etl(f zR1u&WC!llBB45=epfZekN~Wq<TfH16fcgkPI5N`PFn&xi%@~r1=cx<~@P=Aq#2WX! zK@p{sqXywTtp!rt1R5+&$El1&0ZbZl32|^JeCMkqrMi2y?v>3~Qy+YQSAA3|f77I? zh@tq8@BjY&AAkP4-Yy&&i+cix|2Y|pHRn8vqQjj(Um?<Sw8~&BhQfg(i1p@kcX6L8 z)}TWjy!DGLWhnN>kt;$&)lb=pN&m|F%h*gb(Mu~g9oR}tVttp9DB%XMBO8&5ktNDr zq87U>MAZ)l;?NP$V;^c823VPg`8KPOd1xNrunt|bLnRkVYzq(8q56%IH6wG96=NV8 zn}$OX?M8N^3`5JDDDJciy=l=(W3)CWiM)#a0;_Q9u%B@1>BD|~GKC&R6CA8?Y-!9$ zGYwlz#$QI)pv;VF?^}dcT%_tu>0q3f?*m8n6z)Ud;oEukXNU+!TD^9zk>(sK=Wd;z zmV-);<QtWx(TAKPbT8sia#QQ`rjOnnz%B~v9<+H^pz7ry))7dV@(0qrU*oMQQ+^du z!XMD&Gq(<kyeUr*m>_yu%=$D$k`286*;tD=rG{!gCe_%Ddkx+sHz@ET)RF!!gzi+| z!xPeL@3c$0JV$AYP_m9A-MxoG;7WC$P;JpCrm035`*;CNH5IfOrnfcjtY2+-GZH}) zV9A~xq1T~))CG4(CuP_-s(OJ9qcLI+Llk|VpDbq;(UAQ-m#yLX0lQ(uR7sj*`-_;R zFw0m)wX_n#*eWd}>?xHRebi6Y<aC(f8|)m4+Q#X{7wfA?NV8B!RBeh2kkUX+!<pqY zGWVX<LWxKfu^_@S1v0?T9##`(4vODXnf$Ye0nA%FN(s+{Mg(SDp(pj$uSaw}M=lYy zf+DIpm6)q)91gQ8MWN|oHkY!PPS@P>#O*_=BmCaQ(8EBgOJQW{YY@@3R2p#Ol7^s& z?h{Qzoz03>)(wH(uZAj`B)t%>p7>Oq9%jujn&yY$A?@|IXqxn<^ud_~Li!>^RvPVC z$jWc*zl6tGD@-l3?wRyd>t<-x0wz{Pz}d{;_?f#Ssg@Va!0PK<l(jLsJ$@4rAV=$A zm`a^DVP+yrtBr=~<qN}=0rF}GO@<3h*vMsw(Zoyas4Whu-O}=<L~6v~fuWo=0bsEr zpvffPU5H9opn&RK9aK>!Ow|tGT-Gj|3@|>7o30qm8?<D5=p`t~MjeZd7DGRfS@`xq zo2d}@nz0o{cN+o=Yc@o+-GaPIehO<8PM0vI6k48>H$uGtE8(wGs+2i6NeY{!;RmA) zel_6-?|QP_>?dXnOeNb#vJJM2c;$O(iqUDfHJs+f9lJ4+RN<cVK-O2^7ZrI_J+tFa zqh^!D7oO%<`>CJ<P6%pU_%s<>*upTl1lZ5{p_`b)IO{|%Xm(_#Xa+S0h$8vEA|MVQ zD@Uo`R{CW(op=`7;q@cepoG{y)x6{j5Q1fzYVJhI`6ll{zf6)$mTL@<D$*v(%PbCI zAao+9k2*{IV^SKG@zJC-9|T)$K!l;dlqt(6thk(uVXo!vq%|f*IBAr+Gg+%*H3PnL z5l@3c@-?CkIJ}f0cXI}cj8Ju%_6}X>+~1Ge%kC1lb3PqOv@Wl+X-IpK&?a&SqKcG0 z5rA==&QAJrc*^r5i^$Y8X}!56hueA@Jx{o?7JC#{{JsuN6b%u)o}+>YuY@<Pyvl<0 zhut`~l+&%>L^d^A=nOZW9rAI;5i)Ra&SfQ6RKvz^cNut`&Kg)8CNkoez9+RM9s(~Y zh~^gtQobiu?gO1$4A-RQTT=P7Oui<SOG9wXNn6WlLOFhd^X$>7?R5Nv4E<-fZ@>Hc GSN{(SH)r<% diff --git a/mkdocs.yml b/mkdocs.yml index ad33545d..020180e7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,6 +15,7 @@ nav: - Пример работы Ñ ÐºÐ»Ð°Ñтером Picodata: tutorial.md - Справочные материалы: - ОпиÑание параметров запуÑка Picodata: cli.md + - ГлоÑÑарий оÑновных терминов и определений: sbroad/sql_glossary - Поддерживаемые функции Ñтандарта SQL: sbroad/sql_reference.md -- GitLab From 9c9b46e91aa8ffcf4bcad188136e8cc4f898edd5 Mon Sep 17 00:00:00 2001 From: "a.tolstoy" <a.tolstoy@picodata.io> Date: Tue, 28 Mar 2023 15:35:52 +0300 Subject: [PATCH 2/2] docs: follow-up fixes for preface and glossary --- docs/sbroad/sql_glossary.md | 2 +- docs/sbroad/sql_index.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/sbroad/sql_glossary.md b/docs/sbroad/sql_glossary.md index 880f78a7..bdb4545e 100644 --- a/docs/sbroad/sql_glossary.md +++ b/docs/sbroad/sql_glossary.md @@ -20,7 +20,7 @@ **Фактор репликации** — чиÑло инÑтанÑов в репликаÑете. -**РепликаÑет** — буквально «набор реплик», ÑкземплÑров приложений, в которых хранитÑÑ Ð¾Ð´Ð¸Ð½ и тот же набор реплицированных данных. Ð’ завиÑимоÑти от роли реплик, в Picodata еÑÑ‚ÑŒ реплики _active (RW)_ и _standby (RO)_. +**РепликаÑет** — буквально «набор реплик», ÑкземплÑров приложений, в которых хранитÑÑ Ð¾Ð´Ð¸Ð½ и тот же набор реплицированных данных. Ð’ завиÑимоÑти от роли реплик, в Picodata еÑÑ‚ÑŒ реплики _active (RW)_ и _standby (RO)_. РепликаÑет также называют _отказоуÑтойчивой группой_. **Failure domain** — букв. _"домен отказа"_. Термин обозначает зону доÑтупноÑти инÑтанÑа Picodata, Ñ‚.е. признак физичеÑкого Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ñервера, на котором запущен инÑÑ‚Ð°Ð½Ñ (географичеÑкий регион, датацентр, Ñтойка и Ñ‚.д.). Зона доÑтупноÑти иÑпользуетÑÑ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы в один репликаÑет по возможноÑти попадали инÑтанÑÑ‹ Ñ Ñ€Ð°Ð·Ð½Ñ‹Ð¼ размещением, Ð¿Ð¾Ð²Ñ‹ÑˆÐ°Ñ Ñ‚Ð°ÐºÐ¸Ð¼ образом отказоуÑтойчивоÑÑ‚ÑŒ как отдельного репликаÑета, так и клаÑтера в целом. diff --git a/docs/sbroad/sql_index.md b/docs/sbroad/sql_index.md index 389bb8e3..d0d0e2a8 100644 --- a/docs/sbroad/sql_index.md +++ b/docs/sbroad/sql_index.md @@ -10,8 +10,7 @@ Picodata включает в ÑÐµÐ±Ñ Ð±Ð¾Ð³Ð°Ñ‚ÑƒÑŽ функционально ## ОÑновные понÑÑ‚Ð¸Ñ SQL -СУБД Tarantool в Picodata реализует поддержку [Ñтандарта SQL](../sql_reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов). Ðто означает, что Ñто ÑиÑтема ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, предÑтавленными в виде отношений (relation). Отношение — Ñто математичеÑки точное обозначение таблицы. -РелÑÑ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных ÑоÑтоит из таблиц, и у нее еÑÑ‚ÑŒ две ключевые характериÑтики: +СУБД Tarantool в Picodata реализует поддержку [Ñтандарта SQL](../sql_reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов). Ðто означает, что Ñто ÑиÑтема ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸, предÑтавленными в виде таблиц. У такой ÑиÑтемы еÑÑ‚ÑŒ две ключевые характериÑтики: * Данные раÑпределены по ÑмыÑлу по таблицам * Между таблицами еÑÑ‚ÑŒ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ -- GitLab