BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Elasticsearch

Elasticsearch

Что такое индекс?

 

В Elasticsearch индекс - это структура, хранящая данные в формате, оптимизированном для поиска и анализа. Индексы содержат документы, которые являются основными информационными объектами в Elasticsearch. Каждый документ имеет уникальный идентификатор и содержит одно или несколько полей с данными.

Процесс индексирования в Elasticsearch начинается тогда, когда документ отправляется в поисковую систему через REST API. Когда система получает запрос, документ сохраняется в одном или нескольких шардах и индексируется для того, чтобы по нему можно было осуществлять поиск.

Индексирование включает в себя анализ документа для извлечения лексем (ключевых слов) и их хранение в структуре, оптимизированной для поиска. Токены сопоставляются с терминами, которые индексируются в инвертированном дереве терминов, указывающем на документы, содержащие каждый термин.

 

Пример индексирования

Допустим, мы хотим проиндексировать ряд документов, содержащих информацию о товарах в Интернет-магазине. Каждый документ содержит такую информацию, как название, описание, цена и категория товара.

Первым шагом будет создание индекса в Elasticsearch (для хранения документов, связанных с товарами). Для повышения эффективности и масштабируемости индекс разделен на несколько шардов.

Затем с помощью REST API мы отправляем каждый документ в Elasticsearch. Elasticsearch анализирует документ с целью извлечения токенов и сохраняет их в своей поисковой структуре.

Затем мы отправляем документ, содержащий информацию о голубых джинсах и проиндексированный следующими лексемами: «джинсы», „синий“, „мужчина“, „casual“, „одежда“ и т. д. Это поможет нам осуществлять поиск, используя следующие словосочетания: «мужские джинсы», „синяя одежда“ и т. д..

 

 

Как работать с индексами в Elasticsearch?

Инексы испольуются для хранения и поиска данных в Elasticsearch. У каждого индекса есть определенные настройки, например, парсинг текста,  настройки хранения и настройки поиска. Для обеспечения более точного поиска к каждому индексу применяются более специализированные настройки.

Пример создания индекса в Elasticsearch:

  • Зайдите в  Elasticsearch и создайте индекс под названием “my_index”:
PUT /mi_indice

 

  • Добавьте в индекс “my_index” документ с уникальным ID :
PUT /mi_indice/_doc/1
{
  "name": "Juan Perez",
  "age": 30,
  "address": "Calle 123, Ciudad de México"
}

 

  • Найдите этот только что добавлены документ с помощью Elasticsearch API:
GET /mi_indice/_search
{
  "query": {
    "match": {
      "name": "Juan"
    }
  }
}

 

В данном случае мы ищем документ, содержащий “John” в поле “name” индекса “my_index”.

Таким образом, индексы в Elasticsearch – это структуры, используемые для хранения и поиска данных. Они могут быть настроены в соответствии с Вашими специфическими требованиями и вмещать миллионы документов .

 

Что такое конечные точки, привязанные к индексам?

Вот некоторые наиболее распространенные конечные точки Elasticsearch, связанные с индексами, но существует и множество других. Каждая из этих конечных точек может быть настроена с помощью дополнительных параметров в соответствии с требованиями Вашего приложения.

 

Создание индекса

Конечная точка: PUT /<index>.

Тело запроса содержит данные документа, который будет создан или обновлен в указанном индексе. Формат тела запроса должен быть JSON и соответствовать структуре отображения, определенной для индекса.

Пример тела запроса:

{
  "title": "Example Document",
  "description": "This is an example document for Elasticsearch",
  "tags": ["example", "elasticsearch"],
  "date": "2022-03-28T10:00:00Z"
}

 

Удаление индекса

Конечная точка: DELETE /<index>.

Эта конечная точка не требует тела запроса, вам нужно только указать индекс для удаления. Эта конечная точка удалит индекс и все связанные с ним документы.

 

Получение информации об индексе

Конечная точка: GET /<index>.

Эта конечная точка не требует тела запроса и отвечает информацией, связанной с указанным индексом.

 

Получение статистики об индексе

Конечная точка: GET /<index>/_stats.

Конечная точка возвращает JSON-объект, содержащий подробную статистику о предоставленном индексе, включая общее количество документов, размер индекса в байтах, количество шардов и реплик, а также другие важные данные, такие как количество операций индексирования, удаления и поиска, которые были выполнены над индексом.

