Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
docs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
core
docs
Commits
4e3fe28c
Commit
4e3fe28c
authored
1 year ago
by
Alexander Tolstoy
Committed by
Alexander Tolstoy
1 year ago
Browse files
Options
Downloads
Patches
Plain Diff
describe global tables for sql
parent
0f93f40e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!168
describe global tables for sql
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/sql/queries.md
+12
-1
12 additions, 1 deletion
docs/sql/queries.md
docs/tutorial_data.md
+36
-19
36 additions, 19 deletions
docs/tutorial_data.md
with
48 additions
and
20 deletions
docs/sql/queries.md
+
12
−
1
View file @
4e3fe28c
...
...
@@ -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-деревья
...
...
This diff is collapsed.
Click to expand it.
docs/tutorial_data.md
+
36
−
19
View file @
4e3fe28c
# Работа с данными 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`
:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment