1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# USE
Указать «базу данных». Как правило, в её роли выступает один из кластеров. Это указание будет использоваться по умолчанию для поиска таблиц в тех случаях, где база данных не указана явно.
Если в запросе не используется `USE`, то кластер следует указывать в начале пути к таблице в формате ``` cluster.`path/to/table` ```, например ``` cluster.`home/yql/test` ```. Backticks используются для автоматического экранирования спецсимволов, в данном случае слешей.
Обычно имя кластера указывается непосредственно, но есть возможность указать его в виде выражения. В частности, это позволит использовать параметры, объявленные через [DECLARE](declare.md).
В этом случае для `USE` должна использоваться запись ```USE yt:$cluster_name```, где `$cluster_name` - [именованное выражение](expressions.md#named-nodes) типа `String`.
Либо можно указывать кластер прямо в начале пути к таблице в формате ``` yt:$cluster_name.`path/to/table` ```.
Сам `USE` при этом можно использовать внутри [действий](action.md) или [шаблонов подзапросов](subquery.md). Значение текущего кластера наследуется на объявления вложенных действий или подзапросов. Область влияния `USE` прекращается по окончании действия или шаблона подзапроса, в котором оно объявлено.
## Примеры
```yql
USE my_cluster;
```
{% note info "Примечание" %}
`USE` **не** гарантирует, что запрос обязательно будет выполнен именно на указанном кластере. Запрос может быть выполнен на другом кластере, если в нем не используются входные данные (например, `USE foo; SELECT 2 + 2;` ) или если указан полный путь к таблице на другом кластере (например, `USE foo; SELECT * FROM bar.``path/to/table``;`).
{% endnote %}
|