Пример ответа:

{
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "_all": {
    "primaries": {
      "docs": {
        "count": 10000,
        "deleted": 0
      },
      "store": {
        "size_in_bytes": 2000000
      },
      "indexing": {
        "index_total": 20000,
        "index_time_in_millis": 10000
      }
    },
    "total": {
      "docs": {
        "count": 20000,
        "deleted": 0
      },
      "store": {
        "size_in_bytes": 4000000
      },
      "indexing": {
        "index_total": 40000,
        "index_time_in_millis": 20000
      }
    }
  }
}

 

Поиск документов в индексе

Конечная точка: GET /<index>/_search.

Эта конечная точка не требует объекта запроса. Она используется для поиска документов в определенном индексе с помощью поискового запроса, параметры которого указываются в URL.

Возможные параметры запроса для этой конечной точки следующие:

  • q: задает поисковый запрос в виде простой строки запроса. Например, q=elasticsearch будет искать документы, содержащие слово «elasticsearch» в любом поле.
  • size: задает максимальное количество документов, возвращаемых в ответе.
  • from: задает индекс первого документа, возвращаемого в ответе (полезно для пагинации).
  • sort: Указывает поле или поля, по которым следует сортировать результаты поиска.
  • _source: указывает поля, которые нужно включить или исключить из ответа.
  • aggregations: позволяет выполнять агрегацию результатов поиска.

 

Пример ответа:

{
  "took": 15,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 1.0,
    "hits": [
      {
        "_index": "my_index",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.0,
        "_source": {
          "field1": "elasticsearch",
          "field2": "kibana",
          "field3": "logstash"
        }
      },
      {
        "_index": "my_index",
        "_type": "_doc",
        "_id": "2",
        "_score": 0.5,
        "_source": {
          "field1": "elasticsearch",
          "field2": "logstash",
          "field3": "kibana"
        }
      }
    ]
  }
}

 

Обновление документа в индексе

  Конечная точка: POST /<index>/_update/<identifier>.

Эта конечная точка используется для обновления документов в индексе путем предоставления частичного документа, который содержит поля, подлежащие обновлению.

Параметры:

  • index: Имя индекса, содержащего обновляемый документ.
  • identifier: Уникальный идентификатор обновляемого документа.
  • wait_for_active_shards: (Необязательно) Количество активных шардов, которые должны быть доступны до завершения операции обновления.
  • routing: (Необязательно) Значение маршрутизации, которое используется для направления запроса обновления на определенный шард.

Этой конечной точке нужен объект запроса с информацией о документе, которую нужно обновить, например: Изменить свойство названия.

{
  "doc": {
    "name": "New Name"
  }
}

 

Сколько документов может быть привязано  к индексам Elasticsearch?

Количество документов, которые могут находиться в одном индексе в Elasticsearch, зависит от нескольких факторов, таких как размер документов, доступное оборудование, объем памяти и конфигурация Elasticsearch.

Теоретически Elasticsearch может обрабатывать миллиарды документов в одном индексе. Однако для удобства администрирования и повышения производительности лучше разделить индексы на более управляемые размеры.

Также важно отметить, что чем больше документов в индексе, тем больше ресурсов потребуется Elasticsearch для их индексации и поиска. Если индекс слишком велик для имеющегося оборудования, могут возникнуть проблемы с производительностью.

В общем, лучше разбить индексы на управляемые размеры и настроить конфигурацию Elasticsearch для оптимизации производительности и масштабируемости в соответствии с требованиями Вашего приложения.

 

Что такое процесс переиндексации и как он проходит?

Когда вы выполняете переиндексацию в Elasticsearch, Вы копируете данные из существующего индекса в новый. Переиндексация выполняется по разным причинам, например для оптимизации производительности, изменения структуры индекса, внесения изменений в конфигурацию и т. д.

При переиндексации документы из старого индекса копируются в новый. В некоторых случаях это может занять много времени и потребовать значительных ресурсов, особенно для больших наборов данных. Однако после завершения процесса переиндексации у Вас будет новый индекс, отражающий все необходимые изменения.

