Skip to content

Commit

Permalink
style
Browse files Browse the repository at this point in the history
  • Loading branch information
rekby committed Jan 16, 2025
1 parent 45568b5 commit 4601105
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 12 deletions.
10 changes: 2 additions & 8 deletions ydb/docs/ru/core/dev/example-app/go/_includes/run_custom.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,9 @@

Выполните команду по следующему образцу:

<<<<<<< HEAD
``` bash
( export <auth_mode_var>="<auth_mode_value>" && cd ydb-go-sdk/examples && \
go run . -ydb="<endpoint>/<database>" )
=======
```bash
( export <auth_mode_var>="<auth_mode_value>" && cd ydb-go-examples && \
( export <auth_mode_var>="<auth_mode_value>" && cd ydb-go-sdk/examples && \
go run ./basic -ydb="<endpoint>?database=<database>" )
>>>>>>> main
```

где
Expand All @@ -25,6 +19,6 @@ go run ./basic -ydb="<endpoint>?database=<database>" )
Например:

```bash
( export YDB_ACCESS_TOKEN_CREDENTIALS="t1.9euelZqOnJuJlc..." && cd ydb-go-examples && \
( export YDB_ACCESS_TOKEN_CREDENTIALS="t1.9euelZqOnJuJlc..." && cd ydb-go-sdk/examples && \
go run ./basic -ydb="grpcs://ydb.example.com:2135/somepath/somelocation" )
```
8 changes: 4 additions & 4 deletions ydb/docs/ru/core/dev/example-app/go/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
Создайте рабочую директорию и выполните в ней из командной строки команду клонирования репозитория с GitHub:

``` bash
git clone git@github.com:ydb-platform/ydb-go-sdk.git
git clone https://github.com/ydb-platform/ydb-go-sdk.git
```

Далее из этой же рабочей директории выполните команду запуска тестового приложения, которая будет отличаться в зависимости от того, к какой базе данных необходимо подключиться.
Expand Down Expand Up @@ -82,7 +82,7 @@ defer db.Close(ctx)
* `db.Scheme()` - клиент scheme-сервиса
* `db.Operation()` - клиент operation-сервиса

Для работы таблицами YDB следует использовать клиента query-сервиса `db.Query()`. Выполнение `DDL`, `DML`, `DQL` и `TCL` запросов в таблицы YDB осуществляется на специальных объекта - сессиях `query.Session`. Сессии YDB хранят контекст выполнения запросов (например, Prepared statements и транзакции) и позволяют осуществлять серверную балансировать балансировку нагрузки на узлы кластера YDB.
Для работы таблицами YDB следует использовать клиента query-сервиса `db.Query()`. Выполнение запросов в таблицы YDB осуществляется на специальных объектах - сессиях `query.Session`. Сессии YDB хранят контекст выполнения запросов (например, Prepared statements и транзакции) и позволяют осуществлять серверную балансировать балансировку нагрузки на узлы кластера YDB.

Клиент query-сервиса предоставляет `API` для выполнения запросов над таблицами:

Expand Down Expand Up @@ -149,7 +149,7 @@ if err != nil {
}
```

Чтобы вычитать данные строки YDB `query.Row` используются методы `query.Row.Scan` (по порядку колонок), `query.Row.ScanNamed` (по названию колонки) и `query.Row.ScanStruct` (по названиям колонок, зафиксированных к тегах структуры):
Чтобы вычитать данные строки YDB `query.Row` используются методы `query.Row.Scan` (по порядку колонок), `query.Row.ScanNamed` (по названию колонки) или `query.Row.ScanStruct` (по названиям колонок, зафиксированных к тегах структуры):

```go
var info struct {
Expand All @@ -165,7 +165,7 @@ if err != nil {

{% include [scan_query.md](../_includes/steps/08_scan_query.md) %}

Если ожидаемое количество данных от запроса велико, не следует пытаться загружать их полностью в оперативную память с помощью вспомогательных методов клиента Query-сервиса, таких как `query.Client.Query` и `query.Client.QueryResultSet`. Эти методы отдают уже материализованный результат (весь результат запроса прочитан с сервера в локальную память). При большом количестве возвращаемых строк материализация результата может привести к известной проблеме "OOM killed".
Если ожидаемое количество данных от запроса велико, не следует пытаться загружать их полностью в оперативную память с помощью вспомогательных методов клиента Query-сервиса, таких как `query.Client.Query` и `query.Client.QueryResultSet`. Эти методы отдают уже материализованный результат (весь результат запроса прочитан с сервера в локальную память). При большом количестве возвращаемых строк материализация результата может привести к известной проблеме [OOM killed](https://en.wikipedia.org/wiki/Out_of_memory).

Для запросов, предполагающих большое количество данных, следует пользоваться методами сессии YDB `query.TxActor.Query` или `query.TxActor.QueryResultSet`, которые отдают "потоковый" результат без материализации. Сессия `query.Session` доступна только из метода `query.Client.Do`, реализующего механизмы выполнения повторных попыток при ошибках. Нужно учитывать, что чтение может быть прервано в любой момент, и в таком случае весь процесс выполнения запроса начнётся заново. Т.е. функция, переданная в `Do` может вызываться больше одного раза.

Expand Down

0 comments on commit 4601105

Please sign in to comment.