From 46be594b48e17f6a40c679afe6ac8efdc3423204 Mon Sep 17 00:00:00 2001 From: DataUI VCS Robot Date: Thu, 27 May 2021 21:00:47 +0300 Subject: [PATCH] Release 27.05.2021 * DataLens: added instruction how to create indicator. * Managed Service for Elasticsearch: security groups support added. * Managed Service for Elasticsearch: cli instructions added. * Fixes and improvements. * Translations updated. --- en/managed-kubernetes/solutions/custom-dns.md | 182 ++++++ en/managed-kubernetes/toc.yaml | 2 + .../mes-tip-connecting-to-public-kibana.md | 8 +- ru/_includes/mdb/sg-rules-concept.md | 6 +- ru/cos/release-notes.md | 28 + .../chart/create-indicator-chart.md | 11 + ru/datalens/operations/index.md | 1 + ru/datalens/toc.yaml | 2 + ru/iam/concepts/authorization/access-key.md | 2 +- ru/managed-elasticsearch/concepts/index.md | 2 +- ru/managed-elasticsearch/concepts/network.md | 15 + .../operations/cluster-backups.md | 71 +++ .../operations/cluster-connect.md | 66 +- .../operations/cluster-create.md | 122 +++- .../operations/cluster-delete.md | 18 +- .../operations/cluster-hosts.md | 51 +- .../operations/cluster-list.md | 48 +- .../operations/cluster-stop.md | 28 + .../operations/cluster-update.md | 144 +++++ ru/managed-elasticsearch/operations/index.md | 4 +- .../operations/s3-access.md | 60 ++ ru/managed-elasticsearch/operations/update.md | 55 -- ru/managed-elasticsearch/quickstart.md | 15 +- ru/managed-elasticsearch/security/index.md | 2 +- ru/managed-elasticsearch/toc.yaml | 6 +- ru/solutions/dataplatform/index.md | 3 + ru/solutions/dataplatform/sync-postgresql.md | 172 +++++ ru/solutions/index.yaml | 3 + ru/solutions/toc.yaml | 6 + ru/ydb/_includes/create-db-via-console.md | 78 +-- ...ole.md => create-new-table-via-console.md} | 8 +- ru/ydb/_includes/note_sample_tables.md | 2 +- ru/ydb/_includes/run-app.md | 64 +- ru/ydb/concepts/index.md | 2 +- ru/ydb/concepts/ttl.md | 2 +- ru/ydb/maintenance/backup_and_recovery.md | 4 +- ru/ydb/operations/aws-cli/index.md | 15 - ru/ydb/operations/create_manage_database.md | 2 + ru/ydb/operations/get-query-plan.md | 2 +- ru/ydb/operations/ydb-cli/scheme-describe.md | 2 +- ru/ydb/pricing/serverless.md | 2 +- ru/ydb/quickstart/create-db.md | 8 + .../document-api}/aws-cli/cleanup.md | 2 +- .../document-api}/aws-cli/create-table.md | 2 +- .../document-api}/aws-cli/get-item.md | 2 +- .../quickstart/document-api/aws-cli/index.md | 34 + .../document-api}/aws-cli/put-item.md | 0 .../document-api}/aws-cli/query.md | 2 +- .../document-api}/aws-cli/update-item.md | 2 +- ru/ydb/quickstart/document-api/aws-http.md | 146 +++++ .../document-api}/aws-sdk/create-item.md | 0 .../document-api}/aws-sdk/create-table.md | 0 .../document-api}/aws-sdk/delete-item.md | 0 .../document-api}/aws-sdk/delete-table.md | 0 .../document-api}/aws-sdk/index.md | 28 +- .../document-api}/aws-sdk/load-data.md | 0 .../document-api}/aws-sdk/query-and-scan.md | 0 .../document-api}/aws-sdk/read-item.md | 0 .../document-api}/aws-sdk/update-item.md | 0 .../setup.md => document-api/aws-setup.md} | 130 ++-- ru/ydb/quickstart/examples-docapi.md | 307 --------- ru/ydb/quickstart/examples-ydb-cli.md | 317 ---------- ru/ydb/quickstart/examples-yql.md | 321 ---------- ru/ydb/quickstart/index.md | 21 +- ru/ydb/quickstart/launch-test-app.md | 29 - ru/ydb/quickstart/yql-api/ydb-cli.md | 585 ++++++++++++++++++ ru/ydb/quickstart/yql-api/ydb-sdk.md | 42 ++ ru/ydb/quickstart/yql-api/ydb-ui.md | 85 +++ ru/ydb/sdk/index.md | 2 +- ru/ydb/solutions/ydb_docker.md | 2 +- ru/ydb/toc.yaml | 96 ++- 71 files changed, 2175 insertions(+), 1304 deletions(-) create mode 100644 en/managed-kubernetes/solutions/custom-dns.md create mode 100644 ru/datalens/operations/chart/create-indicator-chart.md create mode 100644 ru/managed-elasticsearch/operations/cluster-backups.md create mode 100644 ru/managed-elasticsearch/operations/cluster-update.md create mode 100644 ru/managed-elasticsearch/operations/s3-access.md delete mode 100644 ru/managed-elasticsearch/operations/update.md create mode 100644 ru/solutions/dataplatform/index.md create mode 100644 ru/solutions/dataplatform/sync-postgresql.md rename ru/ydb/_includes/{create-schema-via-console.md => create-new-table-via-console.md} (73%) delete mode 100644 ru/ydb/operations/aws-cli/index.md rename ru/ydb/{operations => quickstart/document-api}/aws-cli/cleanup.md (99%) rename ru/ydb/{operations => quickstart/document-api}/aws-cli/create-table.md (99%) rename ru/ydb/{operations => quickstart/document-api}/aws-cli/get-item.md (98%) create mode 100644 ru/ydb/quickstart/document-api/aws-cli/index.md rename ru/ydb/{operations => quickstart/document-api}/aws-cli/put-item.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-cli/query.md (99%) rename ru/ydb/{operations => quickstart/document-api}/aws-cli/update-item.md (99%) create mode 100644 ru/ydb/quickstart/document-api/aws-http.md rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/create-item.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/create-table.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/delete-item.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/delete-table.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/index.md (54%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/load-data.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/query-and-scan.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/read-item.md (100%) rename ru/ydb/{operations => quickstart/document-api}/aws-sdk/update-item.md (100%) rename ru/ydb/quickstart/{aws-instrument/setup.md => document-api/aws-setup.md} (65%) delete mode 100644 ru/ydb/quickstart/examples-docapi.md delete mode 100644 ru/ydb/quickstart/examples-ydb-cli.md delete mode 100644 ru/ydb/quickstart/examples-yql.md delete mode 100644 ru/ydb/quickstart/launch-test-app.md create mode 100644 ru/ydb/quickstart/yql-api/ydb-cli.md create mode 100644 ru/ydb/quickstart/yql-api/ydb-sdk.md create mode 100644 ru/ydb/quickstart/yql-api/ydb-ui.md diff --git a/en/managed-kubernetes/solutions/custom-dns.md b/en/managed-kubernetes/solutions/custom-dns.md new file mode 100644 index 00000000000..bd9cecdd484 --- /dev/null +++ b/en/managed-kubernetes/solutions/custom-dns.md @@ -0,0 +1,182 @@ +# Integration with a corporate DNS zone + +To configure private enterprise DNS zone resolution in a {{ k8s }} cluster, follow the steps below: + +1. Set up a work environment. + + To run the use case, you will need a service account, a cloud network, and a subnet. You can use existing resources or create new ones. + + {% cut "How to create resources" %} + + 1. Create a [service account](../../iam/operations/sa/create.md) with the `editor` role. + 1. Create a [cloud network](../../vpc/operations/network-create.md). + 1. In the cloud network, create a [subnet](../../vpc/operations/subnet-create.md). + + {% endcut %} + +1. Configure the DNS server. + + In this scenario's examples, the DNS server has the address `10.129.0.3`, the name `ns.example.com`, and serves a zone called `example.com`. Your DNS servers can be part of {{ vpc-name }} or be accessible via a VPN or {{ interconnect-name }}. IP connectivity between the {{ k8s }} cluster nodes and the DNS servers is required. + +1. Create a {{ k8s }} cluster and a group of nodes. + + You can use an existing cluster and a group of {{ k8s }} nodes or create new ones. + + {% cut "How to create a {{ k8s}} cluster and a group of nodes" %} + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Create a {{ k8s }} cluster: + + ```bash + yc managed-kubernetes cluster create \ + --name custom-dns-cluster \ + --service-account-name \ + --node-service-account-name \ + --public-ip \ + --zone ru-central1-a \ + --network-name + ``` + + Execution result: + + ```bash + done (7m21s) + ... + ``` + + Create a node group: + + ```bash + yc managed-kubernetes node-group create \ + --name custom-dns-group \ + --cluster-name custom-dns-cluster \ + --location zone=ru-central1-b \ + --public-ip \ + --fixed-size 1 + ``` + + Execution result: + + ```bash + done (2m43s) + ... + ``` + + {% endcut %} + +1. Configure kubectl. + + To run commands for a {{ k8s }} cluster, install and configure the kubectl management console. + + {% cut "How to configure kubectl" %} + + Install the {{ k8s }} CLI [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl). + + Add the {{ k8s }} cluster credentials to the kubectl configuration file: + + ```bash + yc managed-kubernetes cluster get-credentials --external --name custom-dns-cluster + ``` + + Execution result: + + ```text + Context 'yc-custom-dns-cluster' was added as default to kubeconfig '/home//.kube/config'. + ... + ``` + + {% endcut %} + +1. Specify a corporate DNS zone. + + Create a `custom-zone.yaml` file with the following contents: + + ```yaml + kind: ConfigMap + apiVersion: v1 + metadata: + name: coredns-user + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: EnsureExists + data: + Corefile: | + # User can put their additional configurations here, for example: + example.com { + errors + cache 30 + forward . 10.129.0.3 + } + ``` + + Run the command: + + ```bash + kubectl replace -f custom-zone.yaml + ``` + + Execution result: + + ```text + configmap/coredns-user replaced + ``` + +1. Create a pod: + + ```bash + kubectl run jessie-dnsutils \ + --image=k8s.gcr.io/jessie-dnsutils \ + --restart=Never \ + --command sleep infinity + ``` + + Execution result: + + ```text + pod/jessie-dnsutils created + ``` + + View details of the pod created: + + ```bash + kubectl describe pod jessie-dnsutils + ``` + + Execution result: + + ```text + ... + Status: Running + ... + ``` + +1. Verify DNS integration. + + To check that your DNS zone is accessible to the {{ k8s }} cluster services, execute the `nslookup` command in a running container: + + ```bash + kubectl exec jessie-dnsutils -- nslookup ns.example.com + ``` + + Execution result: + + ```bash + Server: 10.96.128.2 + Address: 10.96.128.2#53 + Name: ns.example.com + Address: 10.129.0.3 + ``` + +1. Delete the resources created. + + To delete the {{ k8s }} cluster, service account, subnet, and network, run the following commands: + + ```bash + yc managed-kubernetes cluster delete --name custom-dns-cluster + yc iam service-account delete + yc vpc subnet delete + yc vpc network delete + ``` \ No newline at end of file diff --git a/en/managed-kubernetes/toc.yaml b/en/managed-kubernetes/toc.yaml index 9928f009d40..5b4108b81c8 100644 --- a/en/managed-kubernetes/toc.yaml +++ b/en/managed-kubernetes/toc.yaml @@ -69,6 +69,8 @@ items: href: solutions/ingress-cert-manager.md - name: Backup to Object Storage href: solutions/backup.md + - name: Integration with a corporate DNS zone + href: solutions/custom-dns.md - name: Concepts items: - name: Relationship between service resources diff --git a/ru/_includes/mdb/mes-tip-connecting-to-public-kibana.md b/ru/_includes/mdb/mes-tip-connecting-to-public-kibana.md index c6e58294b79..04fd913ad22 100644 --- a/ru/_includes/mdb/mes-tip-connecting-to-public-kibana.md +++ b/ru/_includes/mdb/mes-tip-connecting-to-public-kibana.md @@ -1,5 +1,5 @@ {% note tip %} - -Если нет возможности запросить публичный доступ к хостам (например, из соображений безопасности), то Kibana можно воспользоваться, настроив проксирование соединений через виртуальную машину в {{ compute-full-name}} , которая находится в той же [сети](../../vpc/concepts/network.md#network), что и кластер. Подробнее см. в разделе [{#T}](../../managed-elasticsearch/operations/cluster-connect.md). - -{% endnote %} \ No newline at end of file + +Kibana можно воспользоваться, даже если публичный доступ к хостам запросить невозможно (например, из соображений безопасности). Для этого настройте проксирование соединений через виртуальную машину в {{ compute-full-name }}, которая находится в той же [сети](../../vpc/concepts/network.md#network), что и кластер. Подробнее см. в разделе [{#T}](../../managed-elasticsearch/operations/cluster-connect.md). + +{% endnote %} diff --git a/ru/_includes/mdb/sg-rules-concept.md b/ru/_includes/mdb/sg-rules-concept.md index 65d9310d380..ba46c68ce58 100644 --- a/ru/_includes/mdb/sg-rules-concept.md +++ b/ru/_includes/mdb/sg-rules-concept.md @@ -1,9 +1,7 @@ Особенности работы с группами безопасности: -- Настройки групп безопасности влияют только на возможность подключения к кластеру. Они не влияют на функционирование кластеров: работу репликации, шардирования, возможность снятия резервных копий и другие возможности. - -- Даже если кластер и хост, с которого выполняется подключение, находятся в одной группе безопасности, подключение будет невозможно, если в этой группе не заданы правила, разрешающие прохождение трафика между этим хостом и кластером. +- Для подключения к кластеру необходимы правила, разрешающие прохождение трафика между ним и хостом, с которого выполняется подключение, даже если они находятся в одной группе безопасности. По умолчанию такие правила содержатся в группе безопасности, которая создается вместе с облачной сетью. Это правила `Self`, разрешающие неограниченное прохождение трафика внутри группы безопасности. - Однако такие правила по умолчанию содержатся в группе безопасности, которая добавляется автоматически при создании облачной сети. Это правила `Self`, разрешающие неограниченное прохождение трафика внутри группы. +- Настройки групп безопасности влияют только на возможность подключения к кластеру. Они не влияют на функционирование кластеров: работу репликации, шардирования, возможность снятия резервных копий и другие возможности. Подробнее см. в [документации Virtual Private Cloud](../../vpc/concepts/security-groups.md). diff --git a/ru/cos/release-notes.md b/ru/cos/release-notes.md index 2a8aa2ecac0..f3dee1e8d64 100644 --- a/ru/cos/release-notes.md +++ b/ru/cos/release-notes.md @@ -1,5 +1,33 @@ # Релизы COI +{% cut "Как узнать свою версию COI" %} + +* Чтобы узнать версию изнутри образа (для версии 2.0.4 и выше), выполните команду: + + ```bash + cat /etc/ycloud/image-info + ``` + + Результат выполнения команды: + + ``` + coi-version: 2.0.4 + ``` + +* Чтобы узнать версию в `description` (для версии 2.1.0 и выше), выполните команду: + + ```bash + yc compute image get --profile preprod --format json | jq -r '.description' + ``` + + Результат выполнения команды: + + ```bash + Container Optimized Image 2.1.0 + ``` + +{% endcut %} + ## Версия 2.1.0 {#latest-release} * Добавлена поддержка файловой системы XFS в [спецификации Docker Compose](concepts/index.md#compose-spec). diff --git a/ru/datalens/operations/chart/create-indicator-chart.md b/ru/datalens/operations/chart/create-indicator-chart.md new file mode 100644 index 00000000000..a1e7ebf9e90 --- /dev/null +++ b/ru/datalens/operations/chart/create-indicator-chart.md @@ -0,0 +1,11 @@ +# Создание индикатора + +Чтобы создать индикатор: +1. На главной странице сервиса {{ datalens-full-name }} нажмите **Создать чарт**. +1. В разделе **Датасет** выберите датасет для визуализации. Если у вас нет датасета, [создайте его](../dataset/create.md). +1. Выберите тип чарта **Индикатор**. +1. Перетащите измерение или показатель из датасета в секцию **Показатель**. Значение отобразится в виде числа. + +Дополнительно вы можете изменить размер и цвет индикатора: +1. В секции **Показатель** нажмите значок ![](../../../_assets/datalens/gear.svg). +1. В окне **Настройки индикатора** выберите размер, цвет и нажмите **Применить**. \ No newline at end of file diff --git a/ru/datalens/operations/index.md b/ru/datalens/operations/index.md index 9f8ddb8c33b..896c81a40f5 100644 --- a/ru/datalens/operations/index.md +++ b/ru/datalens/operations/index.md @@ -34,6 +34,7 @@ - [{#T}](chart/create-map-chart.md) - [{#T}](chart/create-table.md) - [{#T}](chart/create-pivot-table.md) +- [{#T}](chart/create-indicator-chart.md) - [{#T}](chart/publish.md) - [{#T}](chart/manage-access.md) diff --git a/ru/datalens/toc.yaml b/ru/datalens/toc.yaml index 4290fd7d46e..7eab906a421 100644 --- a/ru/datalens/toc.yaml +++ b/ru/datalens/toc.yaml @@ -89,6 +89,8 @@ items: href: operations/chart/create-table.md - name: Создание сводной таблицы href: operations/chart/create-pivot-table.md + - name: Создание индикатора + href: operations/chart/create-indicator-chart.md - name: Публикация чарта href: operations/chart/publish.md - name: Управление доступом к чарту diff --git a/ru/iam/concepts/authorization/access-key.md b/ru/iam/concepts/authorization/access-key.md index 6b1bced15a4..a69e2958385 100644 --- a/ru/iam/concepts/authorization/access-key.md +++ b/ru/iam/concepts/authorization/access-key.md @@ -12,7 +12,7 @@ _Статические ключи доступа_ — секретный клю * [{{ message-queue-name }}](/docs/message-queue/) -* [{{ ydb-name }}](../../../ydb/quickstart/aws-instrument/setup.md) +* [{{ ydb-name }}](../../../ydb/quickstart/document-api/aws-setup.md) #### См. также {#see-also} diff --git a/ru/managed-elasticsearch/concepts/index.md b/ru/managed-elasticsearch/concepts/index.md index 5d9e9f577ee..f8161ad3895 100644 --- a/ru/managed-elasticsearch/concepts/index.md +++ b/ru/managed-elasticsearch/concepts/index.md @@ -17,7 +17,7 @@ - _Пароль пользователя_ `admin`. {% include [mes-superuser](../../_includes/mdb/mes-superuser.md)%} - + - _Версию_ {{ ES }}. - _Редакцию_ {{ ES }}. Список доступных редакций и поддерживаемых ими возможностей см. в разделе [{#T}](es-editions.md). diff --git a/ru/managed-elasticsearch/concepts/network.md b/ru/managed-elasticsearch/concepts/network.md index a23e2fe7ffc..017117abbed 100644 --- a/ru/managed-elasticsearch/concepts/network.md +++ b/ru/managed-elasticsearch/concepts/network.md @@ -2,6 +2,7 @@ При создании кластера вы можете: + - задать сеть для самого кластера; - задать подсети для каждого из хостов кластера; - запросить публичный IP-адрес для доступа к хостам кластера с [ролью _Data node_](index.md) извне {{ yandex-cloud }}. @@ -22,3 +23,17 @@ FQDN можно использовать для доступа к хосту в Запросить публичный адрес после создания хоста невозможно, но вы можете заменить какой-либо из имеющихся хостов на новый хост с публичным адресом. При удалении хоста с публичным FQDN соответствующий этому имени IP-адрес отзывается. + +## Группы безопасности {#security-groups} + +Для групп безопасности действует принцип «весь трафик, который не разрешен, запрещен». Поэтому правила групп безопасности облачной сети кластера могут препятствовать подключению к кластеру, если ему назначена одна или несколько групп. + +Например, пусть хосту с ролью _Data Node_ назначен публичный IP-адрес. Если в правилах групп безопасности нет разрешения на подключение к нему из интернета через порт `443`, подключиться к веб-интерфейсу Kibana не получится. Также нельзя будет работать с хостом, для которого в правилах групп безопасности нет явного разрешения для входящего трафика через порт `9200`. + +{% note tip %} + +Если вы подключаетесь к кластеру из облачной сети, в которой он находится, [настройте](../operations/cluster-connect.md#configuring-security-groups) группы безопасности и для кластера, и для хоста, с которого выполняется подключение. + +{% endnote %} + +{% include [sg-rules-concept](../../_includes/mdb/sg-rules-concept.md) %} diff --git a/ru/managed-elasticsearch/operations/cluster-backups.md b/ru/managed-elasticsearch/operations/cluster-backups.md new file mode 100644 index 00000000000..5a6890abbdd --- /dev/null +++ b/ru/managed-elasticsearch/operations/cluster-backups.md @@ -0,0 +1,71 @@ +# Управление резервными копиями + +Сервис {{ mes-name }} позволяет использовать механизм [снапшотов](https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html) {{ ES }} для управления резервными копиями данных. Для работы со снапшотами используется [публичный API {{ ES }}](https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore-apis.html), а для их хранения — бакет в {{ objstorage-name }}. + + +## Получить список резервных копий {#list-backups} + +1. Найдите в списке репозиториев {{ ES }} тот, который содержит в себе резервные копии в виде снапшотов: + + ```http + GET https://admin:<пароль>@:9200/_snapshot/_all + ``` + + Если нужного репозитория нет в списке — [подключите его](./s3-access.md). + +1. Получите список снапшотов в репозитории: + + ```http + GET https://admin:<пароль>@:9200/_snapshot/<репозиторий>/_all + ``` + + Каждой резервной копии соответствует один снапшот. + + +## Создать резервную копию {#create-backup} + +1. Найдите в списке репозиториев {{ ES }} тот, в котором нужно создать резервную копию в виде снапшота: + + ```http + GET https://admin:<пароль>@:9200/_snapshot/_all + ``` + + Если нужного репозитория нет в списке — [подключите его](./s3-access.md). + +1. [Создайте снапшот](https://www.elastic.co/guide/en/elasticsearch/reference/current/create-snapshot-api.html) нужных данных или целого кластера в выбранном репозитории: + + ```http + PUT https://admin:<пароль>@:9200/_snapshot/<репозиторий>/<снапшот> + ``` + +## Восстановить кластер из резервной копии {#restore} + +{% note warning %} + +При восстановлении из снапшотов действуют следующие ограничения: + +* Версия {{ ES }} в кластере должна совпадать с версией {{ ES }}, в которой был сделан снапшот, или быть новее. +* Для восстановления индексов необходимо, чтобы мажорная версия {{ ES }} в кластере была не больше чем на единицу старше мажорной версии {{ ES }}, в которой сделан снапшот: индексы, созданные в версии 5.0, нельзя восстановить в версии 7.0. + +{% endnote %} + +1. [Создайте новый кластер {{ ES }}](./cluster-create.md) в нужной конфигурации, но не наполняйте его данными. + + При создании кластера выберите: + + * Количество и класс хостов, размер и тип хранилища исходя из размера снапшота и требований к быстродействию. При необходимости [повысьте класс хостов](./cluster-update.md#change-resource-preset) или [увеличьте размер хранилища кластера](./cluster-update.md#change-disk-size). + + * Версию {{ ES }}, в которой был создан снапшот, или более новую. + +1. Закройте открытые индексы с помощью [{{ES}} API](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-close.html): + + ```http + POST: https://admin:<пароль>@:9200/<индекс>/_close + ``` + + Для восстановления всего кластера закройте все открытые индексы. Для восстановления отдельных индексов закройте только их. + +1. [Получите список резервных копий](#list-backups) и найдите нужный снапшот. +1. [Запустите операцию восстановления](https://www.elastic.co/guide/en/elasticsearch/reference/current/restore-snapshot-api.html) из нужного снапшота всего кластера или отдельных индексов и потоков данных. + +Подробнее о восстановлении из снапшотов см. в [документации {{ ES }}](https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshots-restore-snapshot.html). diff --git a/ru/managed-elasticsearch/operations/cluster-connect.md b/ru/managed-elasticsearch/operations/cluster-connect.md index 1de65e2f911..952d9b49190 100644 --- a/ru/managed-elasticsearch/operations/cluster-connect.md +++ b/ru/managed-elasticsearch/operations/cluster-connect.md @@ -7,6 +7,70 @@ Вне зависимости от способа подключения, {{ mes-name }} поддерживает только соединения с [SSL-сертификатом](#configuring-an-ssl-certificate) к хостам кластера. +## Настройка групп безопасности {#configuring-security-groups} + +[Группы безопасности](../../vpc/concepts/security-groups.md) могут препятствовать подключению к кластеру. В этом случае внесите изменения в правила групп. + +Настройки правил будут различаться в зависимости от выбранного способа подключения: + +{% list tabs %} + +- Через интернет + + [Настройте все группы безопасности](../../vpc/operations/security-group-update.md#add-rule) кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порты 443 (Kibana) и 9200 ({{ ES }}). Для этого создайте следующие правила для входящего трафика: + + - протокол: `TCP`; + - диапазон портов: `443`, `9200`; + - тип источника: `CIDR`; + - источник: `0.0.0.0/0`. + + На каждый порт создается отдельное правило. + +- С ВМ в Облаке + + 1. [Настройте все группы безопасности](../../vpc/operations/security-group-update.md#add-rule) кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порты 443 (Kibana) и 9200 ({{ ES }}). Для этого создайте в этих группах следующие правила для входящего трафика: + + - протокол: `TCP`; + - диапазон портов: `443`, `9200`; + - тип источника: `Группа безопасности`; + - источник: группа безопасности, в которой находится ВМ. Если она совпадает с настраиваемой группой, то укажите **Текущая**. + + На каждый порт создается отдельное правило. + + 1. [Настройте все группы безопасности](../../vpc/operations/security-group-update.md#add-rule), в которых находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ней и хостами кластера. + + Пример правил для ВМ: + + - Для входящего трафика: + + - протокол: `TCP`; + - диапазон портов: `22`, `443`, `9200`; + - тип источника: `CIDR`; + - источник: `0.0.0.0/0`. + + На каждый порт создается отдельное правило. + + - Для исходящего трафика: + + - протокол: `Any`; + - диапазон портов: `0-65535`; + - тип назначения: `CIDR`; + - назначение: `0.0.0.0/0`. + + Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать сертификаты и утилиты, необходимые для подключения к кластеру. + +{% endlist %} + +{% note info %} + +Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях. + +Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера. При неполных или некорректных настройках групп безопасности можно потерять доступ к кластеру. + +{% endnote %} + +Подробнее о группах безопасности см. в разделе [{#T}](../concepts/network.md#security-groups). + ## Настройка SSL-сертификата {#configuring-an-ssl-certificate} Подготовить SSL-сертификат можно так: @@ -33,7 +97,7 @@ chmod 0600 ~/.elasticsearch/root.crt {% include [conn-strings-environment](../../_includes/mdb/mes-conn-strings-env.md) %} -Перед подключением [подготовьте сертификат](#configuring-an-ssl-certificate). В этих примерах предполагается, что сертификат `root.crt` расположен в директории `/home/<домашняя директория>/.elasticsearch/`. +Перед подключением [подготовьте сертификат](#configuring-an-ssl-certificate). В этих примерах предполагается, что сертификат `root.crt` расположен в директории `/home/<домашняя директория>/.elasticsearch/`. Для подключения нужно использовать имя пользователя и пароль, которые были заданы при [создании кластера](cluster-create.md#create-cluster). diff --git a/ru/managed-elasticsearch/operations/cluster-create.md b/ru/managed-elasticsearch/operations/cluster-create.md index 3515e78cbdd..b0047e538a4 100644 --- a/ru/managed-elasticsearch/operations/cluster-create.md +++ b/ru/managed-elasticsearch/operations/cluster-create.md @@ -8,7 +8,7 @@ * При использовании сетевого хранилища: * Если выбрано **стандартное** или **быстрое сетевое хранилище**, вы можете добавить любое количество хостов в пределах [текущей квоты](../concepts/limits.md). * Если выбрано **нереплицируемое сетевое хранилище**, вы можете создать кластер из трех или более хостов (минимум три хоста необходимо, чтобы обеспечить отказоустойчивость). - + После создания кластера в него можно добавить дополнительные хосты, если для этого достаточно [ресурсов каталога](../concepts/limits.md). ## Создать кластер {#create-cluster} @@ -29,11 +29,11 @@ 1. Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно): - `PRODUCTION` — для стабильных версий ваших приложений. - `PRESTABLE` — для тестирования, в том числе самого сервиса {{ mes-name }}. В Prestable-окружении раньше появляются новая функциональность, улучшения и исправления ошибок. При этом не все обновления обеспечивают обратную совместимость. - 1. Выберите версию {{ ES }}. На текущий момент поддерживается версия `7.6`. - 1. В блоке **Сетевые настройки** выберите [сеть](../../vpc/concepts/network.md). + 1. Выберите версию {{ ES }}. Поддерживаются версии `7.6` и `7.10`. + 1. В блоке **Сетевые настройки** выберите облачную сеть для размещения кластера и группы безопасности для сетевого трафика кластера. Может потребоваться дополнительная [настройка групп безопасности](cluster-connect.md#configuring-security-groups) для того, чтобы можно было подключаться к кластеру. 1. В блоке **Пользователь** укажите пароль для пользователя `admin`. - {% include [mes-superuser](../../_includes/mdb/mes-superuser.md)%} + {% include [mes-superuser](../../_includes/mdb/mes-superuser.md) %} 1. Задайте конфигурацию хостов с ролью _Data node_, выбрав вкладку **Data node**: 1. В блоке **Класс хоста** выберите платформу, тип хостов и класс хостов. @@ -46,38 +46,84 @@ При выборе типа хранилища обратите внимание, что: * Размер локального хранилища можно менять только с шагом 100 ГБ. * Размер нереплицируемого сетевого хранилища можно менять только с шагом 93 ГБ. - + * Выберите объем хранилища, который будет использоваться для данных. 1. В блоке **Хосты** укажите конфигурацию хостов, создаваемых вместе с кластером: 1. Чтобы добавить хост, нажмите кнопку **Добавить хост**. 1. Чтобы изменить добавленный хост, наведите курсор на строку хоста и нажмите значок ![image](../../_assets/pencil.svg). - При изменении хоста можно: {#change-data-node-settings} - 1. Выбрать зону доступности и подсеть. - 1. Включить публичный доступ. Если для хоста {{ ES }} с ролью _Data node_ включен публичный доступ, то вы сможете подключиться к этому хосту {{ ES }} или расположенной на нем Kibana через интернет. Подробнее см. в разделе [{#T}](cluster-connect.md). + При изменении хоста можно: {#change-data-node-settings} + + 1. Выбрать зону доступности и подсеть. + 1. Включить публичный доступ. Если для хоста {{ ES }} с ролью _Data node_ включен публичный доступ, то вы сможете подключиться к этому хосту {{ ES }} или расположенной на нем Kibana через интернет. Подробнее см. в разделе [{#T}](cluster-connect.md). + + {% include [mes-tip-public-kibana](../../_includes/mdb/mes-tip-connecting-to-public-kibana.md) %} - {% include [mes-tip-public-kibana](../../_includes/mdb/mes-tip-connecting-to-public-kibana.md) %} - - При настройке параметров хостов обратите внимание, что если в блоке **Хранилище** выбран `local-ssd` или `network-ssd-nonreplicated`, то необходимо добавить не менее трех хостов в кластер. + При настройке параметров хостов обратите внимание, что если в блоке **Хранилище** выбран `local-ssd` или `network-ssd-nonreplicated`, то необходимо добавить не менее трех хостов в кластер. 1. При необходимости задайте конфигурацию хостов с ролью _Master node_, выбрав вкладку **Master node**: + 1. В блоке **Класс хоста** выберите платформу, тип хостов и класс хостов. 1. В блоке **Хранилище** настройте хранилище по аналогии с хостами с ролью _Data node_. 1. В блоке **Хосты** нажмите кнопку **Добавить хосты**. Будут добавлены три хоста. Чтобы изменить один из добавленных хостов, наведите курсор на строку хоста и нажмите значок ![image](../../_assets/pencil.svg). - При изменении хоста можно: {#change-master-node-settings} - 1. Выбрать зону доступности и подсеть. - 1. Включить публичный доступ. + При изменении хоста можно: {#change-master-node-settings} + + 1. Выбрать зону доступности и подсеть. + 1. Включить публичный доступ. {% note tip %} - Не рекомендуется включать публичный доступ для хостов с ролью _Master node_. Изменяйте эту настройку только если вы точно знаете, что хотите сделать. + Не рекомендуется включать публичный доступ для хостов с ролью _Master node_, т. к. это может быть небезопасно. {% endnote %} 1. Нажмите кнопку **Создать**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы создать кластер: + + 1. Проверьте, есть ли в каталоге подсети для хостов кластера: + + ```bash + yc vpc subnet list + ``` + + Если ни одной подсети в каталоге нет, [создайте нужные подсети](../../vpc/operations/subnet-create.md) в сервисе {{ vpc-short-name }}. + + 1. Посмотрите описание команды CLI для создания кластера: + + ```bash + {{ yc-mdb-es }} cluster create --help + ``` + + 1. Укажите параметры кластера в команде создания (в примере приведены не все параметры): + + ```bash + {{ yc-mdb-es }} cluster create \ + --name <имя кластера> \ + --environment <окружение: prestable или production> \ + --network-name <имя сети> \ + --host zone-id=<зона доступности>,subnet-id=<идентификатор подсети>,assign-public-ip=<публичный доступ>,type=<тип хоста: datanode или masternode> \ + --datanode-resource-preset <класс хостов c ролью DataNode> \ + --datanode-disk-size <размер хранилища в гигабайтах для хостов с ролью DataNode> \ + --datanode-disk-type <тип хранилища для хостов с ролью DataNode> \ + --masternode-resource-preset <класс хостов с ролью MasterNode> \ + --masternode-disk-size <размер хранилища в гигабайтах для хостов с ролью MasterNode> \ + --masternode-disk-type <тип хранилища для хостов с ролью MasterNode> \ + --security-group-ids <список идентификаторов групп безопасности> \ + --version <версия {{ ES }}> \ + --admin-password <пароль пользователя admin> + ``` + + Идентификатор подсети `subnet-id` необходимо указывать, если в выбранной зоне доступности создано 2 и больше подсетей. + - API Чтобы создать кластер, воспользуйтесь методом API `create` и передайте в запросе: @@ -88,5 +134,51 @@ - Класс хостов с ролью _Data node_ в параметре `configSpec.elasticsearchSpec.dataNode.resources`. - Конфигурацию хостов кластера в одном или нескольких параметрах `hostSpecs`. - Идентификатор сети в параметре `networkId`. + - Идентификаторы групп безопасности в параметре `securityGroupIds`. + +{% endlist %} + +{% note warning %} + +Если вы указали идентификаторы групп безопасности при создании кластера, то для подключения к нему может потребоваться дополнительная [настройка групп безопасности](cluster-connect.md#configuring-security-groups). + +{% endnote %} + +## Примеры {#examples} + +### Создание кластера с одним хостом {#creating-a-single-host-cluster} + +{% list tabs %} + +- CLI + + Чтобы создать кластер с одним хостом, передайте один параметр `--host`. + + Допустим, нужно создать {{ ES }}-кластер со следующими характеристиками: + + - С именем `my-es-clstr`. + - Версии `7.10`. + - В окружении `PRODUCTION`. + - В сети `default`. + - В группе безопасности с идентификатором `enpp2s8l3irhk5eromd7`. + - С одним публично доступным хостом с ролью _Data node_ класса `{{ host-class }}` в подсети `{{ subnet-id }}`, в зоне доступности `{{ zone-id }}`. + - С быстрым сетевым хранилищем (`{{ disk-type-example }}`) объемом 20 ГБ. + - С паролем `esadminpwd` для пользователя `admin`. + + Запустите следующую команду: + + ```bash + {{ yc-mdb-es }} cluster create \ + --name my-es-clstr \ + --environment production \ + --network-name default \ + --host zone-id={{ zone-id }},assign-public-ip=true,type=datanode \ + --datanode-resource-preset {{ host-class }} \ + --datanode-disk-type={{ disk-type-example }} \ + --datanode-disk-size=20 \ + --admin-password=esadminpwd \ + --security-group-ids enpp2s8l3irhk5eromd7 \ + --version 7.10 + ``` {% endlist %} diff --git a/ru/managed-elasticsearch/operations/cluster-delete.md b/ru/managed-elasticsearch/operations/cluster-delete.md index 2489b4affe4..8f001b22f4d 100644 --- a/ru/managed-elasticsearch/operations/cluster-delete.md +++ b/ru/managed-elasticsearch/operations/cluster-delete.md @@ -11,10 +11,24 @@ 1. Нажмите значок ![image](../../_assets/options.svg) для нужного кластера и выберите пункт **Удалить кластер**. 1. Подтвердите удаление кластера и нажмите кнопку **Удалить**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы удалить кластер, выполните команду: + + ```bash + {{ yc-mdb-es }} cluster delete <идентификатор или имя кластера> + ``` + + Идентификатор и имя кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Чтобы удалить кластер, воспользуйтесь методом API `delete`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. Чтобы узнать идентификатор кластера, [получите список кластеров в каталоге](cluster-list.md#list-clusters). - -{% endlist %} + +{% endlist %} diff --git a/ru/managed-elasticsearch/operations/cluster-hosts.md b/ru/managed-elasticsearch/operations/cluster-hosts.md index a2b8d367aa9..1931b0d0c37 100644 --- a/ru/managed-elasticsearch/operations/cluster-hosts.md +++ b/ru/managed-elasticsearch/operations/cluster-hosts.md @@ -17,6 +17,20 @@ 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. 1. Нажмите на имя нужного кластера, затем выберите вкладку **Хосты**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы получить список хостов в кластере, выполните команду: + + ```bash + {{ yc-mdb-es }} host list --cluster-name <имя кластера> + ``` + + Имя кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Воспользуйтесь методом API `listHosts`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. @@ -25,7 +39,6 @@ {% endlist %} - ## Добавить хосты в кластер {#add-hosts} {% list tabs %} @@ -41,6 +54,22 @@ - Подсеть (если нужной подсети в списке нет, [создайте ее](../../vpc/operations/subnet-create.md)). - Выберите опцию **Публичный доступ**, если хост должен быть доступен извне {{ yandex-cloud }}. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы добавить хосты в кластер, выполните команду: + + ```bash + {{ yc-mdb-es }} host add \ + --cluster-name <имя кластера> \ + --host zone-id=<зона доступности>,subnet-name=<имя подсети>,assign-public-ip=,type=<роль хоста: datanode или masternode> + ``` + + Имя кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Воспользуйтесь методом API `addHosts`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. @@ -51,6 +80,12 @@ {% endlist %} +{% note warning %} + +Если после добавления хоста к нему невозможно [подключиться](cluster-connect.md), убедитесь, что [группа безопасности](../concepts/network.md#security-groups) кластера настроена корректно для подсети, в которую помещен хост. + +{% endnote %} + ## Удалить хосты из кластера {#delete-hosts} При удалении хостов действуют ограничения: @@ -66,6 +101,20 @@ 1. Нажмите на имя нужного кластера, затем выберите вкладку **Хосты**. 1. Нажмите на значок ![image](../../_assets/vertical-ellipsis.svg) в строке нужного хоста и выберите пункт **Удалить**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы удалить хост из кластера, выполните команду: + + ```bash + {{ yc-mdb-es }} host delete <имя хоста> --cluster-name <имя кластера> + ``` + + Имя хоста можно запросить со [списком хостов в кластере](#list-hosts), имя кластера — со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Воспользуйтесь методом API `deleteHosts`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. diff --git a/ru/managed-elasticsearch/operations/cluster-list.md b/ru/managed-elasticsearch/operations/cluster-list.md index 3730c6da8c1..d8a92c63879 100644 --- a/ru/managed-elasticsearch/operations/cluster-list.md +++ b/ru/managed-elasticsearch/operations/cluster-list.md @@ -10,10 +10,22 @@ Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы получить список кластеров, выполните команду: + + ```bash + {{ yc-mdb-es }} cluster list + ``` + - API - + Воспользуйтесь методом API `list`: передайте значение идентификатора требуемого каталога в параметре `folderId` запроса. - + В ответе будут содержаться имена и идентификаторы кластеров. {% endlist %} @@ -27,8 +39,22 @@ 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. 1. Нажмите на имя нужного кластера. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы получить детальную информацию о кластере, выполните команду: + + ```bash + {{ yc-mdb-es }} cluster get <имя или идентификатор кластера> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](#list-clusters). + - API - + Воспользуйтесь методом API `get`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. Чтобы узнать идентификатор кластера, [получите список кластеров в каталоге](#list-clusters). @@ -47,8 +73,22 @@ 1. Нажмите на имя нужного кластера. 1. Перейдите на вкладку **Операции**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы получить список операций в кластере, выполните команду: + + ```bash + {{ yc-mdb-es }} cluster list-operations <имя или идентификатор кластера> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](#list-clusters). + - API - + Воспользуйтесь методом API `listOperations`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. Чтобы узнать идентификатор кластера, [получите список кластеров в каталоге](#list-clusters). diff --git a/ru/managed-elasticsearch/operations/cluster-stop.md b/ru/managed-elasticsearch/operations/cluster-stop.md index c7d17301986..cb122474af9 100644 --- a/ru/managed-elasticsearch/operations/cluster-stop.md +++ b/ru/managed-elasticsearch/operations/cluster-stop.md @@ -17,6 +17,20 @@ 1. Найдите нужный кластер в списке, нажмите значок ![options](../../_assets/horizontal-ellipsis.svg) и выберите пункт **Остановить**. 1. В открывшемся диалоге подтвердите остановку кластера и нажмите кнопку **Остановить**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы остановить работу кластера, выполните команду: + + ```bash + {{ yc-mdb-es }} cluster stop <имя или идентификатор кластера> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Воспользуйтесь методом API `stop` для остановки работы всех хостов кластера: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. @@ -38,6 +52,20 @@ 1. Найдите нужный остановленный кластер в списке, нажмите значок ![options](../../_assets/horizontal-ellipsis.svg) и выберите пункт **Запустить**. 1. В открывшемся диалоге подтвердите запуск кластера нажатием на кнопку **Запустить**. +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Для запуска остановленного кластера выполните команду: + + ```bash + {{ yc-mdb-es }} cluster start <имя или идентификатор кластера> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + - API Чтобы запустить кластер, воспользуйтесь методом API `start`: передайте значение идентификатора требуемого кластера в параметре `clusterId` запроса. diff --git a/ru/managed-elasticsearch/operations/cluster-update.md b/ru/managed-elasticsearch/operations/cluster-update.md new file mode 100644 index 00000000000..2acfbc6636b --- /dev/null +++ b/ru/managed-elasticsearch/operations/cluster-update.md @@ -0,0 +1,144 @@ +# Изменение настроек кластера + +После создания кластера вы можете: + +* [{#T}](#change-resource-preset). +* [{#T}](#change-disk-size) (доступно только для стандартного `network-hdd` и быстрого сетевого `network-ssd` хранилищ). + +* [{#T}](#update-additional-settings). + +## Изменить класс хостов {#change-resource-preset} + +{% list tabs %} + +- Консоль управления + + 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. + 1. Выберите кластер и нажмите кнопку **Редактировать** на панели сверху. + 1. Чтобы изменить класс хостов {{ ES }} с ролью *Data node*: + 1. Выберите вкладку **Data node**. + 1. В блоке **Класс хоста** выберите нужный класс для хоста. + 1. Чтобы изменить класс хостов {{ ES }} с ролью *Master node*: + 1. Выберите вкладку **Master node**. + 1. В блоке **Класс хоста** выберите нужный класс для хоста. + 1. Нажмите кнопку **Сохранить**. + +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы изменить [класс хостов](../concepts/instance-types.md) для кластера: + + 1. Посмотрите описание команды CLI для изменения кластера: + + ```bash + {{ yc-mdb-es }} cluster update --help + ``` + + 1. Укажите нужный класс для хостов с ролью _Data node_ и _Master node_ в команде изменения кластера: + + ```bash + {{ yc-mdb-es }} cluster update <имя или идентификатор кластера> \ + --datanode-resource-preset <класс хостов с ролью Data node> \ + --masternode-resource-preset <класс хостов с ролью Master node> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + +- API + + Чтобы изменить [класс хостов](../concepts/instance-types.md) кластера, воспользуйтесь методом [update](../api-ref/Cluster/update.md) и передайте в запросе: + - Идентификатор кластера в параметре `clusterId`. Чтобы узнать идентификатор, [получите список кластеров в каталоге](cluster-list.md#list-clusters). + - Класс хостов в параметрах: + - `configSpec.elasticsearchSpec.dataNode.resources.resourcePresetId` — для хостов с ролью *Data node*. + - `configSpec.elasticsearchSpec.masterNode.resources.resourcePresetId` — для хостов с ролью *Master node*. + - Список настроек, которые необходимо изменить, в параметре `updateMask`. Если не задать этот параметр, метод API сбросит на значения по умолчанию все настройки кластера, которые не были явно указаны в запросе. + + Список поддерживаемых значений запрашивайте методом [list](../api-ref/ResourcePreset/list.md) для ресурсов `ResourcePreset`. + +{% endlist %} + +## Увеличить размер хранилища {#change-disk-size} + +{% list tabs %} + +- Консоль управления + + 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. + 1. Выберите кластер и нажмите кнопку **Редактировать** на панели сверху. + 1. Чтобы увеличить размер диска для хостов {{ ES }} с ролью *Data node*: + 1. Выберите вкладку **Data node**. + 1. В блоке **Хранилище** укажите необходимый размер диска. + 1. Чтобы увеличить размер диска для хостов {{ ES }} с ролью *Master node*: + 1. Выберите вкладку **Master node**. + 1. В блоке **Хранилище** укажите необходимый размер диска. + 1. Нажмите кнопку **Сохранить**. + +- CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + Чтобы увеличить размер хранилища для кластера: + + 1. Посмотрите описание команды CLI для изменения конфигурации: + + ```bash + {{ yc-mdb-es }} cluster update --help + ``` + + 1. Укажите новые [параметры хранилища](../concepts/storage.md) для хостов с ролью _Data node_ и _Master node_ в команде изменения кластера: + + ```bash + {{ yc-mdb-es }} cluster update <имя или идентификатор кластера> \ + --datanode-disk-size <размер хранилища в гигабайтах для хостов с ролью Data node> \ + --masternode-disk-size <размер хранилища в гигабайтах для хостов с ролью Master node> + ``` + + Имя и идентификатор кластера можно запросить со [списком кластеров в каталоге](cluster-list.md#list-clusters). + + +{% endlist %} + +## Изменить дополнительные настройки кластера {#update-additional-settings} + +{% list tabs %} + +* Консоль управления + + 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. + 1. Выберите кластер и нажмите кнопку **Редактировать** на панели сверху. + 1. Чтобы изменить сервисный аккаунт, используемый для работы с кластером, выберите его из выпадающего списка. + 1. Нажмите кнопку **Сохранить**. + +* CLI + + {% include [cli-install](../../_includes/cli-install.md) %} + + {% include [default-catalogue](../../_includes/default-catalogue.md) %} + + 1. Посмотрите описание команды CLI для изменения кластера: + + ```bash + {{ yc-mdb-es }} cluster update --help + ``` + + 1. Чтобы изменить список [расширений {{ ES }}](../concepts/plugins.md), доступных в кластере, передайте их список в аргументе `--plugins` команды CLI. При этом расширения, не упомянутые в списке, будут выключены. + + ```bash + {{ yc-mdb-es }} cluster update <имя кластера> \ + --plugins <список расширений> + ``` + +* API + + Чтобы изменить дополнительные настройки кластера {{ ES }}, воспользуйтесь методом методом [update](../api-ref/Cluster/update.md) и передайте в запросе: + * Идентификатор кластера в параметре `clusterId`. Чтобы узнать идентификатор, [получите список кластеров в каталоге](./cluster-list.md#list-clusters). + * Список [расширений {{ ES }}](../concepts/plugins.md) в параметре `plugins`. + * Идентификатор [сервисного аккаунта](../../iam/concepts/users/service-accounts.md), используемого для работы с кластером, в параметре `serviceAccountId`. + * Список настроек, которые необходимо изменить, в параметре `updateMask`. Если не задать этот параметр, метод API сбросит на значения по умолчанию все настройки кластера, которые не были явно указаны в запросе. + +{% endlist %} diff --git a/ru/managed-elasticsearch/operations/index.md b/ru/managed-elasticsearch/operations/index.md index 12505b24a60..3aa9aed3dfa 100644 --- a/ru/managed-elasticsearch/operations/index.md +++ b/ru/managed-elasticsearch/operations/index.md @@ -4,7 +4,9 @@ - [{#T}](cluster-create.md) - [{#T}](cluster-connect.md) - [{#T}](cluster-stop.md) -- [{#T}](update.md) +- [{#T}](cluster-update.md) +- [{#T}](s3-access.md) - [{#T}](cluster-hosts.md) - [{#T}](cluster-users.md) +- [{#T}](cluster-backups.md) - [{#T}](cluster-delete.md) diff --git a/ru/managed-elasticsearch/operations/s3-access.md b/ru/managed-elasticsearch/operations/s3-access.md new file mode 100644 index 00000000000..5c33b1e5c22 --- /dev/null +++ b/ru/managed-elasticsearch/operations/s3-access.md @@ -0,0 +1,60 @@ +# Настройка доступа к {{ objstorage-name }} + +{{ mes-name }} поддерживает работу с {{ objstorage-full-name }} в качестве [репозитория снапшотов](https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore.html) {{ ES }}. Это позволяет использовать {{ objstorage-name }} для хранения [резервных копий](./cluster-backups.md). + +Для доступа к данным в бакете {{ objstorage-name }} из кластера: + +1. [Подключите сервисный аккаунт к кластеру](#connect-service-account). +1. [Настройте права доступа](#configure-acl). +1. [Подключите репозиторий снапшотов](#register-snapshot-repository). + + +## Подключить сервисный аккаунт к кластеру {#connect-service-account} + +1. При [создании](./cluster-create.md) или [изменении](./cluster-update.md#update-additional-settings) кластера выберите существующий [сервисный аккаунт](../../iam/concepts/users/service-accounts.md), либо [создайте новый](../../iam/operations/sa/create.md). +1. Убедитесь, что этому аккаунту [назначена роль](../../iam/operations/sa/assign-role-for-sa.md) `storage.editor`. + + +## Настроить права доступа {#configure-acl} + +1. В консоли управления выберите каталог, в котором хранится нужный бакет. Если бакета не существует — [создайте](../../storage/operations/buckets/create.md) его. +1. Выберите сервис **{{ objstorage-name }}**. +1. Выберите вкладку **Бакеты**. +1. Настройте [ACL бакета](../../storage/operations/buckets/edit-acl.md): + 1. В выпадающем списке **Выберите пользователя** укажите сервисный аккаунт, [подключенный к кластеру](#connect-service-account). + 1. Задайте разрешения `READ + WRITE` для сервисного аккаунта из выпадающего списка. + 1. Нажмите кнопку **Добавить**. + 1. Нажмите кнопку **Сохранить**. + + +## Подключить репозиторий снапшотов {#register-snapshot-repository} + +{% note alert %} + +Если бакет зарегистрирован в кластере {{ ES }} как репозиторий снапшотов, не вносите никаких изменений в содержимое бакета вручную — это нарушит работу механизма снапшотов {{ ES }}! + +{% endnote %} + +1. При [создании](./cluster-create.md) или [изменении](./cluster-update.md#update-additional-settings) кластера подключите расширение [repository-s3](../concepts/plugins.md). +1. Зарегистрируйте бакет как репозиторий снапшотов, используя публичный [API {{ ES }}](https://www.elastic.co/guide/en/elasticsearch/reference/current/put-snapshot-repo-api.html): + + ```http + PUT https://admin:<пароль>@:9200/<репозиторий> + ``` + + В параметрах запроса укажите бакет, связанный с сервисным аккаунтом кластера: + + ```bash + curl https://admin:<пароль>@:9200/<репозиторий> \ + -X POST \ + --header "Content-Type: application/json" \ + --data '{ + "type": "s3", + "settings": { + "endpoint": "storage.yandexcloud.net", + "bucket": "<имя бакета>" + } + }' + ``` + + Подробнее об управлении репозиториями см. в [документации {{ ES }}](https://www.elastic.co/guide/en/elasticsearch/reference/current/snapshot-restore-apis.html). diff --git a/ru/managed-elasticsearch/operations/update.md b/ru/managed-elasticsearch/operations/update.md deleted file mode 100644 index ccb9f395ab7..00000000000 --- a/ru/managed-elasticsearch/operations/update.md +++ /dev/null @@ -1,55 +0,0 @@ -# Изменение настроек кластера - -После создания кластера вы можете: - -* [Изменить класс хостов](#change-resource-preset). - -* [Увеличить размер хранилища](#change-disk-size) (доступно только для стандартного `network-hdd` и быстрого сетевого `network-ssd` хранилищ). - -## Изменить класс хостов {#change-resource-preset} - -{% list tabs %} - -- Консоль управления - - 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. - 1. Выберите кластер и нажмите кнопку **Редактировать** на панели сверху. - 1. Чтобы изменить класс хостов {{ ES }} с ролью *Data node*: - 1. Выберите вкладку **Data node**. - 1. В блоке **Класс хоста** выберите нужный класс для хоста. - 1. Чтобы изменить класс хостов {{ ES }} с ролью *Master node*: - 1. Выберите вкладку **Master node**. - 1. В блоке **Класс хоста** выберите нужный класс для хоста. - 1. Нажмите кнопку **Сохранить**. - -- API - - Чтобы изменить [класс хостов](../concepts/instance-types.md) кластера, воспользуйтесь методом [update](../api-ref/Cluster/update.md) и передайте в запросе: - - Идентификатор кластера в параметре `clusterId`. Чтобы узнать идентификатор, [получите список кластеров в каталоге](cluster-list.md#list-clusters). - - Класс хостов в параметрах: - - `configSpec.elasticsearchSpec.dataNode.resources.resourcePresetId` — для хостов с ролью *Data node*. - - `configSpec.elasticsearchSpec.masterNode.resources.resourcePresetId` — для хостов с ролью *Master node*. - - Список настроек, которые необходимо изменить, в параметре `updateMask`. Если не задать этот параметр, метод API сбросит на значения по умолчанию все настройки кластера, которые не были явно указаны в запросе. - - Список поддерживаемых значений запрашивайте методом [list](../api-ref/ResourcePreset/list.md) для ресурсов `ResourcePreset`. - -{% endlist %} - -## Увеличить размер хранилища {#change-disk-size} - -{% list tabs %} - -- Консоль управления - - 1. Перейдите на страницу каталога и выберите сервис **{{ mes-name }}**. - 1. Выберите кластер и нажмите кнопку **Редактировать** на панели сверху. - 1. Чтобы увеличить размер диска для хостов {{ ES }} с ролью *Data node*: - 1. Выберите вкладку **Data node**. - 1. В блоке **Хранилище** укажите необходимый размер диска. - 1. Чтобы увеличить размер диска для хостов {{ ES }} с ролью *Master node*: - 1. Выберите вкладку **Master node**. - 1. В блоке **Хранилище** укажите необходимый размер диска. - 1. Нажмите кнопку **Сохранить**. - - -{% endlist %} diff --git a/ru/managed-elasticsearch/quickstart.md b/ru/managed-elasticsearch/quickstart.md index 5818fddc307..d3ba8587d2a 100644 --- a/ru/managed-elasticsearch/quickstart.md +++ b/ru/managed-elasticsearch/quickstart.md @@ -2,9 +2,10 @@ Чтобы начать работу с сервисом: -1. [Создайте кластер](#cluster-create). -1. [Подключитесь к кластеру](#connect). -1. [Подключитесь к Kibana](#connect-kibana). +1. [{#T}](#cluster-create). +1. [{#T}](#configuring-security-groups). +1. [{#T}](#connect). +1. [{#T}](#connect-kibana). ## Перед началом работы {#before-you-begin} @@ -32,22 +33,28 @@ 1. Задайте параметры кластера. Чтобы получить доступ к веб-интерфейсу Kibana, запросите публичный доступ: + 1. Измените настройки хоста с ролью _Data node_, нажав значок ![image](../_assets/pencil.svg) для хоста. 1. Выберите опцию **Публичный доступ**. 1. Нажмите кнопку **Сохранить**. - Публичный доступ можно запросить для одного или нескольких хостов с такой ролью. После создания кластера станет доступно [подключение к Kibana](#connect-kibana), расположенной на этих хостах. + Публичный доступ можно запросить для одного или нескольких хостов с ролью _Data node_. После создания кластера станет доступно [подключение к Kibana](#connect-kibana), расположенной на этих хостах. Может потребоваться дополнительная [настройка групп безопасности](operations/cluster-connect.md#configuring-security-groups) для того, чтобы можно было подключаться к кластеру. {% include [mes-tip-public-kibana](../_includes/mdb/mes-tip-connecting-to-public-kibana.md) %} 1. Нажмите кнопку **Создать кластер**. 1. Дождитесь, когда кластер будет готов к работе: его статус на панели {{ mes-short-name }} сменится на **Running**, а состояние — на **Alive**. Это может занять некоторое время. +## Настройте группы безопасности {#configuring-security-groups} + +[Настройте группы безопасности](operations/cluster-connect.md#configuring-security-groups) для облачной сети так, чтобы был разрешен весь необходимый трафик между кластером и хостом, с которого выполняется подключение. + ## Подключитесь к кластеру {#connect} Предполагается, что все перечисленные ниже шаги выполняются на Linux. Чтобы подключиться к кластеру: + 1. Установите SSL-сертификат: ``` diff --git a/ru/managed-elasticsearch/security/index.md b/ru/managed-elasticsearch/security/index.md index 493725cc13f..efa4ca568be 100644 --- a/ru/managed-elasticsearch/security/index.md +++ b/ru/managed-elasticsearch/security/index.md @@ -46,7 +46,7 @@ [Создание](../operations/cluster-users.md#adduser), [изменение](../operations/cluster-users.md#updateuser), [удаление](../operations/cluster-users.md#removeuser) учетных записей в кластере | `create`, `update`, `delete` | `editor` или `admin` на каталог с кластером [Назначение роли](../../iam/operations/roles/grant.md), [отзыв роли](../../iam/operations/roles/revoke.md) и просмотр назначенных ролей на каталог или облако | `setAccessBindings`, `updateAccessBindings`, `listAccessBindings` | `admin` на каталог с кластером или облако -## Что дальше +## Что дальше {#whats-next} * [Как назначить роль](../../iam/operations/roles/grant.md). * [Как отозвать роль](../../iam/operations/roles/revoke.md). diff --git a/ru/managed-elasticsearch/toc.yaml b/ru/managed-elasticsearch/toc.yaml index bc855beaff0..cc5a745605f 100644 --- a/ru/managed-elasticsearch/toc.yaml +++ b/ru/managed-elasticsearch/toc.yaml @@ -16,11 +16,15 @@ items: - name: Остановка и запуск кластера href: operations/cluster-stop.md - name: Изменение настроек кластера - href: operations/update.md + href: operations/cluster-update.md + - name: Настройка доступа к Object Storage + href: operations/s3-access.md - name: Управление хостами Elasticsearch href: operations/cluster-hosts.md - name: Управление пользователями Elasticsearch href: operations/cluster-users.md + - name: Управление резервными копиями + href: operations/cluster-backups.md - name: Удаление кластера href: operations/cluster-delete.md - name: Концепции diff --git a/ru/solutions/dataplatform/index.md b/ru/solutions/dataplatform/index.md new file mode 100644 index 00000000000..6091067c9a6 --- /dev/null +++ b/ru/solutions/dataplatform/index.md @@ -0,0 +1,3 @@ +# Построение Data Platform на базе {{ yandex-cloud }} + +* [{#T}](sync-postgresql.md) \ No newline at end of file diff --git a/ru/solutions/dataplatform/sync-postgresql.md b/ru/solutions/dataplatform/sync-postgresql.md new file mode 100644 index 00000000000..57b49b48007 --- /dev/null +++ b/ru/solutions/dataplatform/sync-postgresql.md @@ -0,0 +1,172 @@ +# Синхронизация данных из MySQL с помощью {{ data-transfer-name }} + +Из описания сценария вы узнаете, как обеспечить периодическую доставку изменений из внешней базы данных в облако при помощи {{ data-transfer-name }}. Для синхронизации данных в вашем облаке нужно создать промежуточное стейджинговое хранилище данных — {{ mmy-name }}, в которое будут реплицироваться таблицы. Данные синхронизируются практически в режиме реального времени. + +Чтобы настроить передачу изменений: + +1. [Подготовьте облако к работе](#before-begin). +1. [Создайте ВМ с интернет-магазином](#create-vm-mysql). +1. [Создайте стейджинговое хранилище](#create-staging-dwh). +1. [Настройте параметры трансфера](#create-transfer). +1. [Проследите за переносом изменений в БД в облаке](#start-sync). + +Если созданные ресурсы вам больше не нужны, [удалите их](#clear-out). + +## Подготовьте облако к работе {#before-begin} + +Перед тем, как разворачивать сервер, нужно зарегистрироваться в {{ yandex-cloud }} и создать платежный аккаунт: + +{% include [prepare-register-billing](../_solutions_includes/prepare-register-billing.md) %} + +Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша виртуальная машина, на [странице облака](https://console.cloud.yandex.ru/cloud). + +[Подробнее об облаках и каталогах](../../resource-manager/concepts/resources-hierarchy.md). + +### Необходимые платные ресурсы {#paid-resources} + +В стоимость поддержки инфраструктуры передачи данных входит: + +1. Плата за постоянно запущенную виртуальную машину (см. [тарифы {{ compute-full-name }}](../../compute/pricing.md)); +1. Плата за использование динамического или статического внешнего IP-адреса (см. [тарифы {{ vpc-full-name }}](../../vpc/pricing.md)); +1. Плата за постоянно запущенный кластер {{ mmy-name }} (см. [тарифы {{ mmy-name }}](../../managed-mysql/pricing.md)); +1. Плата за сервис {{ data-transfer-name }} (см. [тарифы {{ data-transfer-name }}](../../data-transfer/pricing)). + +## Создайте ВМ с интернет-магазином {#create-vm-mysql} + +1. Создайте ВМ с интернет-магазином `web-store-vm` на базе MySQL: + + {% list tabs %} + + - CLI + + Создайте диск с предварительно настроенным публичным образом виртуальной машины с интернет-магазином: + + ``` + yc compute disk create \ + --name web-store-lab-dataplatform \ + --source-image-id fd8lcf21vlpfdhb84m2s \ + --folder-id + ``` + + Создайте виртуальную машину: + + ``` + yc compute instance create \ + --name magento \ + --zone ru-central1-a \ + --network-interface subnet-name=default-ru-central1-a,nat-ip-version=ipv4 \ + --hostname ya-sample-store \ + --use-boot-disk disk-name=web-store-lab-dataplatform \ + --ssh-key ~/.ssh/id_rsa.pub + ``` + + {% endlist %} + +1. В параметрах группы безопасности добавьте разрешение на входящий и исходящий трафик с `80` и `443` порта, а также с порта MySQL `3306`. + +1. Подключитесь к ВМ по ssh: + ``` + ssh yc-user@<публичный_IP-адрес_виртуальной_машины> + ``` + +1. От имени администратора откройте файл `hosts` (C:\Windows\System32\drivers\etc\hosts), добавьте строку: + ``` + ya-sample-store.local + ``` + +1. Подключитесь к интернет-магазину по [ссылке](http://ya-sample-store.local). + +1. Схему интернет-магазина можно посмотреть при помощи [DBeaver](https://dbeaver.com/). + +## Создайте стейджинговое хранилище {#create-staging-dwh} + +Для реплицирования таблиц с информацией о заказах интернет-магазина создайте кластер {{ mmy-name }}: + +1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором нужно создать кластер БД. +1. Выберите сервис **{{ mmy-name }}** и нажмите **Создать кластер**. +1. Задайте имя кластера — `ya-sample-cloud-mysql`. +1. Выберите класс хоста — `s2.small`. +1. В блоке **Размер хранилища**: + + * Выберите тип хранилища — `network-ssd`. + * Выберите объем — `32ГБ`. + +1. В блоке **База данных**: + + * Укажите имя базы данных — `magento-cloud`. + * Укажите имя пользователя — `yc-user` и пароль — `12345678`. + +1. В блоке **Сетевые настройки** выберите облачную сеть для размещения кластера и группы безопасности для сетевого трафика кластера. +1. В блоке **Хосты** выберите параметры хостов БД, создаваемых вместе с кластером: + + * Зона доступности — `ru-central1-a`. + * Подсеть — `default-ru-central1-a`. + +1. Нажмите кнопку **Создать кластер**. +Подробнее о создании кластера см. раздел [Как начать работать с {{ mmy-short-name }}](../../managed-mysql/quickstart.md#cluster-create.md). + +## Настройте параметры трансфера {#create-transfer} + +Чтобы синхронизировать информацию о заказах из БД MySQL интернет-сайта с промежуточным хранилищем данных, которое находится в облаке, настройте {{ data-transfer-name }}: + +1. В консоли управления выберите каталог, в котором нужно создать конфигурацию для подключения. +1. Выберите сервис **{{ data-transfer-name }}** и нажмите **Создать эндпоинт**. +1. Определите параметры источника данных — виртуальной машины интернет-магазина с запущенным на нем экземпляром MySQL: + + * **Имя** — `magento-source`. + * Выберите из списка тип БД — `MySQL`. + * **IP хоста** — <публичный_IP-адрес_виртуальной_машины>. + * **Имя базы данных** — `ya_sample_store`. + * **Имя пользователя** — `magento-svc` и пароль — `m@gent0`. + * В белом списке укажите префиксы таблиц, которые подлежат репликации, например, `sales_*`. + * Нажмите кнопку **Создать**. + +1. Определите параметры приемника данных — управляемой базы данных {{ mmy-name }}, которая находится в облаке: + + * **Имя** — `magento-report-dest`. + * **База данных** — `Managed Service for MySQL`. + * Выберите из списка идентификатор кластера — `ya-sample-cloud-mysql`. + * **Имя базы данных** — `magento-cloud`. + * **Имя пользователя репликации** — `yc-user` и пароль — `12345678`. + * В строке **Отключение проверки констрейнтов** поставьте галочку. + В данном случае, если произойдет нарушение порядка передачи данных, не будут выдаваться сообщения об ошибках. + * Нажмите кнопку **Создать**. + +1. Выберите в меню раздел **Трансферы** и нажмите кнопку **Создать трансфер**. +1. Определите параметры трансфера: + + * **Имя** — `sales-order-sync`. + * В блоке **Источник** выберите эндпоинт `magento-source`. + * В блоке **Приемник** выберите эндпоинт `magento-report-dest`. + * В блоке **Тип трансфера** выберите — `Копировать и реплицировать`. + * Нажмите кнопку **Создать**. + * Нажмите на ![horizontal-ellipsis](../../_assets/horizontal-ellipsis.svg) в строке с описанием трансфера и выберите **Активировать**. + + Будет выполнена первоначальная синхронизация схем данных и другой информации, а в дальнейшем, данные будут автоматически синхронизироваться при появлении изменений в базе данных источника. Статус синхронизации и сообщения об ошибках можно найти в разделе **Логи**. + +1. Проверьте, что схемы базы данных появились в стейджинговом хранилище: + + * Перейдите в раздел **SQL** стейджингового хранилища `ya-sample-cloud-mysql`. + * Введите имя пользователя — `yc-user` и пароль — `12345678`. + * Выберите БД — `magento-cloud`. + * Нажмите **Подключиться**. + + В окне появится схема БД интернет-магазина. + +## Проследите за переносом изменений в {{ yandex-cloud }} {#start-sync} + +1. Создайте заказ в интернет-магазине по [ссылке](http://ya-sample-store.local). +1. Выполните запрос к БД в облаке: + ``` sql + SELECT so.*, soi.* FROM sales_order_grid so + INNER JOIN sales_order_item soi ON so.entity_id = soi.order_id + ORDER BY entity_id DESC + LIMIT 10 + ``` +1. Убедитесь, что данные вашего заказа появились в БД. + +## Как удалить созданные ресурсы {#clear-out} + +Чтобы перестать платить за инфраструктуру для передачи данных, [удалите](../../compute/operations/vm-control/vm-delete.md) ВМ `magento` и кластер `ya-sample-cloud-mysql`. + +Если вы зарезервировали публичный статический IP-адрес, [удалите его](../../vpc/operations/address-delete.md). diff --git a/ru/solutions/index.yaml b/ru/solutions/index.yaml index 633dcea8fd7..9a639ebd2df 100644 --- a/ru/solutions/index.yaml +++ b/ru/solutions/index.yaml @@ -23,6 +23,9 @@ links: Развертывайте инфраструктуру удобными средствами управления облачными ресурсами href: infrastructure-management/ + - title: Data Platform + description: Создавайте Data Platform с помощью Yandex.Cloud + href: dataplatform/ - title: Сетевая маршрутизация description: Настройте статические маршруты и VPN для доступа к облачным ресурсам href: routing/ diff --git a/ru/solutions/toc.yaml b/ru/solutions/toc.yaml index e56421a039a..a2333edc450 100644 --- a/ru/solutions/toc.yaml +++ b/ru/solutions/toc.yaml @@ -91,6 +91,12 @@ items: href: infrastructure-management/hystax-disaster-recovery.md - name: Настройка отказоустойчивой архитектуры в Yandex.Cloud href: infrastructure-management/fault-tolerance.md + - name: Построение Data Platform + items: + - name: Все сценарии + href: dataplatform/index.md + - name: Синхронизация данных из MySQL с помощью Yandex DataTransfer + href: dataplatform/sync-postgresql.md - name: Windows в Yandex.Cloud items: - name: Все сценарии diff --git a/ru/ydb/_includes/create-db-via-console.md b/ru/ydb/_includes/create-db-via-console.md index 73e9f8d0186..edb6a99ab06 100644 --- a/ru/ydb/_includes/create-db-via-console.md +++ b/ru/ydb/_includes/create-db-via-console.md @@ -1,67 +1,55 @@ -Вы можете создать базу данных в бессерверной (**Serverless**) конфигурации или с выделенными серверами (**Dedicated**). Подробнее о различиях в конфигурациях читайте в разделе [{#T}](../concepts/index.md). - Чтобы создать базу данных: {% list tabs %} -* Serverless +- Serverless - 1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана база данных. - 1. В списке сервисов выберите **{{ ydb-name }}**. - 1. Нажмите кнопку **Создать базу данных**. - 1. Введите **Имя** базы. Требования к имени: + 1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана база данных. + 1. В списке сервисов выберите **{{ ydb-name }}**. + 1. Нажмите кнопку **Создать базу данных**. + 1. Введите **Имя** базы. Требования к имени: {% include [name-format](../../_includes/name-format.md) %} - 1. В блоке **Тип базы данных** выберите опцию **Serverless**. - 1. Нажмите кнопку **Создать базу данных**. - 1. Дождитесь запуска базы данных. В процессе создания база будет иметь статус `Provisioning`, а когда станет готова к использованию — статус сменится на `Running`. - -* Dedicated + 1. В блоке **Тип базы данных** выберите опцию **Serverless**. + 1. Нажмите кнопку **Создать базу данных**. - 1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана база данных. + Дождитесь запуска базы данных. В процессе создания база будет иметь статус `Provisioning`, а когда станет готова к использованию — статус сменится на `Running`. - 1. В списке сервисов выберите **{{ ydb-name }}**. +- Dedicated - 1. Нажмите кнопку **Создать базу данных**. - - 1. Введите **Имя** базы. Требования к имени: + 1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана база данных. + 1. В списке сервисов выберите **{{ ydb-name }}**. + 1. Нажмите кнопку **Создать базу данных**. + 1. Введите **Имя** базы. Требования к имени: {% include [name-format](../../_includes/name-format.md) %} - 1. В блоке **Тип базы данных** выберите опцию **Dedicated**. - - 1. В блоке **Вычислительные ресурсы** выберите тип и количество [вычислительных ресурсов](../concepts/databases.md#compute-units). - - 1. В блоке **Группы хранения** выберите тип диска и количество [групп хранения](../concepts/databases.md#storage-groups), определяющее суммарный объем хранилища. - - 1. В блоке **Сеть** настройте параметры сети: - + 1. В блоке **Тип базы данных** выберите опцию **Dedicated**. + 1. В блоке **Вычислительные ресурсы** выберите тип и количество [вычислительных ресурсов](../concepts/databases.md#compute-units). + 1. В блоке **Группы хранения** выберите тип диска и количество [групп хранения](../concepts/databases.md#storage-groups), определяющее суммарный объем хранилища. + 1. В блоке **Сеть** настройте параметры сети: 1. (опционально) В блоке **Публичные IP-адреса** выберите опцию **Присвоить**, если вы планируете отправлять запросы к базе не только из сети {{ yandex-cloud }}, но и через интернет. - - - {% include [traffic_metering](../_includes/traffic_metering.md) %} - 1. Выберите существующую сеть из списка **Облачная сеть** или создайте новую: - - * Нажмите кнопку **Создать новую**. - * В открывшемся окне укажите **Имя** новой сети. - * (опционально) Выберите опцию **Создать подсети**. Подсети в каждой зоне доступности будут созданы автоматически. - * Нажмите кнопку **Создать**. + + {% include [traffic_metering](../_includes/traffic_metering.md) %} + 1. Выберите существующую сеть из списка **Облачная сеть** или создайте новую: + * Нажмите кнопку **Создать новую**. + * В открывшемся окне укажите **Имя** новой сети. + * (опционально) Выберите опцию **Создать подсети**. Подсети в каждой зоне доступности будут созданы автоматически. + * Нажмите кнопку **Создать**. 1. В блоке **Подсети** выберите или создайте подсеть для каждой [зоны доступности](../../overview/concepts/geo-scope.md): - - * Нажмите кнопку **Создать подсеть**. - * В открывшемся окне укажите **Имя** новой подсети. - * (опционально) Введите **Описание** подсети. - * Выберите из списка **Зона доступности** нужную зону. - * Задайте адрес подсети в формате [**CIDR**](https://ru.wikipedia.org/wiki/Бесклассовая_адресация). - * Нажмите кнопку **Создать**. - - 1. Нажмите кнопку **Создать базу данных**. - - 1. Дождитесь запуска базы данных. В процессе создания база будет иметь статус `Provisioning`, а когда станет готова к использованию — статус сменится на `Running`. + * Нажмите кнопку **Создать подсеть**. + * В открывшемся окне укажите **Имя** новой подсети. + * (опционально) Введите **Описание** подсети. + * Выберите из списка **Зона доступности** нужную зону. + * Задайте адрес подсети в формате [**CIDR**](https://ru.wikipedia.org/wiki/Бесклассовая_адресация). + * Нажмите кнопку **Создать**. + 1. Нажмите кнопку **Создать базу данных**. + + Дождитесь запуска базы данных. В процессе создания база будет иметь статус `Provisioning`, а когда станет готова к использованию — статус сменится на `Running`. {% endlist %} diff --git a/ru/ydb/_includes/create-schema-via-console.md b/ru/ydb/_includes/create-new-table-via-console.md similarity index 73% rename from ru/ydb/_includes/create-schema-via-console.md rename to ru/ydb/_includes/create-new-table-via-console.md index 0cfd1912327..3ecbfd6abc7 100644 --- a/ru/ydb/_includes/create-schema-via-console.md +++ b/ru/ydb/_includes/create-new-table-via-console.md @@ -1,7 +1,5 @@ -1. В [консоли управления]({{ link-console-main }}) выберите каталог, в котором будет создана база данных. -1. В списке сервисов выберите **Yandex Database**. -1. На странице **Базы данных** выберите базу. -1. Чтобы открыть корневую директорию базы, перейдите на вкладку **Навигация**. +1. В [консоли управления]({{ link-console-main }}) перейдите в рабочий каталог. +1. Выберите сервис **Yandex Database** и откройте базу данных, в которой будете выполнять операции. 1. Для создания запроса к базе нажмите кнопку **SQL-запрос** в правом верхнем углу. Откроется страница **Запрос**. 1. В поле **Запрос** введите: @@ -11,4 +9,4 @@ Если запрос был выполнен успешно, то в нижней части будет надпись `Completed`. Новая таблица `series` появится в области слева. -1. Чтобы получить подробную информацию о таблице, наведите на нее курсор и нажмите значок . Откроется поле с описанием. Для просмотра схемы таблицы перейдите на вкладку **Схема**. \ No newline at end of file +1. Чтобы получить подробную информацию о таблице, наведите на нее курсор и нажмите значок . Откроется поле с описанием. Для просмотра схемы таблицы перейдите на вкладку **Схема**. diff --git a/ru/ydb/_includes/note_sample_tables.md b/ru/ydb/_includes/note_sample_tables.md index 304672d6db5..46a5dfa75ba 100644 --- a/ru/ydb/_includes/note_sample_tables.md +++ b/ru/ydb/_includes/note_sample_tables.md @@ -1,7 +1,7 @@ {% note info %} Таблицы `episodes`, `series` и `seasons` из приводимых примеров можно создать самостоятельно. -В разделе ["Начало работы - Примеры YQL-запросов"](../quickstart/examples-yql.md) описано, как можно выполнять запросы к {{ ydb-full-name }} в [консоли {{ yandex-cloud }}](https://console.cloud.yandex.ru/). +В разделе ["Начало работы - Примеры YQL-запросов"](../quickstart/yql-api/ydb-ui.md) описано, как можно выполнять запросы к {{ ydb-full-name }} в [консоли {{ yandex-cloud }}](https://console.cloud.yandex.ru/). Создание всех таблиц из приводимых примеров описано в разделе ["Туториал YQL - Создание таблицы"](../yql/tutorial/create_demo_tables.md). А наполнение их данными — в разделе ["Туториал YQL - Добавление данных в таблицу"](../yql/tutorial/fill_tables_with_data.md). diff --git a/ru/ydb/_includes/run-app.md b/ru/ydb/_includes/run-app.md index 3186d38c3d4..37c3c3a87be 100644 --- a/ru/ydb/_includes/run-app.md +++ b/ru/ydb/_includes/run-app.md @@ -1,4 +1,4 @@ -Чтобы подключиться к базе и запустить тестовое приложение: +Чтобы установить и запустить тестовое приложение: {% list tabs %} @@ -11,37 +11,37 @@ sudo pip3 install iso8601 ydb yandexcloud ``` - 1. Создайте авторизованный ключ для вашего сервисного аккаунта, запишите его в файл [с помощью CLI](../../iam/operations/iam-token/create-for-sa#via-cli): + 1. Создайте авторизованный ключ для вашего сервисного аккаунта и сохраните его в файл [с помощью CLI](../../iam/operations/iam-token/create-for-sa#via-cli): + 1. Посмотрите описание команды: - 1. Посмотрите описание команды: - - ```bash - yc iam key create --help - ``` - 1. Выполните команду, указав следующие параметры: + ```bash + yc iam key create --help + ``` - * `folder-id` — идентификатор каталога. - * `service-account-name` — имя сервисного аккаунта. + 1. Выполните команду: - ```bash - yc iam key create --folder-id b1geoelk7fldts6chmjq --service-account-name sa-ydb-user --output ~/.ydb/sa_name.json - ``` + ```bash + yc iam key create \ + --folder-id <идентификатор каталога> \ + --service-account-name <имя сервисного аккаунта> \ + --output ~/.ydb/sa_name.json + ``` 1. Установите переменную окружения `SA_KEY_FILE`: - ```bash - export SA_KEY_FILE=~/.ydb/sa_name.json - ``` + ```bash + export SA_KEY_FILE=~/.ydb/sa_name.json + ``` - {% note info %} + {% note info %} - Для подключения к YDB Dedicated базе установите переменную окружения с сертификатом: + Для подключения к {{ ydb-short-name }} Dedicated базе установите переменную окружения с сертификатом: ```bash export YDB_SSL_ROOT_CERTIFICATES_FILE=~/.ydb/CA.pem ``` - {% endnote %} + {% endnote %} 1. Запустите тестовое приложение `basic_example_v1` из репозитория `ydb-python-sdk`, указав в качестве параметров запуска значения: @@ -91,13 +91,14 @@ ``` 1. Получите IAM-токен для необходимого сервисного аккаунта [с помощью CLI](../../iam/operations/iam-token/create-for-sa#via-cli): - + 1. Посмотрите описание команды: - + ```bash yc iam key create --help ``` - 1. Выполните команду: + + 1. Выполните команду: ```bash yc iam key create --service-account-name sa_name -o ~/.ydb/sa_name.json @@ -152,10 +153,11 @@ 1. Получите IAM-токен для необходимого сервисного аккаунта [с помощью CLI](../../iam/operations/iam-token/create-for-sa#via-cli): 1. Посмотрите описание команды: - + ```bash yc iam key create --help ``` + 1. Выполните команду: ```bash @@ -164,14 +166,14 @@ {% note info %} - Для подключения к YDB Dedicated базе установите переменную окружения с сертификатом: + Для подключения к БД, работающей в режиме Dedicated, установите переменную окружения с сертификатом: ```bash export YDB_SSL_ROOT_CERTIFICATES_FILE=~/.ydb/CA.pem ``` {% endnote %} - + 1. Установите переменные окружения, необходимые для аутентификации приложения: ```bash @@ -181,6 +183,7 @@ export DB=<база данных> export YDB_SDK_LOGLEVEL=debug ``` + Где: * `SA_JSON_FILE` — локальный путь к файлу с IAM токеном. @@ -242,19 +245,19 @@ 1. Соберите тестовое приложение. Для этого: 1. Склонируйте репозиторий [YDB Java SDK](https://github.com/yandex-cloud/ydb-java-sdk): - + ```bash git clone https://github.com/yandex-cloud/ydb-java-sdk.git ``` 1. Перейдите в директорию с тестовым приложением `ydb-java-sdk/examples/maven_project`: - + ```bash cd ydb-java-sdk/examples/maven_project ``` 1. Соберите его: - + ```bash mvn package ``` @@ -262,10 +265,11 @@ 1. Создайте авторизованный ключ для вашего сервисного аккаунта, запишите его в файл [с помощью CLI](../../iam/operations/iam-token/create-for-sa#via-cli): 1. Посмотрите описание команды: - + ```bash yc iam key create --help ``` + 1. Выполните команду, указав следующие параметры: * `folder-id` — идентификатор каталога. @@ -288,4 +292,4 @@ java -jar example.jar <эндпойнт базы данных> <база данных YDB> ``` -{% endlist %} \ No newline at end of file +{% endlist %} diff --git a/ru/ydb/concepts/index.md b/ru/ydb/concepts/index.md index 3d5bc652906..37bbc6dc170 100644 --- a/ru/ydb/concepts/index.md +++ b/ru/ydb/concepts/index.md @@ -27,7 +27,7 @@ Бессерверный режим {{ ydb-full-name }} поддерживает работу с данными не только с помощью YDB API, но и с помощью [Document API](../docapi/api-ref/index.md) — HTTP API, совместимого с Amazon DynamoDB. С помощью этого API можно выполнять операции над документными таблицами. -{{ ydb-short-name }} предоставляет YDB API и его реализации в виде [YDB CLI](../quickstart/examples-ydb-cli.md) и [YDB SDK](../sdk/index.md) для [Java](https://github.com/yandex-cloud/ydb-java-sdk), [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) и [Go](https://github.com/yandex-cloud/ydb-go-sdk) +{{ ydb-short-name }} предоставляет YDB API и его реализации в виде [YDB CLI](../quickstart/yql-api/ydb-cli.md) и [YDB SDK](../sdk/index.md) для [Java](https://github.com/yandex-cloud/ydb-java-sdk), [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) и [Go](https://github.com/yandex-cloud/ydb-go-sdk) {{ ydb-short-name }} поддерживает реляционную [модель данных](datamodel.md) и оперирует таблицами с предопределённой схемой. Для удобства организации таблиц поддерживается создание директорий по аналогии с файловой системой. diff --git a/ru/ydb/concepts/ttl.md b/ru/ydb/concepts/ttl.md index 279df643c41..b56f7971734 100644 --- a/ru/ydb/concepts/ttl.md +++ b/ru/ydb/concepts/ttl.md @@ -52,7 +52,7 @@ expiration_time = valueof(ttl_column) + expire_after_seconds Управление настройками TTL в настоящий момент возможно с использованием: * [YQL](../yql/reference/overview.md). -* [Консольного клиента {{ ydb-short-name }}](../quickstart/examples-ydb-cli.md). +* [Консольного клиента {{ ydb-short-name }}](../quickstart/yql-api/ydb-cli.md). * [{{ ydb-short-name }} Python SDK](https://github.com/yandex-cloud/ydb-python-sdk). ### Включение TTL для существующей таблицы {#enable-on-existent-table} diff --git a/ru/ydb/maintenance/backup_and_recovery.md b/ru/ydb/maintenance/backup_and_recovery.md index a8ecc9b8747..a376f80c2d3 100644 --- a/ru/ydb/maintenance/backup_and_recovery.md +++ b/ru/ydb/maintenance/backup_and_recovery.md @@ -14,7 +14,7 @@ -1. Установите [консольный клиент YDB](../quickstart/examples-ydb-cli.md). +1. Установите [консольный клиент YDB](../quickstart/yql-api/ydb-cli.md#how-to-install). 1. В свойствах базы на вкладке "Обзор" найдите и скопируйте значения полей **Эндпоинт** и **База данных**. 1. Сохраните значения полей **Эндпоинт** и **База данных** в переменных окружения `$YDB_ENDPOINT` и `$YDB_DB_PATH`. @@ -99,7 +99,7 @@ YDB позволяет сохранять резервные копии баз -[Консольный клиент YDB](../quickstart/examples-ydb-cli.md) предоставляет три варианта передачи ключей доступа: +[Консольный клиент YDB](../quickstart/yql-api/ydb-cli.md) предоставляет три варианта передачи ключей доступа: * через опции командной строки `--access-key` и `--secret-key`; * через переменные окружения `AWS_ACCESS_KEY_ID` и `AWS_SECRET_ACCESS_KEY`; diff --git a/ru/ydb/operations/aws-cli/index.md b/ru/ydb/operations/aws-cli/index.md deleted file mode 100644 index a7058b617ad..00000000000 --- a/ru/ydb/operations/aws-cli/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Начало работы с AWS CLI и {{ ydb-short-name }} - -В разделе описано, как с использованием AWS CLI выполнить следующие операции в {{ ydb-short-name }}: - -* [Создание](create-table.md) таблицы. -* [Добавление](put-item.md), [чтение](get-item.md) и [обновление](update-item.md) данных в таблице. -* [Выполнение](query.md) простых запросов. - -## Перед началом работы {#before-you-begin} - -1. Войдите в [консоль управления]({{ link-console-main }}). Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. -1. [На странице биллинга]({{ link-console-billing }}) убедитесь, что у вас подключен [платежный аккаунт](../../../billing/concepts/billing-account.md), и он находится в статусе `ACTIVE` или `TRIAL_ACTIVE`. Если платежного аккаунта нет, [создайте его](../../../billing/quickstart/index.md#create_billing_account). -1. Если у вас еще нет каталога, [создайте его](../../../resource-manager/operations/folder/create.md). -1. [Установите AWS CLI](../../quickstart/aws-instrument/setup.md). -1. [Создайте базу данных](../../operations/create_manage_database.md#create-db) в бессерверной (**Serverless**) конфигурации. diff --git a/ru/ydb/operations/create_manage_database.md b/ru/ydb/operations/create_manage_database.md index b454994b4e9..0d8e31e221a 100644 --- a/ru/ydb/operations/create_manage_database.md +++ b/ru/ydb/operations/create_manage_database.md @@ -10,6 +10,8 @@ ## Создать базу данных {#create-db} +Вы можете создать базу данных в бессерверной (Serverless) конфигурации или с выделенными серверами (Dedicated). Подробнее о различиях в конфигурациях читайте в разделе [{#T}](../concepts/serverless_and_dedicated.md). + {% include [create-db-via-console](../_includes/create-db-via-console.md) %} ## Посмотреть список баз данных {#db-list} diff --git a/ru/ydb/operations/get-query-plan.md b/ru/ydb/operations/get-query-plan.md index 993790afda9..e0c39ef4bcf 100644 --- a/ru/ydb/operations/get-query-plan.md +++ b/ru/ydb/operations/get-query-plan.md @@ -19,7 +19,7 @@ - YDB CLI - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите его и подготовьте к работе](../quickstart/examples-ydb-cli.md#requirements). + 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите его и подготовьте к работе](../quickstart/yql-api/ydb-cli.md#how-to-install). 2. Для получения плана запроса используйте команду `explain`. Посмотрите как использовать команду, выполнив: ```bash ydb table query explain --help diff --git a/ru/ydb/operations/ydb-cli/scheme-describe.md b/ru/ydb/operations/ydb-cli/scheme-describe.md index 21a2f77cfe2..e2f5c501007 100644 --- a/ru/ydb/operations/ydb-cli/scheme-describe.md +++ b/ru/ydb/operations/ydb-cli/scheme-describe.md @@ -1,6 +1,6 @@ # Получение информации об объекте схемы -На примере таблицы `episodes`, созданной в разделе [{#T}](../../quickstart/examples-yql.md), получите информацию об объекте схемы: +На примере таблицы `episodes`, созданной в разделе [{#T}](../../quickstart/yql-api/ydb-ui.md), получите информацию об объекте схемы: ```bash $ {{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme describe episodes --stats diff --git a/ru/ydb/pricing/serverless.md b/ru/ydb/pricing/serverless.md index 4f9f1b0877a..8c510c4708d 100644 --- a/ru/ydb/pricing/serverless.md +++ b/ru/ydb/pricing/serverless.md @@ -29,7 +29,7 @@ editable: false Бессерверный режим работы {{ ydb-full-name }} поддерживает несколько способов работы с данными: * Document API — HTTP API, совместимое с Amazon DynamoDB. С помощью этого API можно выполнять операции над документными таблицами. -* YDB API и его реализации в виде [YDB CLI](../quickstart/examples-ydb-cli.md) и [YDB SDK](../sdk/index.md) для [Java](https://github.com/yandex-cloud/ydb-java-sdk), [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) и [Go](https://github.com/yandex-cloud/ydb-go-sdk). С помощью этого API можно выполнять операции над YDB-таблицами. +* YDB API и его реализации в виде [YDB CLI](../quickstart/yql-api/ydb-cli.md) и [YDB SDK](../sdk/index.md) для [Java](https://github.com/yandex-cloud/ydb-java-sdk), [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) и [Go](https://github.com/yandex-cloud/ydb-go-sdk). С помощью этого API можно выполнять операции над YDB-таблицами. Для расчета стоимости запросов в {{ ydb-short-name }} используется понятие **единица запроса** (**RU** — request unit). Каждый выполненный запрос в зависимости от его типа, сложности и размера данных приводит к потреблению определенного количества RU. Итоговая стоимость всех выполненных запросов к {{ ydb-short-name }} складывается из стоимости каждого запроса, выраженной в RU. diff --git a/ru/ydb/quickstart/create-db.md b/ru/ydb/quickstart/create-db.md index bd7407a9c05..70d7947fb57 100644 --- a/ru/ydb/quickstart/create-db.md +++ b/ru/ydb/quickstart/create-db.md @@ -13,4 +13,12 @@ ## Создайте базу данных {#control-plane} +Вы можете создать базу данных в бессерверной (Serverless) конфигурации или с выделенными серверами (Dedicated). Подробнее о различиях в конфигурациях читайте в разделе [{#T}](../concepts/serverless_and_dedicated.md). + +{% note info %} + +Для работы в режиме совместимости с Amazon DynamoDB используйте бессерверную (Serverless) конфигурацию БД. + +{% endnote %} + {% include [create-db-via-console](../_includes/create-db-via-console.md) %} diff --git a/ru/ydb/operations/aws-cli/cleanup.md b/ru/ydb/quickstart/document-api/aws-cli/cleanup.md similarity index 99% rename from ru/ydb/operations/aws-cli/cleanup.md rename to ru/ydb/quickstart/document-api/aws-cli/cleanup.md index 9b7cbadf785..e27553f4893 100644 --- a/ru/ydb/operations/aws-cli/cleanup.md +++ b/ru/ydb/quickstart/document-api/aws-cli/cleanup.md @@ -17,7 +17,7 @@ Результат выполнения: - ```bash + ```text { "TableDescription": { "AttributeDefinitions": [ diff --git a/ru/ydb/operations/aws-cli/create-table.md b/ru/ydb/quickstart/document-api/aws-cli/create-table.md similarity index 99% rename from ru/ydb/operations/aws-cli/create-table.md rename to ru/ydb/quickstart/document-api/aws-cli/create-table.md index fca7a667be9..4646c9dd026 100644 --- a/ru/ydb/operations/aws-cli/create-table.md +++ b/ru/ydb/quickstart/document-api/aws-cli/create-table.md @@ -23,7 +23,7 @@ Результат выполнения: - ```bash + ```text { "TableDescription": { "AttributeDefinitions": [ diff --git a/ru/ydb/operations/aws-cli/get-item.md b/ru/ydb/quickstart/document-api/aws-cli/get-item.md similarity index 98% rename from ru/ydb/operations/aws-cli/get-item.md rename to ru/ydb/quickstart/document-api/aws-cli/get-item.md index 3395c7473cc..c461fc42609 100644 --- a/ru/ydb/operations/aws-cli/get-item.md +++ b/ru/ydb/quickstart/document-api/aws-cli/get-item.md @@ -18,7 +18,7 @@ Результат выполнения: - ```bash + ```text { "Item": { "series_id": { diff --git a/ru/ydb/quickstart/document-api/aws-cli/index.md b/ru/ydb/quickstart/document-api/aws-cli/index.md new file mode 100644 index 00000000000..e69780f70e2 --- /dev/null +++ b/ru/ydb/quickstart/document-api/aws-cli/index.md @@ -0,0 +1,34 @@ +# Обзор + +В разделе описано, как с использованием AWS CLI выполнить следующие операции в {{ ydb-short-name }}: + +* [Создание](create-table.md) таблицы. +* [Добавление](put-item.md), [чтение](get-item.md) и [обновление](update-item.md) данных в таблице. +* [Выполнение](query.md) простых запросов. + +## Перед началом работы {#before-you-begin} + +1. [Настройте окружение AWS](../aws-setup.md). +1. Подготовьте Document API эндпоинт [созданной БД](../../create-db.md). + + {% cut "Как узнать Document API эндпоинт базы данных" %} + + 1. Перейдите в [консоль управления]({{ link-console-main }}). + 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. + 1. Выберите базу данных, к которой планируете сделать запрос. + 1. В меню слева перейдите в раздел **Обзор**. + 1. Значение эндпоинта указано в строке **Document API эндпоинт**. + + Пример значения эндпоинта: + + ```text + https://docapi.serverless.yandexcloud.net/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj + ``` + + {% endcut %} + + {% note info %} + + Для работы в режиме совместимости с Amazon DynamoDB используйте бессерверную (Serverless) конфигурацию БД. + + {% endnote %} diff --git a/ru/ydb/operations/aws-cli/put-item.md b/ru/ydb/quickstart/document-api/aws-cli/put-item.md similarity index 100% rename from ru/ydb/operations/aws-cli/put-item.md rename to ru/ydb/quickstart/document-api/aws-cli/put-item.md diff --git a/ru/ydb/operations/aws-cli/query.md b/ru/ydb/quickstart/document-api/aws-cli/query.md similarity index 99% rename from ru/ydb/operations/aws-cli/query.md rename to ru/ydb/quickstart/document-api/aws-cli/query.md index 16fe440dba7..8f620435aa0 100644 --- a/ru/ydb/operations/aws-cli/query.md +++ b/ru/ydb/quickstart/document-api/aws-cli/query.md @@ -19,7 +19,7 @@ Результат выполнения: - ```bash + ```text { "Items": [ { diff --git a/ru/ydb/operations/aws-cli/update-item.md b/ru/ydb/quickstart/document-api/aws-cli/update-item.md similarity index 99% rename from ru/ydb/operations/aws-cli/update-item.md rename to ru/ydb/quickstart/document-api/aws-cli/update-item.md index b43c570b9aa..448e5532c3e 100644 --- a/ru/ydb/operations/aws-cli/update-item.md +++ b/ru/ydb/quickstart/document-api/aws-cli/update-item.md @@ -21,7 +21,7 @@ Результат выполнения: - ```bash + ```text { "Attributes": { "series_id": { diff --git a/ru/ydb/quickstart/document-api/aws-http.md b/ru/ydb/quickstart/document-api/aws-http.md new file mode 100644 index 00000000000..ed09cb4c508 --- /dev/null +++ b/ru/ydb/quickstart/document-api/aws-http.md @@ -0,0 +1,146 @@ +# Работа с данными через HTTP-интерфейс + +В этом разделе вы узнаете как создать таблицу, добавить в нее данные, а затем прочитать их, используя HTTP-интерфейс Document API. + +Для выполнения HTTP-запросов в примерах раздела используется утилита [cURL](https://curl.se/). + +## Перед началом работы {#before-you-begin} + +1. Если у вас еще нет интерфейса командной строки {{ yandex-cloud }}, [установите и инициализируйте его](../../../cli/quickstart.md#install). +1. Подготовьте Document API эндпоинт [созданной БД](../create-db.md). + + {% cut "Как узнать Document API эндпоинт базы данных" %} + + 1. Перейдите в [консоль управления]({{ link-console-main }}). + 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. + 1. Выберите базу данных, к которой планируете сделать запрос. + 1. В меню слева перейдите в раздел **Обзор**. + 1. Значение эндпоинта указано в строке **Document API эндпоинт**. + + Пример значения эндпоинт `https://docapi.serverless.yandexcloud.net/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj`. + + {% endcut %} + + {% note info %} + + Для работы в режиме совместимости с Amazon DynamoDB используйте бессерверную (Serverless) конфигурацию БД. + + {% endnote %} + +1. Установите для переменной окружения `ENDPOINT` подготовленное значение: + + ```bash + export ENDPOINT= + ``` + +## Создание таблицы {#create-table} + +{% list tabs %} + +- HTTP-интерфейс + + Задайте конфигурацию таблицы в файле `create.json`: + + ```json + { + "TableName": "test/pets", + "AttributeDefinitions": + [ + { + "AttributeName": "species", + "AttributeType": "S" + }, + { + "AttributeName": "name", + "AttributeType": "S" + } + ], + "KeySchema": + [ + { + "AttributeName": "species", + "KeyType": "HASH" + }, + { + "AttributeName": "name", + "KeyType": "RANGE" + } + ] + } + ``` + + Создайте документную таблицу в базе с помощью команды: + + ```bash + curl \ + -H 'X-Amz-Target: DynamoDB_20120810.CreateTable' \ + -H "Authorization: Bearer $(yc iam create-token)" \ + -H "Content-Type: application.json" \ + -d @create.json $ENDPOINT + ``` + + Подробнее о методе `CreateTable` читайте в [справочнике Document API](../../docapi/api-ref/actions/createTable.md). + +{% endlist %} + +## Добавление данных {#add} + +{% list tabs %} + +- HTTP-интерфейс + + Подготовьте данные для сохранения в документную таблицу, создав файл `put.json`: + + ```json + { + "TableName": "test/pets", + "Item": + { + "species": {"S": "cat"}, + "name": {"S": "Tom"}, + "color": {"S": "black"}, + "price": {"N": "10.5"} + } + } + ``` + + Добавьте данные в таблицу с помощью команды: + + ```bash + curl \ + -H 'X-Amz-Target: DynamoDB_20120810.PutItem' \ + -H "Authorization: Bearer $(yc iam create-token)" \ + -H "Content-Type: application.json" \ + -d @put.json $ENDPOINT + ``` + + Подробнее о методе `PutItem` читайте в [справочнике Document API](../../docapi/api-ref/actions/putItem.md). + +{% endlist %} + +## Чтение записи {#read} + +{% list tabs %} + +- HTTP-интерфейс + + Чтобы прочитать данные из документной таблицы, выполните команду: + + ```bash + curl \ + -H 'X-Amz-Target: DynamoDB_20120810.GetItem' \ + -H "Authorization: Bearer $(yc iam create-token)" \ + -H "Content-Type: application.json" \ + -d '{"TableName": "test/pets", "Key": {"species":{"S":"cat"}, "name":{"S":"Tom"}}}' \ + $ENDPOINT + ``` + + Результат: + + ```text + {"Item":{"name":{"S":"Tom"},"species":{"S":"cat"},"color":{"S":"black"},"price":{"N":"10.5"}}} + ``` + + Подробнее о методе `GetItem` читайте в [справочнике Document API](../../docapi/api-ref/actions/getItem.md). + +{% endlist %} diff --git a/ru/ydb/operations/aws-sdk/create-item.md b/ru/ydb/quickstart/document-api/aws-sdk/create-item.md similarity index 100% rename from ru/ydb/operations/aws-sdk/create-item.md rename to ru/ydb/quickstart/document-api/aws-sdk/create-item.md diff --git a/ru/ydb/operations/aws-sdk/create-table.md b/ru/ydb/quickstart/document-api/aws-sdk/create-table.md similarity index 100% rename from ru/ydb/operations/aws-sdk/create-table.md rename to ru/ydb/quickstart/document-api/aws-sdk/create-table.md diff --git a/ru/ydb/operations/aws-sdk/delete-item.md b/ru/ydb/quickstart/document-api/aws-sdk/delete-item.md similarity index 100% rename from ru/ydb/operations/aws-sdk/delete-item.md rename to ru/ydb/quickstart/document-api/aws-sdk/delete-item.md diff --git a/ru/ydb/operations/aws-sdk/delete-table.md b/ru/ydb/quickstart/document-api/aws-sdk/delete-table.md similarity index 100% rename from ru/ydb/operations/aws-sdk/delete-table.md rename to ru/ydb/quickstart/document-api/aws-sdk/delete-table.md diff --git a/ru/ydb/operations/aws-sdk/index.md b/ru/ydb/quickstart/document-api/aws-sdk/index.md similarity index 54% rename from ru/ydb/operations/aws-sdk/index.md rename to ru/ydb/quickstart/document-api/aws-sdk/index.md index 4a7a56d5131..3e2970f70b0 100644 --- a/ru/ydb/operations/aws-sdk/index.md +++ b/ru/ydb/quickstart/document-api/aws-sdk/index.md @@ -1,4 +1,4 @@ -# Начало работы с AWS SDK +# Обзор В этом разделе описано, как с помощью AWS SDK написать простые программы на нескольких языках программирования, которые выполняют следующие операции в {{ ydb-short-name }}: @@ -12,8 +12,30 @@ ## Перед началом работы {#before-you-begin} -1. [Создайте](../create_manage_database.md#create-db) базу данных. -1. Настройте [инструменты AWS](../../quickstart/aws-instrument/setup.md). +1. [Настройте окружение AWS](../aws-setup.md). +1. Подготовьте Document API эндпоинт [созданной БД](../../create-db.md). + + {% cut "Как узнать Document API эндпоинт базы данных" %} + + 1. Перейдите в [консоль управления]({{ link-console-main }}). + 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. + 1. Выберите базу данных, к которой планируете сделать запрос. + 1. В меню слева перейдите в раздел **Обзор**. + 1. Значение эндпоинта указано в строке **Document API эндпоинт**. + + Пример значения эндпоинта: + + ```text + https://docapi.serverless.yandexcloud.net/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj + ``` + + {% endcut %} + + {% note info %} + + Для работы в режиме совместимости с Amazon DynamoDB используйте бессерверную (Serverless) конфигурацию БД. + + {% endnote %} ## Настройка окружения {#environment-set} diff --git a/ru/ydb/operations/aws-sdk/load-data.md b/ru/ydb/quickstart/document-api/aws-sdk/load-data.md similarity index 100% rename from ru/ydb/operations/aws-sdk/load-data.md rename to ru/ydb/quickstart/document-api/aws-sdk/load-data.md diff --git a/ru/ydb/operations/aws-sdk/query-and-scan.md b/ru/ydb/quickstart/document-api/aws-sdk/query-and-scan.md similarity index 100% rename from ru/ydb/operations/aws-sdk/query-and-scan.md rename to ru/ydb/quickstart/document-api/aws-sdk/query-and-scan.md diff --git a/ru/ydb/operations/aws-sdk/read-item.md b/ru/ydb/quickstart/document-api/aws-sdk/read-item.md similarity index 100% rename from ru/ydb/operations/aws-sdk/read-item.md rename to ru/ydb/quickstart/document-api/aws-sdk/read-item.md diff --git a/ru/ydb/operations/aws-sdk/update-item.md b/ru/ydb/quickstart/document-api/aws-sdk/update-item.md similarity index 100% rename from ru/ydb/operations/aws-sdk/update-item.md rename to ru/ydb/quickstart/document-api/aws-sdk/update-item.md diff --git a/ru/ydb/quickstart/aws-instrument/setup.md b/ru/ydb/quickstart/document-api/aws-setup.md similarity index 65% rename from ru/ydb/quickstart/aws-instrument/setup.md rename to ru/ydb/quickstart/document-api/aws-setup.md index 3249fde18c9..1adea290b67 100644 --- a/ru/ydb/quickstart/aws-instrument/setup.md +++ b/ru/ydb/quickstart/document-api/aws-setup.md @@ -1,88 +1,84 @@ -# Настройка AWS CLI и AWS SDK +# Настройка инструментов AWS + +Для работы с БД через Document API в режиме совместимости с AWS DynamoDB вы можете использовать инструменты AWS: -Для работы с базой через Document API в режиме совместимости с AWS DynamoDB вы можете использовать инструменты от AWS: * [AWS CLI](https://aws.amazon.com/ru/cli/) — интерфейс командной строки AWS. -* [AWS SDK](https://aws.amazon.com/ru/tools/#sdk) — инструменты для разработки. - -Для корректной работы инструментов AWS необходимо настроить следующие параметры: -* [aws_access_key_id](https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-aws_access_key_id.html); -* [aws_secret_access_key](https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-aws_secret_access_key.html); -* [region](https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.html). +* [AWS SDK](https://aws.amazon.com/ru/tools/#sdk) — инструменты для разработки. -## Настройка окружения {#setup} +Для работы инструментов AWS выполните следующие настройки: 1. Создайте сервисный аккаунт, от имени которого вы будете работать с базой. Сервисный аккаунт должен быть создан в том же каталоге, в котором располагается база данных. - + {% list tabs %} - + - Консоль управления - + {% include [create-sa-via-console](../../../_includes/iam/create-sa-via-console.md) %} - + - CLI - + {% include [default-catalogue](../../../_includes/default-catalogue.md) %} - + 1. Посмотрите описание команды создания сервисного аккаунта: - - ``` - $ yc iam service-account create --help - ``` - - 2. Создайте сервисный аккаунт с именем `my-robot`: - + + ```bash + yc iam service-account create --help ``` - $ yc iam service-account create --name my-robot + + 1. Создайте сервисный аккаунт с именем `my-robot`: + + ```bash + yc iam service-account create --name my-robot ``` - + {% include [name-format](../../../_includes/name-format.md) %} - + - API - + Чтобы создать сервисный аккаунт, воспользуйтесь методом [create](../../../iam/api-ref/ServiceAccount/create.md) для ресурса [ServiceAccount](../../../iam/api-ref/ServiceAccount/index.md). - + {% endlist %} - + 1. Назначьте сервисному аккаунту роль `editor`. - + {% include [grant-role-for-sa](../../../_includes/iam/grant-role-for-sa.md) %} - -1. Получите статические ключи доступа `aws_access_key_id` и `aws_secret_access_key`. + +1. Получите идентификатор ключа и ключ доступа созданного сервисного аккаунта: {% list tabs %} - + - Консоль управления - + 1. Перейдите в каталог, которому принадлежит сервисный аккаунт. 1. Выберите вкладку **Сервисные аккаунты**. 1. Выберите сервисный аккаунт и нажмите на строку с его именем. 1. Нажмите кнопку **Создать новый ключ** на верхней панели. - 1. Выберите пункт **Создать ключ доступа**. + 1. Выберите пункт **Создать статический ключ доступа**. 1. Задайте описание ключа, чтобы потом было проще найти его в консоли управления. 1. Сохраните идентификатор и секретный ключ. - + {% note alert %} - + После закрытия диалога значение ключа будет недоступно. - + {% endnote %} - + - CLI - + {% include [default-catalogue](../../../_includes/default-catalogue.md) %} - + 1. Посмотрите описание команды создания статического ключа доступа: - - ``` - $ yc iam access-key create --help + + ```bash + yc iam access-key create --help ``` - + 1. Выберите сервисный аккаунт, например `my-robot`: - - ``` - $ yc iam service-account list + + ```bash + yc iam service-account list +----------------------+------------------+-------------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------------+ @@ -90,10 +86,11 @@ | aje9sda1ufvqcmfksd3f | blabla | bla bla bla is my description | +----------------------+------------------+-------------------------------+ ``` + 1. Создайте ключ доступа для сервисного аккаунта `my-robot`: - - ``` - $ yc iam access-key create --service-account-name my-robot + + ```bash + yc iam access-key create --service-account-name my-robot access_key: id: aje6t3vsbj8lp9r4vk2u @@ -102,32 +99,39 @@ key_id: 0n8X6WY6S24N7OjXQ0YQ secret: JyTRFdqw8t1kh2-OJNz4JX5ZTz9Dj1rI9hxtzMP1 ``` + 1. Сохраните идентификатор `key_id` и секретный ключ `secret`. Получить значение ключа снова будет невозможно. - + - API - + Чтобы создать ключ доступа, воспользуйтесь методом [create](../../../iam/api-ref/AccessKey/create.md) для ресурса [AccessKey](../../../iam/api-ref/AccessKey/index.md). - + {% endlist %} - -1. Установите [AWS CLI](https://aws.amazon.com/ru/cli/). -1. Настройте [окружение](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). Один из самых простых способов настройки — запуск `aws configure`. В качестве ключей используйте значения, полученные выше. Для региона используйте `ru-central1`: - ``` - $ aws configure +1. Установите [AWS CLI](https://aws.amazon.com/ru/cli/). +1. Настройте окружение AWS CLI: Запустите команду `aws configure` и последовательно введите сохраненные ранее идентификатор ключа и секретный ключ. Для значения региона используйте `ru-central1`: + + ```bash + aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: ru-central1 Default output format [None]: ``` - - В результате будут созданы файлы `~/.aws/credentials` и `~/.aws/config` (`C:\Users\USERNAME\.aws\credentials` и `C:\Users\USERNAME\.aws\config` в Windows). -1. Проверьте корректность настройки, запустив команду листинга таблиц в базе. В качестве значения `--endpoint` укажите Document API эндпоинт, доступный на вкладке **Обзор** вашей базы данных в [консоли управления]({{ link-console-main }}). + В результате будут созданы файлы `~/.aws/credentials` и `~/.aws/config` (`C:\Users\USERNAME\.aws\credentials` и `C:\Users\USERNAME\.aws\config` в Windows). +1. Проверьте корректность настройки, запустив команду листинга таблиц в [созданной](../create-db.md) ранее БД. В качестве значения `--endpoint` укажите Document API эндпоинт, доступный на вкладке **Обзор** вашей базы данных в [консоли управления]({{ link-console-main }}). + + ```bash + aws dynamodb list-tables \ + --endpoint https://docapi.serverless.yandexcloud.net/ru-central1/b1g4ej5ju4rf5kelpk4b/etn03ubijq52j860kvgj ``` - $ aws dynamodb list-tables --endpoint https://docapi.serverless.yandexcloud.net/ru-central1/b1g4ej5ju4rf5kelpk4b/etn03ubijq52j860kvgj + + Результат выполнения: + + ```text { "TableNames": [ ] } - ``` \ No newline at end of file + ``` diff --git a/ru/ydb/quickstart/examples-docapi.md b/ru/ydb/quickstart/examples-docapi.md deleted file mode 100644 index 5a94c74c8ba..00000000000 --- a/ru/ydb/quickstart/examples-docapi.md +++ /dev/null @@ -1,307 +0,0 @@ -# Работа с данными - -В этом разделе вы узнаете как работать с Document API, совместимым с AWS DynamoDB. Вы попробуете создать таблицу, сохранить в нее данные, а затем прочитать их. - -## Перед началом работы {#before-you-begin} - -Чтобы работать с базой данных через [Document API](../docapi/api-ref/index.md): - -{% list tabs %} - -- HTTP-интерфейс - - Чтобы создать документную таблицу в базе данных, добавить в нее данные и прочитать их с помощью `curl`: - - 1. Если у вас еще нет интерфейса командной строки {{ yandex-cloud }}, [установите и инициализируйте его](../../cli/quickstart.md#install). - 1. В [консоли управления]({{ link-console-main }}) перейдите в каталог для создания базы данных. - 1. Выберите сервис **Yandex Database**. - 1. [Создайте serverless базу данных](../quickstart/create-db.md) в {{ yandex-cloud }}. - 1. В свойствах созданной базы на вкладке **Обзор** найдите и скопируйте значение `Document API эндпоинт` вашей базы. - 1. Установите для переменной окружения `ENDPOINT` скопированное ранее значение: - - ```bash - export ENDPOINT= - ``` - -- Node.js - - Используйте виртуальную машину в {{ yandex-cloud }} и выполняйте операции над документными таблицами с помощью [Document API](../docapi/api-ref/index.md) — HTTP API, совместимого с Amazon DynamoDB. - - 1. Для аутентификации в базе данных [создайте сервисный аккаунт](../../iam/operations/sa/create) и [назначьте](../../iam/operations/sa/assign-role-for-sa.md) ему роли `viewer` и `editor`. - 1. [Создайте виртуальную машину](../../compute/operations/vm-create/create-linux-vm) в {{ yandex-cloud }}. При создании в разделе "Доступ" выберите созданный сервисный аккаунт. - 1. Сохраните публичный IP-адрес виртуальной машины. Для этого перейдите в свойства виртуальной машины или [воспользуйтесь интерфейсом командной строки](../../compute/operations/vm-info/get-info#outside-instance) . - 1. [Подключитесь к виртуальной машине по SSH](../../compute/operations/vm-connect/ssh.md). - 1. Подготовьте виртуальную машину к работе: - - {% list tabs %} - - - Ubuntu - - 1. Обновите пакеты в системе командой: - - ```bash - sudo apt-get update - ``` - - 1. Установите Node.js и npm: - - ```bash - sudo apt-install nodejs npm - ``` - - 1. Чтобы установить инструменты разработчика, выполните команду: - - ```bash - npm install yandex-cloud - ``` - - {% endlist %} - -{% endlist %} - -## Создание таблицы {#create} - -{% list tabs %} - -- HTTP-интерфейс - - Чтобы создать документную таблицу в базе данных: - - 1. Задайте конфигурацию таблицы в файле `create.json`: - - ```json - { - "TableName": "test/pets", - "AttributeDefinitions": - [ - { - "AttributeName": "species", - "AttributeType": "S" - }, - { - "AttributeName": "name", - "AttributeType": "S" - } - ], - "KeySchema": - [ - { - "AttributeName": "species", - "KeyType": "HASH" - }, - { - "AttributeName": "name", - "KeyType": "RANGE" - } - ] - } - ``` - - 1. Создайте документную таблицу в базе с помощью команды: - - ```bash - curl -H 'X-Amz-Target: DynamoDB_20120810.CreateTable' \ - -H "Authorization: Bearer $(yc iam create-token)" \ - -H "Content-Type: application.json" \ - -d @create.json $ENDPOINT - ``` - - Подробнее о методе `CreateTable` читайте в [справочнике Document API](../docapi/api-ref/actions/createTable.md). - -- Node.js - - Для создания документной таблицы в базе данных: - - 1. Задайте конфигурацию таблицы в файле `create.js`, заменив `Document API эндпоинт` сохраненным ранее значением: - - ```javascript - const { DocAPIService } = require('yandex-cloud/lib/slydb/docapi/docapi') - - // Укажите Document API эндпоинт вашей базы данных - const endpoint = ''; - const docapi = new DocAPIService(endpoint) - - var params = - { - TableName: "test/pets", - AttributeDefinitions: - [ - { - AttributeName: "species", - AttributeType: "S" - }, - { - AttributeName: "name", - AttributeType: "S" - } - ], - KeySchema: - [ - { - AttributeName: "species", - KeyType: "HASH" - }, - { - AttributeName: "name", - KeyType: "RANGE" - } - ] - }; - docapi.createTable(params).then(res => { console.log(res); }).catch(err => { console.log(err); }); - ``` - 1. Запустите файл с помощью Node.js: - - ```bash - node create.js - ``` - - Результат: - - ``` - { TableDescription: - { AttributeDefinitions: [ [Object], [Object] ], - TableName: 'test/pets', - KeySchema: [ [Object], [Object] ], - TableStatus: 'ACTIVE', - CreationDateTime: 2020-11-03T22:39:51.000Z, - TableSizeBytes: 0, - ItemCount: 0 } } - ``` - -{% endlist %} - -## Добавление записи {#add} - -{% list tabs %} - -- HTTP-интерфейс - - Чтобы добавить данные в документную таблицу: - - 1. Подготовьте данные для сохранения в документную таблицу, создав файл `put.json`: - - ```json - { - "TableName": "test/pets", - "Item": - { - "species": {"S": "cat"}, - "name": {"S": "Tom"}, - "color": {"S": "black"}, - "price": {"N": "10.5"} - } - } - ``` - - 1. Добавьте данные в таблицу с помощью команды: - - ```bash - curl -H 'X-Amz-Target: DynamoDB_20120810.PutItem' \ - -H "Authorization: Bearer $(yc iam create-token)" \ - -H "Content-Type: application.json" \ - -d @put.json $ENDPOINT - ``` - - Подробнее о методе `PutItem` читайте в [справочнике Document API](../docapi/api-ref/actions/putItem.md). - -- Node.js - - Чтобы добавить запись в документную таблицу: - - 1. Подготовьте данные для сохранения в документную таблицу, создав на виртуальной машине файл `add.js`. Замените `Document API эндпоинт` сохраненным ранее значением: - - ```javascript - const { DocAPIService } = require('yandex-cloud/lib/slydb/docapi/docapi') - - // Укажите Document API эндпоинт вашей базы данных - const endpoint = ''; - const docapi = new DocAPIService(endpoint) - - var params = - { - TableName: "test/pets", - Item: - { - "species": "cat", - "name": "Tom", - "color": "Black", - "price": "10.5" - } - }; - docapi.putItem(params).then(res => { console.log(res); }).catch(err => { console.log(err); }); - ``` - - 1. Выполните команду: - - ```bash - node add.js - ``` - -{% endlist %} - -## Чтение записи {#read} - -{% list tabs %} - -- HTTP-интерфейс - - Чтобы прочитать данные из документной таблицы: - - 1. Выполните команду: - - ```bash - curl -H 'X-Amz-Target: DynamoDB_20120810.GetItem' \ - -H "Authorization: Bearer $(yc iam create-token)" \ - -H "Content-Type: application.json" \ - -d '{"TableName": "test/pets", "Key": {"species":{"S":"cat"}, "name":{"S":"Tom"}}}' \ - $ENDPOINT - ``` - - Результат: - - ``` - {"Item":{"name":{"S":"Tom"},"species":{"S":"cat"},"color":{"S":"black"},"price":{"N":"10.5"}}} - ``` - - Подробнее о методе `GetItem` читайте в [справочнике Document API](../docapi/api-ref/actions/getItem.md). - -- Node.js - - Для чтения записи из документной таблицы: - - 1. Создайте на виртуальной машине файл `read.js`, заменив `Document API эндпоинт` сохраненным ранее значением: - - ```javascript - const { DocAPIService } = require('yandex-cloud/lib/slydb/docapi/docapi') - - // Укажите Document API эндпоинт вашей базы данных - const endpoint = ''; - const docapi = new DocAPIService(endpoint) - - var params = - { - TableName: "test/pets", - Key: - { - "species": "cat", - "name": "Tom" - } - }; - docapi.getItem(params).then(res => { console.log(res); }).catch(err => console. log(err)); - ``` - - 1. Выполните команду: - - ```bash - node read.js - ``` - - Результат: - - ``` - { Item: - { name: 'Tom', species: 'cat', color: 'Black', price: '10.5' } } - ``` - -{% endlist %} - diff --git a/ru/ydb/quickstart/examples-ydb-cli.md b/ru/ydb/quickstart/examples-ydb-cli.md deleted file mode 100644 index c6d2b86d470..00000000000 --- a/ru/ydb/quickstart/examples-ydb-cli.md +++ /dev/null @@ -1,317 +0,0 @@ -# Использование интерфейса командной строки YDB CLI - -В этом разделе описана работа с базой при помощи интерфейса командной строки YDB CLI. Вы узнаете что нужно для начала работы с консольным клиентом, как его установить и как с его помощью выполнить ряд основных запросов. - -## Перед началом работы {#before-you-begin} - -Чтобы успешно выполнять команды через YDB CLI, потребуются: -* База данных. Если у вас еще нет БД, [создайте ее](create-db.md) и [наполните данными](examples-yql.md). -* Эндпоинт и полный путь к базе данных в {{ ydb-full-name }}. - - {% cut "Как узнать эндпоинт и путь для своей базы данных" %} - - Чтобы узнать эндпоинт и путь для своей базы данных: - 1. Перейдите в [консоль управления]({{ link-console-main }}). - 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. - 1. Выберите базу данных, к которой планируете сделать запрос. - 1. В меню слева перейдите в раздел **Обзор**. - 1. Значение эндпоинта указано в строке **Эндпоинт**. - * Пример значения параметра для Dedicated базы: `lb.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135`. - * Пример значения параметра для Serverless базы: `ydb.serverless.yandexcloud.net:2135`. - Порт для эндпоинта по умолчанию `2135`, так что указывать в запросе `:2135` не обязательно. - 1. Полный путь к базе указан в строке **База данных**. - Пример значения параметра: `/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj`. - - {% endcut %} - -* Разрешение входящего трафика через порт `2135`. Убедитесь, что в назначенной [группе безопасности](../../vpc/concepts/security-groups.md) существует соответствующее правило или добавьте его. - -## Установка YDB CLI {#how-to-install} - -{% list tabs %} - -- Linux - - Чтобы установить YDB CLI: - 1. Выполните команду: - - ``` - curl https://storage.yandexcloud.net/yandexcloud-ydb/install.sh | bash - ``` - - Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения PATH. - - {% note info %} - - Скрипт дополнит переменную PATH только если его запустить в командных оболочках bash или zsh. - Если Вы запустили скрипт в другой оболочке, добавьте путь до CLI в переменную PATH самостоятельно. - - {% endnote %} - - 1. Перезапустите командную оболочку. - -- macOS - - Чтобы установить YDB CLI: - 1. Выполните команду: - - ``` - curl https://storage.yandexcloud.net/yandexcloud-ydb/install.sh | bash - ``` - - Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения PATH. - - 1. Перезапустите командную оболочку, чтобы перезагрузить переменные окружения. - -- Windows - - Для Windows YDB CLI можно установить с помощью PowerShell или `cmd`: - - - Для установки с помощью PowerShell: - - 1. Выполните команду: - ``` - iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-ydb/install.ps1') - ``` - - 1. Скрипт установки спросит, нужно ли добавить путь до `{{ ydb-cli }}` в переменную PATH: - ``` - Add ydb installation dir to your PATH? [Y/n] - ``` - - 1. Введите `Y`. После этого YDB CLI можно пользоваться, командную оболочку перезапускать не обязательно. - - - Для установки с помощью `cmd`: - - 1. Выполните команду: - ``` - @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-ydb/install.ps1'))" - ``` - - 1. Скрипт установки спросит, нужно ли добавить путь до `{{ ydb-cli }}` в переменную PATH: - ``` - Add ydb installation dir to your PATH? [Y/n] - ``` - - 1. Введите `Y`. - 1. Перезапустите командную оболочку, чтобы перезагрузить переменные окружения. - - {% note info %} - - YDB CLI использует символы юникода в выводе некоторых команд. При некорректном отображении таких символов в консоли Windows, переключите кодировку на UTF-8, выполнив команду: - ``` - chcp 65001 - ``` - - {% endnote %} - -{% endlist %} - -## Аутентификация в YDB CLI { #authentication } - -Для выполнения запросов к {{ ydb-full-name }} в {{ yandex-cloud }} с помощью YDB CLI необходимо аутентифицироваться. Выберите один из доступных ниже способов авторизации. - -{% list tabs %} - -- OAuth-токен - - В параметре `--yc-token-file` укажите путь к файлу, в котором содержится ваш [OAuth-токен](../../iam/concepts/authorization/oauth-token.md). - - Чтобы не указывать эту опцию каждый раз при вызовах команд `{{ ydb-cli }}`, **значение** OAuth-токена можно сохранить в переменную окружения `YC_TOKEN`. - -- IAM-токен - - В параметре `--iam-token-file` укажите путь к файлу, в котором содержится ваш [IAM-токен](../../iam/concepts/authorization/iam-token.md). - - Чтобы не указывать этот пара опцию каждый раз при вызовах команд `{{ ydb-cli }}`, **значение** [IAM-токена](../../iam/concepts/authorization/iam-token.md) можно сохранить в переменную окружения `IAM_TOKEN`. - - {% note alert %} - - Время жизни IAM-токена 12 часов. - - {% endnote %} - -- Сервис метаданных - - Добавьте к команде флаг `--use-metadata-credentials` и `{{ ydb-cli }}` попытается получить [IAM-токен](../../iam/concepts/authorization/iam-token.md) с помощью [сервиса метаданных](../../compute/operations/vm-connect/auth-inside-vm.md#auth-inside-vm.md) при работе из виртуальной машины в {{ yandex-cloud }}. - - Также вместо указания флага можно установить значение **1** в переменную окружения — `USE_METADATA_CREDENTIALS=1`. - -- Авторизованные ключи доступа - - В параметре `--sa-key-file` укажите путь к файлу с [авторизованными ключами доступа](../../iam/operations/authorized-key/create.md) сервисного аккаунта. - - Или можно сохранить **путь к файлу** в переменную окружения `SA_KEY_FILE`. - -{% endlist %} - -### Проверка корректности аутентификации {#whoami} - -Для проверки корректности аутентификации можно использовать команду запроса информации о пользователе: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> --yc-token-file <путь к файлу с токеном> discovery whoami -g -``` - -Параметры команды: - -- `-e` и `-d` — это **Эндпоинт** и **База данных**. В разделе [Предварительные требования](#requirements) подробно описано, как их можно получить. -- Опция `-g` добавляет в вывод список групп, в которых состоит пользователь. - -Результат команды: - -```bash -User SID: aje6o75au36h5d0tnr8k@as - -User has no groups -``` - -В этом примере токен передается через опцию `--yc-token-file`. Можно сохранить **значение** самого токена в переменную окружения YC_TOKEN, чтобы уменьшить объем вводимого текста. - -Используйте для этого команду: - -{% list tabs %} - -- Linux/macOS - - ```bash - export YC_TOKEN=<значение токена> - ``` - -- Windows - - * Для PowerShell: - - ```bash - SET YC_TOKEN=<значение токена> - ``` - * Для `cmd`: - - ```bash - $YC_TOKEN = “<значение токена>” - ``` - -{% endlist %} - - -## Примеры использования {#examples} - -### Получение списка эндпоинтов для базы данных {#discovery_list} - -Чтобы получить список эндпойнтов, выполните команду: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> discovery list -``` - -Результат команды: - -```bash -grpcs://vm-etn01lrprvnlnhv8v5kj-ru-central1-a-abod.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135 #table_service #scripting #discovery #rate_limiter #locking #kesus -``` - -`#table_service`, `#scripting` и другие — это gRPC-сервисы, доступные на данном эндпоинте. - -### Выполнение запроса к данным {#query} - -Чтобы выполнить запрос к данным, выполните команду: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> table query execute -q "SELECT season_id, episode_id, title FROM episodes WHERE series_id = 1 AND season_id > 1 ORDER BY season_id, episode_id LIMIT 3" -``` - -Результат команды: - -```bash -┌───────────┬────────────┬────────────────────────────────┐ -| season_id | episode_id | title | -├───────────┼────────────┼────────────────────────────────┤ -| [2u] | [1u] | ["The Work Outing"] | -├───────────┼────────────┼────────────────────────────────┤ -| [2u] | [2u] | ["Return of the Golden Child"] | -├───────────┼────────────┼────────────────────────────────┤ -| [2u] | [3u] | ["Moss and the German"] | -└───────────┴────────────┴────────────────────────────────┘ -``` - - -### Листинг объектов {#listing} - -Листинг объектов производится подкомандой `scheme ls <путь>`. Если путь не указан, то будет производиться листинг корня базы данных: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme ls -``` - -Результат команды: - -```bash -episodes seasons series some_directory .sys -``` - -Можно посмотреть подробную информацию, добавив флаг `-l`: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme ls -l - -``` - -Результат команды: - -```bash -┌───────┬─────────────────────────┬─────────┬───────────────────────────────┬───────────────────────────────┬────────────────┐ -| Type | Owner | Size | Created | Modified | Name | -├───────┼─────────────────────────┼─────────┼───────────────────────────────┼───────────────────────────────┼────────────────┤ -| table | aje6o75au36h5d0tnr8k@as | 1.13 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:24:31 UTC | episodes | -| table | aje6o75au36h5d0tnr8k@as | 1.45 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:20:07 UTC | seasons | -| table | aje6o75au36h5d0tnr8k@as | 1.12 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:19:46 UTC | series | -| dir | aje6o75au36h5d0tnr8k@as | | | | some_directory | -| dir | | | | | .sys | -└───────┴─────────────────────────┴─────────┴───────────────────────────────┴───────────────────────────────┴────────────────┘ -``` - -{% note info %} - -Таблицы `episodes`, `series` и `seasons` из приводимых примеров можно создать самостоятельно. -В разделе ["Начало работы - Примеры YQL-запросов"](examples-yql.md) описано, как можно выполнять запросы к {{ ydb-full-name }} в [консоли {{ yandex-cloud }}](https://console.cloud.yandex.ru/). -Создание всех таблиц из приводимых примеров описано в разделе ["Туториал YQL - Создание таблицы"](../yql/tutorial/create_demo_tables.md). -А наполнение их данными — в разделе ["Туториал YQL - Добавление данных в таблицу"](../yql/tutorial/fill_tables_with_data.md). - -{% endnote %} - -Создайте дерево из директорий: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme mkdir some_directory -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme mkdir some_directory/sub-directory1 -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme mkdir some_directory/sub-directory1/sub-directory1-1 -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme mkdir some_directory/sub-directory2 -``` - -Теперь при помощи опции `-R` для команды `scheme ls` можно посмотреть рекурсивный листинг всех поддиректорий и объектов в них по указанному пути: - -```bash -{{ ydb-cli }} -e <эндпоинт> -d <база данных> scheme ls some_directory -lR -``` - -Результат команды: - -```bash -┌──────┬─────────────────────────┬──────┬─────────┬──────────┬─────────────────────────────────┐ -| Type | Owner | Size | Created | Modified | Name | -├──────┼─────────────────────────┼──────┼─────────┼──────────┼─────────────────────────────────┤ -| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory1 | -| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory1/sub-directory1-1 | -| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory2 | -└──────┴─────────────────────────┴──────┴─────────┴──────────┴─────────────────────────────────┘ -``` - - -#### Что дальше {#what-is-next} - -Ознакомьтесь с другими примерами использования YDB CLI: -* [{#T}](../operations/ydb-cli/commands.md). -* [{#T}](../operations/ydb-cli/scheme-describe.md). -* [{#T}](../operations/ydb-cli/readtable.md). -* [{#T}](../operations/ydb-cli/operations-index.md). - diff --git a/ru/ydb/quickstart/examples-yql.md b/ru/ydb/quickstart/examples-yql.md deleted file mode 100644 index b8a572c0bc0..00000000000 --- a/ru/ydb/quickstart/examples-yql.md +++ /dev/null @@ -1,321 +0,0 @@ -# Работа с данными - -После [создания базы данных](create-db.md) выполните базовые YQL-запросы: создайте таблицу, работайте с данными таблицы и удалите её. Вы можете использовать [консоль управления]({{ link-console-main }}) или [интерфейс командной строки (YDB CLI)](examples-ydb-cli.md). - -{% note tip %} - -Подробнее о синтаксисе YQL читайте в [Справочнике YQL](../yql/reference/overview.md). - -{% endnote %} - -## Перед началом работы { #before-work } - -Чтобы успешно работать с базой данных, используя YDB CLI: - -1. [Установите YDB CLI](examples-ydb-cli.md#how-to-install) — консольный клиент, для работы с {{ ydb-full-name }}. -1. Узнайте эндпоинт и путь для своей базы данных, для этого: - - {% list tabs %} - - - Консоль управления - - Чтобы узнать эндпоинт и путь для своей базы данных: - 1. Перейдите в [консоль управления]({{ link-console-main }}). - 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. - 1. Выберите базу данных, к которой планируете выполнять запросы. - 1. В меню слева перейдите в раздел **Обзор**. - 1. Значение эндпоинта указано в строке **Эндпоинт**. - * Пример значения параметра для Dedicated базы: `lb.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135`. - * Пример значения параметра для Serverless базы: `ydb.serverless.yandexcloud.net:2135`. - Порт для эндпоинта по умолчанию `2135`, так что указывать в запросе `:2135` не обязательно. - 1. Полный путь к базе указан в строке **База данных**. - Пример значения параметра: `/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj`. - - - CLI - - - {% include [cli-install](../../_includes/cli-install.md) %} - - 1. Посмотрите описание команды для получения списка баз данных: - - ```bash - yc ydb database list --help - ``` - 1. Чтобы получить список баз данных в каталоге по умолчанию, выполните команду: - - ```bash - yc ydb database list - ``` - - В результате в колонке `ENDPOINT` будет указан `эндпоинт` и база данных. - - ```bash - +----------------------+----------+-------------+------------------------------------------------+---------------------+---------+ - | ID | NAME | DESCRIPTION | ENDPOINT | CREATED AT | STATUS | - +----------------------+----------+-------------+------------------------------------------------+---------------------+---------+ - | etn008v5oqsj8joktlvd | ydb-test | | grpcs:///?database=<база данных> | 2020-12-09 11:46:45 | RUNNING | - +----------------------+----------+-------------+------------------------------------------------+---------------------+---------+ - ``` - - 1.Сохраните значения `YDB эндпоинт` и базу данных, указанных в колонке `ENDPOINT`. Они потребуются для дальнейших запросов. - - - {% endlist %} - - - -1. Проверьте разрешение входящего трафика через порт 2135. Убедитесь, что в назначенной [группе безопасности](../../vpc/concepts/security-groups.md) существует соответствующее правило или добавьте его. -1. Используйте один из способов аутентификации, представленных в разделе [Аутентификация в YDB CLI](examples-ydb-cli.md#authentication). - - Один из самых простых способов аутентификации — сохранить значение [OAuth-токена](../../iam/concepts/authorization/oauth-token.md) в переменную окружения YC_TOKEN. Для этого выполните команду: - - ```bash - export YC_TOKEN= - ``` - -## Создание таблицы {#create-table} - -Создайте новую таблицу в базе данных с помощью конструкции [CREATE TABLE](../yql/reference/syntax/create_table.md): - -{% list tabs %} - -- Консоль управления - - {% include [create-schema-via-console](../_includes/create-schema-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - - 1. Для создания таблицы выполните запрос: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'CREATE TABLE series - ( - series_id Uint64, - title Utf8, - series_info Utf8, - release_date Uint64, - PRIMARY KEY (series_id) - );' - ``` - - 1. Посмотрите результат, выполнив команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scheme ls -l - ``` - - Результат: - - ```bash - ┌───────┬─────────────────┬──────┬───────────────────────────────┬──────────┬─────────────┐ - | Type | Owner | Size | Created | Modified | Name | - ├───────┼─────────────────┼──────┼───────────────────────────────┼──────────┼─────────────┤ - | table | ajehdq76s7o8ike | 0 b | Wed, 09 Dec 2020 14:53:25 MSK | Unknown | series | - | dir | | | | | .sys | - └───────┴─────────────────┴──────┴───────────────────────────────┴──────────┴─────────────┘ - ``` - -{% endlist %} - -## Добавление строк {#replace-data} - -Добавьте данные в таблицу, используя конструкцию [REPLACE INTO](../yql/reference/syntax/replace_into.md): - -{% list tabs %} - -- Консоль управления - - {% include [replace-data-via-console](../_includes/replace-data-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - 1. Для добавления данных в таблицу выполните команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'REPLACE INTO series (series_id, title, release_date, series_info) - VALUES - ( - 1, - "IT Crowd", - CAST(Date("2006-02-03") AS Uint64), - "The IT Crowd is a British sitcom." - ), - ( - 2, - "Silicon Valley", - CAST(Date("2014-04-06") AS Uint64), - "Silicon Valley is an American comedy television series." - ), - ( - 3, - "Fake series", - CAST(Date("2018-09-11") AS Uint64), - "Fake series for testing purposes." - );' - ``` - - В таблицу `series` будут добавлены новые строки, чтобы увидеть результат, далее вы можете [выбрать строки](../quickstart/examples-yql.md#select-data) из таблицы. - - -{% endlist %} - - -## Замена строк {#update-data} - -Измените существующие данные в таблице, использую оператор [UPDATE](../yql/reference/syntax/update.md): - -{% list tabs %} - -- Консоль управления - - {% include [update-data-via-console](../_includes/update-data-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - 1. Для изменения данных в таблице `series` выполните команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'UPDATE series - SET series_info="Fake series updated" - WHERE series_id = 3;' - ``` - - Чтобы увидеть результат, далее вы можете [выбрать строки](../quickstart/examples-yql.md#select-data) из таблицы. - -{% endlist %} - - -## Удаление строк {#delete-data} - -Удалите данные из таблицы с помощью оператора [DELETE](../yql/reference/syntax/delete.md): - -{% list tabs %} - -- Консоль управления - - {% include [delete-data-via-console](../_includes/delete-data-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - 1. Для удаления данных в таблице `series` выполните команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'DELETE - FROM series - WHERE series_id = 3;' - ``` - - Данная команда удалит строки, в которых колонка `series_id` = 3. Чтобы увидеть результат, далее вы можете [выбрать строки](../quickstart/examples-yql.md#select-data) из таблицы. - -{% endlist %} - - -## Выбор строк {#select-data} - -Выберите данные из таблицы с помощью оператора [SELECT](../yql/reference/syntax/select.md): - -{% list tabs %} - -- Консоль управления - - {% include [select-data-via-console](../_includes/select-data-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - 1. Для выборки данных из таблицы `series` выполните команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'SELECT series_id, - title AS series_title, - CAST (release_date AS Date) AS release_date - FROM series;' - ``` - - В результате отобразятся данные таблицы: - - ```bash - ┌───────────┬──────────────────┬──────────────┐ - | series_id | series_title | release_date | - ├───────────┼──────────────────┼──────────────┤ - | 1 | "IT Crowd" | "2006-02-03" | - ├───────────┼──────────────────┼──────────────┤ - | 2 | "Silicon Valley" | "2014-04-06" | - └───────────┴──────────────────┴──────────────┘ - ``` - -{% endlist %} - - -## Удаление таблицы {#drop-table} - -Удалите таблицу с помощью конструкции [DROP TABLE](../yql/reference/syntax/drop_table.md): - -{% list tabs %} - -- Консоль управления - - {% include [drop-table-via-console](../_includes/drop-table-via-console.md) %} - -- CLI - - 1. Если у вас еще нет интерфейса командной строки YDB CLI, [установите и инициализируйте его](examples-ydb-cli.md#how-to-install). - 1. Посмотрите описание команды для выполнения YQL запроса: - - ```bash - ydb scripting yql --help - ``` - 1. Для удаления таблицы `series` выполните команду: - - ```bash - ydb -e grpcs:// -d <база данных> \ - scripting yql -s \ - 'DROP TABLE series;' - ``` - - Таблица будет удалена. - - -{% endlist %} diff --git a/ru/ydb/quickstart/index.md b/ru/ydb/quickstart/index.md index 75917472c74..44e0d5a7140 100644 --- a/ru/ydb/quickstart/index.md +++ b/ru/ydb/quickstart/index.md @@ -1,13 +1,14 @@ # Обзор Для знакомства с {{ ydb-short-name }} воспользуйтесь следующими инструкциями: -* [{#T}](create-db.md) — создайте вашу первую БД. Доступно создание базы в разных режимах: бессерверном и с выделенными хостами. -* YQL - * [Работа с данными](examples-yql.md) — управляйте данными с помощью декларативного языка запросов к системам хранения и обработки данных. Управление данными с помощью YQL поддерживается в [обоих режимах работы {{ ydb-short-name }}](../concepts/index.md). - * [Работа с YDB CLI](examples-ydb-cli.md) — настройте консольный клиент YDB, посмотрите примеры использования. - * [Работа с YDB SDK](launch-test-app.md) — познакомьтесь с {{ ydb-name }} SDK на Python, Go, Node.js или Java. -* Document API - * [Работа с данными](examples-docapi.md) — управляйте данными с помощью HTTP API, совместимым с Amazon DynamoDB. В разделе рассмотрена работа через HTTP-интерфейс и Node.js. Управление данными с помощью Document API поддерживается только в [режиме бессерверных вычислений](../concepts/index.md). - * [Использование AWS CLI и AWS SDK](../quickstart/aws-instrument/setup.md) — используйте инструменты от AWS в режиме совместимости с AWS DynamoDB. - - \ No newline at end of file + +* [{#T}](create-db.md) — создайте вашу первую БД. +* YQL API: + * [{#T}](yql-api/ydb-ui.md) — выполняйте запросы с помощью консоли {{ yandex-cloud }}. + * [{#T}](yql-api/ydb-cli.md) — настройте консольный клиент {{ ydb-short-name }}, посмотрите примеры использования. + * [{#T}](yql-api/ydb-sdk.md) — познакомьтесь с {{ ydb-short-name }} SDK для Python, Go, Node.js, PHP или Java. +* Document API: + * [{#T}](document-api/aws-setup.md) — подготовьте окружение для работы в режиме совместимости с AWS DynamoDB. + * [{#T}](document-api/aws-http.md) — управляйте данными с помощью HTTP API. + * [Работа с AWS CLI](document-api/aws-cli/index.md) — настройте AWS CLI, посмотрите примеры использования. + * [Работа с AWS SDK](document-api/aws-sdk/index.md) — используйте AWS SDK для различных языков программирования. diff --git a/ru/ydb/quickstart/launch-test-app.md b/ru/ydb/quickstart/launch-test-app.md deleted file mode 100644 index 44cab57f863..00000000000 --- a/ru/ydb/quickstart/launch-test-app.md +++ /dev/null @@ -1,29 +0,0 @@ -# Запуск тестового приложения с помощью YDB SDK - -Для знакомства с работой {{ ydb-short-name }} SDK вы можете воспользоваться тестовыми приложениями на [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Go](https://github.com/yandex-cloud/ydb-go-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) или [Java](https://github.com/yandex-cloud/ydb-java-sdk). Для этого необходимо настроить подключение к базе данных, после чего установить и запустить соответствующее тестовое приложение. - -{% note info %} - -Подробный разбор кода тестовых приложений читайте в разделе [{#T}](../sdk/index.md). - -{% endnote %} - -## Настройка подключения к базе данных {#connect-to-db} - -Чтобы подключиться к базе данных: - -1. [Создайте Serverless базу данных](create-db.md) в {{ yandex-cloud }}. -1. Для аутентификации в базе данных [создайте сервисный аккаунт](../../iam/operations/sa/create) и [назначьте](../../iam/operations/sa/assign-role-for-sa.md) ему роли `viewer` и `editor`. -1. Перейдите в раздел **Сервисные аккаунты** своего каталога и выберите необходимый сервисный аккаунт в списке. Сохраните идентификатор сервисного аккаунта. - - {% note info %} - - Вы можете запускать тестовое приложение с [виртуальной машины](../../compute/operations/vm-create/create-linux-vm) в {{ yandex-cloud }}. - - {% endnote %} - -1. Перейдите в раздел **Обзор** вашей базы данных и сохраните значения эндпоинта и идентификатора базы, приведенные в блоке **YDB эндпоинт**. - -## Запуск тестового приложения {#run-test} - -{% include notitle [run-app](../_includes/run-app.md) %} \ No newline at end of file diff --git a/ru/ydb/quickstart/yql-api/ydb-cli.md b/ru/ydb/quickstart/yql-api/ydb-cli.md new file mode 100644 index 00000000000..0f8f7a3b445 --- /dev/null +++ b/ru/ydb/quickstart/yql-api/ydb-cli.md @@ -0,0 +1,585 @@ +# Работа {{ ydb-short-name }} CLI + +В этом разделе описана работа с БД при помощи интерфейса командной строки {{ ydb-short-name }} CLI. Вы узнаете что нужно для начала работы с консольным клиентом, как его установить и как с его помощью выполнить ряд основных запросов. + +## Перед началом работы {#before-you-begin} + +1. Подготовьте эндпоинт и полный путь [созданной БД](../create-db.md). + + {% cut "Как узнать эндпоинт и путь базы данных" %} + + 1. Перейдите в [консоль управления]({{ link-console-main }}). + 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. + 1. Выберите базу данных, к которой планируете сделать запрос. + 1. В меню слева перейдите в раздел **Обзор**. + 1. Значение эндпоинта указано в строке **Эндпоинт**. + * Пример значения параметра для Dedicated базы: `lb.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135`. + * Пример значения параметра для Serverless базы: `ydb.serverless.yandexcloud.net:2135`. + + Порт для эндпоинта по умолчанию `2135`, так что указывать в запросе `:2135` не обязательно. + 1. Полный путь БД указан в строке **База данных**. + Пример значения параметра: `/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj`. + + {% endcut %} + +1. Разрешите входящий трафик через порт `2135`. Убедитесь, что в назначенной [группе безопасности](../../../vpc/concepts/security-groups.md) существует соответствующее правило или добавьте его. + +## Установка {{ ydb-short-name }} CLI {#how-to-install} + +{% list tabs %} + +- Linux + + Чтобы установить {{ ydb-short-name }} CLI, выполните команду: + + ```bash + curl https://storage.yandexcloud.net/yandexcloud-ydb/install.sh | bash + ``` + + Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения `PATH`. + + {% note info %} + + Скрипт дополнит переменную `PATH` только если его запустить в командных оболочках bash или zsh. + Если Вы запустили скрипт в другой оболочке, добавьте путь до CLI в переменную `PATH` самостоятельно. + + {% endnote %} + + Перезапустите командную оболочку, чтобы перезагрузить переменные окружения. + +- macOS + + Чтобы установить {{ ydb-short-name }} CLI, выполните команду: + + ```bash + curl https://storage.yandexcloud.net/yandexcloud-ydb/install.sh | bash + ``` + + Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения `PATH`. + + Перезапустите командную оболочку, чтобы перезагрузить переменные окружения. + +- Windows + + Для Windows {{ ydb-short-name }} CLI можно установить с помощью PowerShell или cmd: + + * Для установки с помощью PowerShell: + + 1. Выполните команду: + + ```powershell + iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-ydb/install.ps1') + ``` + + 1. Скрипт установки спросит, нужно ли добавить путь до {{ ydb-cli }} в переменную `PATH`: + + ```text + Add ydb installation dir to your PATH? [Y/n] + ``` + + 1. Введите `Y`. После этого {{ ydb-short-name }} CLI можно пользоваться, командную оболочку перезапускать не обязательно. + + * Для установки с помощью cmd: + + 1. Выполните команду: + + ```cmd + @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-ydb/install.ps1'))" + ``` + + 1. Скрипт установки спросит, нужно ли добавить путь до {{ ydb-cli }} в переменную `PATH`: + + ```text + Add ydb installation dir to your PATH? [Y/n] + ``` + + 1. Введите `Y`. + 1. Перезапустите командную оболочку, чтобы перезагрузить переменные окружения. + + {% note info %} + + {{ ydb-short-name }} CLI использует символы юникода в выводе некоторых команд. При некорректном отображении таких символов в консоли Windows, переключите кодировку на UTF-8, выполнив команду: + + ```cmd + chcp 65001 + ``` + + {% endnote %} + +{% endlist %} + +## Аутентификация в {{ ydb-short-name }} CLI { #authentication } + +Для выполнения запросов к {{ ydb-full-name }} в {{ yandex-cloud }} с помощью {{ ydb-short-name }} CLI необходимо аутентифицироваться. Выберите один из доступных ниже способов авторизации. + +{% list tabs %} + +- OAuth-токен + + В параметре `--yc-token-file` укажите путь к файлу, в котором содержится ваш [OAuth-токен](../../../iam/concepts/authorization/oauth-token.md). + + Чтобы не указывать эту опцию каждый раз при вызовах команд {{ ydb-cli }}, значение OAuth-токена можно сохранить в переменную окружения `YC_TOKEN`. + +- IAM-токен + + В параметре `--iam-token-file` укажите путь к файлу, в котором содержится ваш [IAM-токен](../../../iam/concepts/authorization/iam-token.md). + + Чтобы не указывать этот параметр каждый раз при вызовах команд {{ ydb-cli }}, значение IAM-токена можно сохранить в переменную окружения `IAM_TOKEN`. + + {% note alert %} + + Время жизни IAM-токена 12 часов. + + {% endnote %} + +- Сервис метаданных + + Добавьте к команде флаг `--use-metadata-credentials` и {{ ydb-cli }} попытается получить [IAM-токен](../../../iam/concepts/authorization/iam-token.md) с помощью [сервиса метаданных](../../../compute/operations/vm-connect/auth-inside-vm.md#auth-inside-vm.md) при работе из виртуальной машины в {{ yandex-cloud }}. + + Также вместо указания флага можно установить значение `1` в переменную окружения `USE_METADATA_CREDENTIALS`. + +- Авторизованные ключи доступа + + В параметре `--sa-key-file` укажите путь к файлу с [авторизованными ключами доступа](../../../iam/operations/authorized-key/create.md) сервисного аккаунта. + + Также вместо указания флага можно сохранить путь к файлу в переменную окружения `SA_KEY_FILE`. + +{% endlist %} + +### Проверка корректности аутентификации {#whoami} + +Для проверки корректности аутентификации можно использовать команду запроса информации о пользователе: + +```bash +{{ ydb-cli }} discovery whoami \ + --endpoint <эндпоинт> \ + --database <база данных> \ + --yc-token-file <путь к файлу с токеном> \ + --groups +``` + +Где: + +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. +* `--yc-token-file` — путь OAuth-токена. +* `--groups` — добавить в вывод список групп, в которых состоит пользователь. + +Результат выполнения: + +```text +User SID: aje6o75au36h5d0tnr8k@as + +User has no groups +``` + +В этом примере токен передается через опцию `--yc-token-file`. Чтобы сохранить значение токена в переменную окружения `YC_TOKEN`, выполните команду: + +{% list tabs %} + +- Linux/macOS + + ```bash + export YC_TOKEN=<значение токена> + ``` + +- Windows + + * Для PowerShell: + + ```powershell + SET YC_TOKEN=<значение токена> + ``` + + * Для cmd: + + ```cmd + $YC_TOKEN = “<значение токена>” + ``` + +{% endlist %} + +## Примеры использования {#examples} + +### Создание таблицы {#create-table} + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для создания таблицы выполните запрос: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'CREATE TABLE series + ( + series_id Uint64, + title Utf8, + series_info Utf8, + release_date Uint64, + PRIMARY KEY (series_id) + );' + ``` + + 1. Посмотрите результат, выполнив команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scheme ls -l + ``` + + Результат: + + ```bash + ┌───────┬─────────────────┬──────┬───────────────────────────────┬──────────┬─────────────┐ + | Type | Owner | Size | Created | Modified | Name | + ├───────┼─────────────────┼──────┼───────────────────────────────┼──────────┼─────────────┤ + | table | ajehdq76s7o8ike | 0 b | Wed, 09 Dec 2020 14:53:25 MSK | Unknown | series | + | dir | | | | | .sys | + └───────┴─────────────────┴──────┴───────────────────────────────┴──────────┴─────────────┘ + ``` + +{% endlist %} + +### Добавление строк {#replace-data} + +Добавьте данные в таблицу, используя конструкцию [REPLACE INTO](../../yql/reference/syntax/replace_into.md): + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для добавления данных в таблицу выполните команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'REPLACE INTO series (series_id, title, release_date, series_info) + VALUES + ( + 1, + "IT Crowd", + CAST(Date("2006-02-03") AS Uint64), + "The IT Crowd is a British sitcom." + ), + ( + 2, + "Silicon Valley", + CAST(Date("2014-04-06") AS Uint64), + "Silicon Valley is an American comedy television series." + ), + ( + 3, + "Fake series", + CAST(Date("2018-09-11") AS Uint64), + "Fake series for testing purposes." + );' + ``` + + В таблицу `series` будут добавлены новые строки, чтобы увидеть результат, далее вы можете [выбрать строки](#select-data) из таблицы. + +{% endlist %} + + +### Замена строк {#update-data} + +Измените существующие данные в таблице, использую оператор [UPDATE](../../yql/reference/syntax/update.md): + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для изменения данных в таблице `series` выполните команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'UPDATE series + SET series_info="Fake series updated" + WHERE series_id = 3;' + ``` + + Чтобы увидеть результат, далее вы можете [выбрать строки](#select-data) из таблицы. + +{% endlist %} + + +### Удаление строк {#delete-data} + +Удалите данные из таблицы с помощью оператора [DELETE](../../yql/reference/syntax/delete.md): + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для удаления данных в таблице `series` выполните команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'DELETE + FROM series + WHERE series_id = 3;' + ``` + + Данная команда удалит строки, в которых колонка `series_id` = 3. Чтобы увидеть результат, далее вы можете [выбрать строки](#select-data) из таблицы. + +{% endlist %} + + +### Запрос к данным {#select-data} + +Запросите данные из таблицы с помощью оператора [SELECT](../../yql/reference/syntax/select.md): + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для выборки данных из таблицы `series` выполните команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'SELECT series_id, + title AS series_title, + CAST (release_date AS Date) AS release_date + FROM series;' + ``` + + В результате отобразятся данные таблицы: + + ```bash + ┌───────────┬──────────────────┬──────────────┐ + | series_id | series_title | release_date | + ├───────────┼──────────────────┼──────────────┤ + | 1 | "IT Crowd" | "2006-02-03" | + ├───────────┼──────────────────┼──────────────┤ + | 2 | "Silicon Valley" | "2014-04-06" | + └───────────┴──────────────────┴──────────────┘ + ``` + +{% endlist %} + + +### Удаление таблицы {#drop-table} + +Удалите таблицу с помощью конструкции [DROP TABLE](../../yql/reference/syntax/drop_table.md): + +{% list tabs %} + +- CLI + + 1. Посмотрите описание команды для выполнения YQL запроса: + + ```bash + ydb scripting yql --help + ``` + + 1. Для удаления таблицы `series` выполните команду: + + ```bash + ydb -e grpcs:// -d <база данных> \ + scripting yql -s \ + 'DROP TABLE series;' + ``` + + Таблица будет удалена. + +{% endlist %} + +### Получение списка эндпоинтов для базы данных {#discovery_list} + +Чтобы получить список эндпойнтов, выполните команду: + +```bash +{{ ydb-cli }} discovery list \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +Где: + +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. + +Результат выполнения: + +```text +grpcs://vm-etn01lrprvnlnhv8v5kj-ru-central1-a-abod.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135 #table_service #scripting #discovery #rate_limiter #locking #kesus +``` + +`#table_service`, `#scripting` и другие — это gRPC-сервисы, доступные на данном эндпоинте. + +### Выполнение запроса к данным {#query} + +Выполните запрос к данным: + +```bash +{{ ydb-cli }} table query execute \ + --query "SELECT season_id, episode_id, title FROM episodes WHERE series_id = 1 AND season_id > 1 ORDER BY season_id, episode_id LIMIT 3" \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +Где: + +* `--query` — текст запроса. +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. + +Результат выполнения: + +```text +┌───────────┬────────────┬────────────────────────────────┐ +| season_id | episode_id | title | +├───────────┼────────────┼────────────────────────────────┤ +| [2u] | [1u] | ["The Work Outing"] | +├───────────┼────────────┼────────────────────────────────┤ +| [2u] | [2u] | ["Return of the Golden Child"] | +├───────────┼────────────┼────────────────────────────────┤ +| [2u] | [3u] | ["Moss and the German"] | +└───────────┴────────────┴────────────────────────────────┘ +``` + +### Листинг объектов {#listing} + +Листинг объектов производится подкомандой `scheme ls <путь>`. Если путь не указан, то будет производиться листинг корня базы данных: + +```bash +{{ ydb-cli }} scheme ls \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +Где: + +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. + +Результат выполнения: + +```text +episodes seasons series some_directory .sys +``` + +Чтобы посмотреть подробную информацию, добавьте флаг `-l`: + +```bash +{{ ydb-cli } scheme ls \ + --endpoint <эндпоинт> \ + --database <база данных> \ + -l +``` + +Результат выполнения: + +```text +┌───────┬─────────────────────────┬─────────┬───────────────────────────────┬───────────────────────────────┬────────────────┐ +| Type | Owner | Size | Created | Modified | Name | +├───────┼─────────────────────────┼─────────┼───────────────────────────────┼───────────────────────────────┼────────────────┤ +| table | aje6o75au36h5d0tnr8k@as | 1.13 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:24:31 UTC | episodes | +| table | aje6o75au36h5d0tnr8k@as | 1.45 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:20:07 UTC | seasons | +| table | aje6o75au36h5d0tnr8k@as | 1.12 Kb | Thu, 17 Sep 2020 09:17:44 UTC | Thu, 17 Sep 2020 09:19:46 UTC | series | +| dir | aje6o75au36h5d0tnr8k@as | | | | some_directory | +| dir | | | | | .sys | +└───────┴─────────────────────────┴─────────┴───────────────────────────────┴───────────────────────────────┴────────────────┘ +``` + +### Работа с директориями {#directory} + +Создайте дерево из директорий: + +```bash +{{ ydb-cli }} scheme mkdir some_directory \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +```bash +{{ ydb-cli }} scheme mkdir some_directory/sub-directory1 \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +```bash +{{ ydb-cli }} scheme mkdir some_directory/sub-directory1/sub-directory1-1 \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +```bash +{{ ydb-cli }} scheme mkdir some_directory/sub-directory2 \ + --endpoint <эндпоинт> \ + --database <база данных> +``` + +Где: + +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. + +Чтобы посмотреть рекурсивный листинг всех поддиректорий и объектов в них по указанному пути, воспользуйтесь опцией `-R` подкоманды `scheme ls`: + +```bash +{{ ydb-cli }} scheme ls some_directory \ + --endpoint <эндпоинт> \ + --database <база данных> \ + -lR +``` + +Где: + +* `--endpoint` — эндпоинт БД. +* `--database` — полный путь БД. + +Результат выполнения: + +```text +┌──────┬─────────────────────────┬──────┬─────────┬──────────┬─────────────────────────────────┐ +| Type | Owner | Size | Created | Modified | Name | +├──────┼─────────────────────────┼──────┼─────────┼──────────┼─────────────────────────────────┤ +| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory1 | +| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory1/sub-directory1-1 | +| dir | aje6o75au36h5d0tnr8k@as | | | | sub-directory2 | +└──────┴─────────────────────────┴──────┴─────────┴──────────┴─────────────────────────────────┘ +``` + +#### Что дальше {#what-is-next} + +Ознакомьтесь с другими примерами использования {{ ydb-short-name }} CLI: + +* [{#T}](../../operations/ydb-cli/commands.md). +* [{#T}](../../operations/ydb-cli/scheme-describe.md). +* [{#T}](../../operations/ydb-cli/readtable.md). +* [{#T}](../../operations/ydb-cli/operations-index.md). diff --git a/ru/ydb/quickstart/yql-api/ydb-sdk.md b/ru/ydb/quickstart/yql-api/ydb-sdk.md new file mode 100644 index 00000000000..33e56768170 --- /dev/null +++ b/ru/ydb/quickstart/yql-api/ydb-sdk.md @@ -0,0 +1,42 @@ +# Работа с YDB SDK + +Для знакомства с работой {{ ydb-short-name }} SDK вы можете воспользоваться тестовыми приложениями на [Python](https://github.com/yandex-cloud/ydb-python-sdk), [Go](https://github.com/yandex-cloud/ydb-go-sdk), [Node.js](https://github.com/yandex-cloud/ydb-nodejs-sdk), [PHP](https://github.com/yandex-cloud/ydb-php-sdk) или [Java](https://github.com/yandex-cloud/ydb-java-sdk). Настройте подключение к базе данных, после чего установите и запустите соответствующее тестовое приложение. + +{% note info %} + +Подробный разбор кода тестовых приложений читайте в разделе [{#T}](../../sdk/index.md). + +{% endnote %} + +## Настройка подключения к базе данных {#connect-to-db} + +Чтобы подключиться к базе данных: + +1. Подготовьте эндпоинт и полный путь [созданной БД](../create-db.md). + + {% cut "Как узнать эндпоинт и путь базы данных" %} + + 1. Перейдите в [консоль управления]({{ link-console-main }}). + 1. Выберите нужный каталог и перейдите в сервис **{{ ydb-full-name }}**. + 1. Выберите базу данных, к которой планируете сделать запрос. + 1. В меню слева перейдите в раздел **Обзор**. + 1. Значение эндпоинта указано в строке **Эндпоинт**. + * Пример значения параметра для Dedicated базы: `lb.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135`. + * Пример значения параметра для Serverless базы: `ydb.serverless.yandexcloud.net:2135`. + Порт для эндпоинта по умолчанию `2135`, так что указывать в запросе `:2135` не обязательно. + 1. Полный путь БД указан в строке **База данных**. + Пример значения параметра: `/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj`. + + {% endcut %} +1. Для аутентификации в базе данных [создайте сервисный аккаунт](../../iam/operations/sa/create) и [назначьте](../../../iam/operations/sa/assign-role-for-sa.md) ему роли `viewer` и `editor`. +1. Перейдите в раздел **Сервисные аккаунты** своего каталога и выберите необходимый сервисный аккаунт в списке. Сохраните идентификатор сервисного аккаунта. + + {% note info %} + + Вы можете запускать тестовое приложение с [виртуальной машины](../../compute/operations/vm-create/create-linux-vm) в {{ yandex-cloud }}. + + {% endnote %} + +## Запуск тестового приложения {#run-app} + +{% include notitle [run-app](../../_includes/run-app.md) %} \ No newline at end of file diff --git a/ru/ydb/quickstart/yql-api/ydb-ui.md b/ru/ydb/quickstart/yql-api/ydb-ui.md new file mode 100644 index 00000000000..f9e250f27c4 --- /dev/null +++ b/ru/ydb/quickstart/yql-api/ydb-ui.md @@ -0,0 +1,85 @@ +# Работа с данными через консоль управления + +После [создания базы данных](../create-db.md) выполните базовые YQL-запросы используя консоль управления {{ yandex-cloud }}. + +{% note tip %} + +Подробнее о синтаксисе YQL читайте в [Справочнике YQL](../../yql/reference/overview.md). + +{% endnote %} + +## Создайте таблицу {#create-table} + +Создайте таблицу в БД с помощью инструкции [CREATE TABLE](../../yql/reference/syntax/create_table.md): + +{% list tabs %} + +- Консоль управления + + {% include [create-schema-via-console](../../_includes/create-new-table-via-console.md) %} + +{% endlist %} + +## Добавьте данные {#replace-data} + +Добавьте данные в таблицу, используя инструкцию [REPLACE INTO](../../yql/reference/syntax/replace_into.md): + +{% list tabs %} + +- Консоль управления + + {% include [replace-data-via-console](../../_includes/replace-data-via-console.md) %} + +{% endlist %} + + +## Измените данные {#update-data} + +Измените существующие данные в таблице, используя инструкцию [UPDATE](../../yql/reference/syntax/update.md): + +{% list tabs %} + +- Консоль управления + + {% include [update-data-via-console](../../_includes/update-data-via-console.md) %} + +{% endlist %} + + +## Удалите данные {#delete-data} + +Удалите данные из таблицы с помощью инструкции [DELETE](../../yql/reference/syntax/delete.md): + +{% list tabs %} + +- Консоль управления + + {% include [delete-data-via-console](../../_includes/delete-data-via-console.md) %} + +{% endlist %} + + +## Запросите данные {#select-data} + +Запросите данные из таблицы с помощью инструкции [SELECT](../../yql/reference/syntax/select.md): + +{% list tabs %} + +- Консоль управления + + {% include [select-data-via-console](../../_includes/select-data-via-console.md) %} + +{% endlist %} + + +## Удалите таблицу {#drop-table} + +Удалите таблицу с помощью инструкции [DROP TABLE](../../yql/reference/syntax/drop_table.md): + +{% list tabs %} + +- Консоль управления + + {% include [drop-table-via-console](../../_includes/drop-table-via-console.md) %} + +{% endlist %} diff --git a/ru/ydb/sdk/index.md b/ru/ydb/sdk/index.md index 3f2e39278bc..9d4a7267933 100644 --- a/ru/ydb/sdk/index.md +++ b/ru/ydb/sdk/index.md @@ -10,7 +10,7 @@ * Для [NodeJS](https://github.com/yandex-cloud/ydb-nodejs-sdk/tree/master/examples/basic-example-v1) -Чтобы запустить приложение, необходимо подключиться к базе данных. Подробнее читайте в разделе [{#T}](../quickstart/launch-test-app.md). +Чтобы запустить приложение, необходимо подключиться к базе данных. Подробнее читайте в разделе [{#T}](../quickstart/yql-api/ydb-sdk.md#connect-to-db). После запуска и выполнения приложения в консоли отобразится следующий результат: diff --git a/ru/ydb/solutions/ydb_docker.md b/ru/ydb/solutions/ydb_docker.md index 4a9638ab979..21a927729ad 100644 --- a/ru/ydb/solutions/ydb_docker.md +++ b/ru/ydb/solutions/ydb_docker.md @@ -2,7 +2,7 @@ Для отладки или тестирования вы можете запустить {{ ydb-full-name }} в Docker-контейнере. Docker-контейнер содержит актуальную версию сборки {{ ydb-short-name }}, ревизия сборки может отличаться. -В режиме локального запуска для работы с базой данных предоставляется только {{ ydb-short-name }} API. API доступен на эндпоинте `grpcs://localhost:2135`, имя базы данных `/local`. Работа с базой выполняется с помощью консольного клиента {{ ydb-short-name }} ([YDB CLI](../quickstart/examples-ydb-cli.md)), предустановленного внутри Docker-образа. Посмотрите [примеры запросов](../quickstart/examples-ydb-cli.md#examples) к базе данных с помощью YDB CLI. +В режиме локального запуска для работы с базой данных предоставляется только {{ ydb-short-name }} API. API доступен на эндпоинте `grpcs://localhost:2135`, имя базы данных `/local`. Работа с базой выполняется с помощью консольного клиента {{ ydb-short-name }} ([YDB CLI](../quickstart/yql-api/ydb-cli.md)), предустановленного внутри Docker-образа. Посмотрите [примеры запросов](../quickstart/yql-api/ydb-cli.md#examples) к базе данных с помощью YDB CLI. {{ ydb-full-name }} в Docker-контейнере принимает входящие соединения, защищённые TLS. Сертификаты генерируются автоматически. Для использования сертификатов необходимо смонтировать на хост-системе директорию `/ydb_cert` Docker-контейнера. diff --git a/ru/ydb/toc.yaml b/ru/ydb/toc.yaml index 0bac0d5f27b..68cf6ce8e49 100644 --- a/ru/ydb/toc.yaml +++ b/ru/ydb/toc.yaml @@ -7,22 +7,58 @@ items: href: quickstart/index.md - name: Создание базы данных href: quickstart/create-db.md - - name: YQL + - name: YQL API items: - - name: Работа с данными - href: quickstart/examples-yql.md + - name: Работа с данными через консоль управления + href: quickstart/yql-api/ydb-ui.md - name: Работа с YDB CLI - href: quickstart/examples-ydb-cli.md + href: quickstart/yql-api/ydb-cli.md - name: Работа с YDB SDK - href: quickstart/launch-test-app.md - - name: Document API + href: quickstart/yql-api/ydb-sdk.md + - name: Document API, совместимый с Amazon DynamoDB items: - - name: Работа с данными - href: quickstart/examples-docapi.md - - name: Работа с инструментами AWS + - name: Настройка инструментов AWS + href: quickstart/document-api/aws-setup.md + - name: Работа с данными через HTTP-интерфейс + href: quickstart/document-api/aws-http.md + - name: Работа с AWS CLI + items: + - name: Обзор + href: quickstart/document-api/aws-cli/index.md + - name: Создание таблицы + href: quickstart/document-api/aws-cli/create-table.md + - name: Добавление данных в таблицу + href: quickstart/document-api/aws-cli/put-item.md + - name: Чтение данных из таблицы + href: quickstart/document-api/aws-cli/get-item.md + - name: Обновление данных + href: quickstart/document-api/aws-cli/update-item.md + - name: Выборка данных + href: quickstart/document-api/aws-cli/query.md + - name: Удаление созданных ресурсов + href: quickstart/document-api/aws-cli/cleanup.md + - name: Работа с AWS SDK items: - - name: Настройка окружения - href: quickstart/aws-instrument/setup.md + - name: Обзор + href: quickstart/document-api/aws-sdk/index.md + - name: Создание таблицы + href: quickstart/document-api/aws-sdk/create-table.md + - name: Загрузка данных в таблицу + href: quickstart/document-api/aws-sdk/load-data.md + - name: Управление записями в таблице + items: + - name: Создание записи + href: quickstart/document-api/aws-sdk/create-item.md + - name: Чтение записи + href: quickstart/document-api/aws-sdk/read-item.md + - name: Обновление записи + href: quickstart/document-api/aws-sdk/update-item.md + - name: Удаление записи + href: quickstart/document-api/aws-sdk/delete-item.md + - name: Поиск и извлечение данных + href: quickstart/document-api/aws-sdk/query-and-scan.md + - name: Удаление таблицы + href: quickstart/document-api/aws-sdk/delete-table.md - name: Пошаговые инструкции items: - name: Работа с YDB CLI @@ -47,44 +83,6 @@ items: href: operations/crud.md - name: Работа со вторичными индексами href: operations/indexes.md - - name: Работа с AWS CLI - items: - - name: Начало работы с AWS CLI - href: operations/aws-cli/index.md - - name: Создание таблицы - href: operations/aws-cli/create-table.md - - name: Добавление данных в таблицу - href: operations/aws-cli/put-item.md - - name: Чтение данных из таблицы - href: operations/aws-cli/get-item.md - - name: Обновление данных - href: operations/aws-cli/update-item.md - - name: Выборка данных - href: operations/aws-cli/query.md - - name: Удаление созданных ресурсов - href: operations/aws-cli/cleanup.md - - name: Работа с AWS SDK - items: - - name: Обзор - href: operations/aws-sdk/index.md - - name: Создание таблицы - href: operations/aws-sdk/create-table.md - - name: Загрузка данных в таблицу - href: operations/aws-sdk/load-data.md - - name: Управление записями в таблице - items: - - name: Создание записи - href: operations/aws-sdk/create-item.md - - name: Чтение записи - href: operations/aws-sdk/read-item.md - - name: Обновление записи - href: operations/aws-sdk/update-item.md - - name: Удаление записи - href: operations/aws-sdk/delete-item.md - - name: Поиск и извлечение данных - href: operations/aws-sdk/query-and-scan.md - - name: Удаление таблицы - href: operations/aws-sdk/delete-table.md - name: Работа с SDK href: sdk/index.md - name: Сценарии использования