Среди распространенных причин переиндексации в Elasticsearch можно назвать следующие:

  • Изменение структуры индекса: Можно переиндексировать индекс для того, чтобы изменить сопоставление полей или добавить новые поля в существующий индекс.
  • Оптимизация производительности: Переиндексация позволяет повысить производительность поиска и индексирования за счет удаления ненужных документов или устаревших индексов.
  • Обновление версии Elasticsearch: Переиндексация может потребоваться при обновлении Elasticsearch до более поздней версии.
  •  Объединение индексов - несколько индексов могут быть объединены в один, что в разы упрощает администрирование и повышает производительность запросов.

 

Выполнив переиндексацию в Elasticsearch, Вы можете обновить и оптимизировать данные в индексе, чтобы повысить производительность и адаптировать его к требованиям конкретного приложения. Однако важно тщательно спланировать и протестировать процесс переиндексации в тестовой среде, прежде чем запускать его в производство.

 

Процесс переиндексации

Переиндексация в Elasticsearch - это процесс создания нового индекса и копирование данных из существующего индекса в новый индекс с возможными изменениями в его структуре. Это делается, в частности, для реорганизации данных, изменения структуры индекса и оптимизации производительности.

Процесс переиндексации выполняется в несколько этапов:

  • Создание нового индекса: Создается новый индекс с требуемой структурой.
  • Настройка источника данных: Настраивается источник данных, которым может быть существующий индекс или запрос, возвращающий документы.
  •  Конфигурация процесса переиндексации: Настраивается процесс переиндексации, который включает в себя источник данных и новый индекс.
  •  Выполнение процесса переиндексации: Запускается процесс переиндексации. Elasticsearch считывает документы из источника данных и записывает их в новый индекс.
  • Проверка процесса переиндексации: Проверяется, что все документы были переиндексированы правильно.

Важно отметить, что процесс переиндексации может быть дорогостоящим с точки зрения ресурсов и времени, особенно для больших массивов данных. Поэтому рекомендуется тщательно спланировать и протестировать процесс в тестовой среде, прежде чем выполнять переиндексацию в производстве.

Существует конечная точка, которая помогает нам выполнить этот процесс, и я собираюсь показать Вам, как она используется:

 

Конечная точка: POST /_reindex

Тело запроса:

Чтобы переиндексировать индекс, вам нужно предоставить тело запроса, в котором указываются исходный и конечный индексы, а также любые другие параметры, которые Вы хотите использовать. Тело запроса может быть довольно сложным, но вот простой пример, который переиндексирует все документы из индекса под названием «my_index» в новый индекс «my_index_v2»:

{
  "source": {
    "index": "my_index"
  },
  "dest": {
    "index": "my_index_v2"
  }

}

 

Дополнительные параметры

  • wait_for_completion: Если установлено значение false,значение  запроса вернется немедленно, процесс переиндексации продолжится в фоновом режиме. В противном случае запрос будет блокироваться до завершения переиндексации.
  • refresh: Если установлено значение true, индекс назначения будет обновляться после индексации каждой партии документов. Это может быть полезно, если Вы хотите выполнять поиск по новому индексу, пока он переиндексируется.
  • requests_per_second: Максимальное количество запросов в секунду, отправляемых в Elasticsearch во время переиндексации. Это можно использовать для ограничения влияния процесса переиндексации на кластер Elasticsearch.

 

Пример ответа:

{
  "task": {
    "node": "ABC123",
    "id": 12345,
    "type": "transport",
    "action": "indices:data/write/reindex",
    "start_time_in_millis": 1621234567890,
    "running_time_in_nanos": 1234567890,
    "cancellable": true
  }
}

 

Изменяются ли результаты поиска с конечной точкой _search после переиндексации?

Если ответить коротко, то да.

При выполнении переиндексации в Elasticsearch возможно изменение результатов поиска при использовании конечной точки _search.

Это связано с тем, что процесс переиндексации включает в себя создание нового индекса и копирование документов из исходного индекса в новый с возможными изменениями в процессе. Поэтому, если в структуру данных были внесены изменения, например, удалены или добавлены новые поля, или были внесены изменения в существующие данные, результаты поиска могут измениться после переиндексации.

Также важно отметить, что процесс переиндексации может занять время, зависящее от размера индекса и конфигурации Elasticsearch. В процессе переиндексации некоторые документы могут быть недоступны для поиска до завершения всех этапов процесса.

Поэтому после переиндексации рекомендуется провести всестороннее тестирование для того, чтобы убедиться, что результаты поиска последовательны и полностью соответствуют ожиданиям приложения.

 

Проблемы, связанные с переиндексацией

После переиндексации в Elasticsearch в новом индексе могут возникнуть ошибки поиска. Вот некоторые рекомендации по устранению подобных проблем:

  • Убедитесь, что документы были проиндексированы правильно: Некоторые документы могли быть неправильно проиндексированы. Убедитесь, что документы проиндексированы правильно и доступны для поиска.
  • Убедитесь, что поля проиндексированы правильно: Если в процессе переиндексации Вы добавили новые поля, убедитесь в том, что они были проиндексированы правильно и доступны для поиска.
  • Проверьте синтаксис поискового запроса: Если в процессе переиндексации была изменена структура данных, возможно, потребуется скорректировать синтаксис поисковых запросов для того, чтобы они соответствовали новой структуре данных.
  • Проверьте настройки анализа: Если в процессе переиндексации Вы добавили новые текстовые поля, Вам может потребоваться изменить настройки анализа, чтобы они соответствовали новым текстовым полям. Настройки анализа влияют на то, как Elasticsearch индексирует и ищет текст в индексе.
  • Выполняйте поисковые запросы на нескольких узлах: Если Вы используете кластер Elasticsearch, в процессе переиндексации могут возникнуть несоответствия данных между узлами. Запустите поисковые запросы на нескольких узлах, чтобы убедиться в согласованности результатов по всему кластеру.
  • Проверьте журналы Elasticsearch: Если после выполнения описанных выше действий у Вас все еще возникают проблемы с поиском, проверьте журналы Elasticsearch для того, чтобы получить подробную информацию о любых проблемах с индексом или поиском. Журналы Elasticsearch могут предоставить ценную информацию для устранения проблем с поиском после переиндексации.

 

Что такое псевдонимы?

Псевдоним - это способ ссылки на один или несколько индексов с помощью одного имени. Он полезен в ситуациях, когда Вам нужно получить доступ к нескольким индексам одновременно, поскольку позволяет ссылаться на них более простым и упорядоченным способом. Псевдонимы также можно использовать для переименования существующего индекса, переиндексации индекса и изменения количества шардов и/или реплик, не затрагивая приложения, использующие этот индекс.

Использование индексов и псевдонимов в Elasticsearch необходимо для эффективной организации данных и доступа к ним. Индексы являются основной единицей хранения данных, а псевдонимы позволяют ссылаться на один или несколько индексов с одним именем и выполнять над ними совместные действия.

 

Какие конечные точки связаны с псевдонимами?

Создать псевдоним для индекса: PUT /<index>/_aliases/<alias>
Получить информацию о псевдониме: GET /_aliases/<alias>
Пролистать список псевдонимов: GET /_alias
Создать или заменить сразу несколько псевдонимов: POST /_aliases
Удалить псевдоним: DELETE /<index>/_alias/<alias>

 

Заключение

Как я уже неоднократно упоминал, эта статья не является подробным руководством по работе с Elasticsearch, но она обязательно разрешит некоторые Ваши сомнения, которые могут возникнуть в процессе изучения  этой новой интересной технологии.

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Spring и Elasticsearch — Встраивание функции поиска в приложение
Следующая статья →
Как создать приложение для поиска с автозаполнением с помощью Elasticsearch и NestJS

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • «Лента» – первая по величине сеть гипермаркетов и четвертая среди крупнейших розничных сетей страны. Компания была основана в 1993 г. в Санкт-Петербурге.

    «Лента» управляет 249 гипермаркетами в 88 городах России и 131 супермаркетом в Москве, Санкт-Петербурге, Сибири, Уральском и Центральном регионах с общей торговой площадью около 1 494 тыс. кв. м. Средняя торговая площадь одного гипермаркета «Лента» составляет около 5 500 кв.м, средняя площадь супермаркета – 800 кв.м. Компания оперирует двенадцатью распределительными центрами. Штат компании – около 50, 5 тыс. человек.

  • Группа компаний "Дёке" производит товары для внешней отделки загородных домов. Ассортимент включает виниловый сайдинг, фасадные панели, водосточные системы, чердачные лестницы и гибкую битумную черепицу. Продукция Дёке вызывает гордость у сотрудников и партнеров компании.

  • ООО «Модум-Транс» — независимый оператор грузовых железнодорожных перевозок, лидирующий по количеству инновационного парка на сети РЖД.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.