Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Обработка контента с помощью Elastic-коннекторов ›Справочник по коннекторам

Справочник по коннектору Elastic Oracle

Справочник по управляемому коннектору Elastic

Просмотр справки по управляемому коннектору Elastic
Доступность и предварительные требования

Этот коннектор доступен в Elastic Cloud начиная с версии 8.12.0. Для использования этого коннектора, выполните все требования к управляемым коннекторам.

Создание коннектора Oracle

Использование пользовательского интерфейса

Для создания нового коннектора Oracle:

  1. В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы в главном меню или используйте поле глобального поиска.
  2. Следуйте инструкциям по созданию нового родного коннектора Oracle.

Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.

Использование API

Вы можете использовать Elasticsearch API для создания коннекторов для создания нового родного коннектора Oracle.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
    is_native=True,
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
  is_native: true,
});
console.log(response);
PUT _connector/my-oracle-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Oracle",
  "service_type": "oracle",
  "is_native": true
}
Вам также потребуется создать API-ключ для использования коннектором.

Пользователю требуются права кластера manage_api_key, manage_connector и write_connector_secrets для программированного создания API-ключей.

Для создания API-ключа для коннектора:

  1. Выполните следующую команду, заменив значения в указанных местах. Обратите внимание на значения id и encoded, возвращаемые ответом:

    resp = client.security.create_api_key(
        name="my-connector-api-key",
        role_descriptors={
            "my-connector-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "my-index_name",
                            ".search-acl-filter-my-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "my-connector-api-key",
      role_descriptors: {
        "my-connector-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Используйте значение encoded для хранения секрета коннектора и обратите внимание на значение id, возвращаемое ответом:

    resp = client.perform_request(
        "POST",
        "/_connector/_secret",
        headers={"Content-Type": "application/json"},
        body={
            "value": "encoded_api_key"
        },
    )
    print(resp)
    const response = await client.transport.request({
      method: "POST",
      path: "/_connector/_secret",
      body: {
        value: "encoded_api_key",
      },
    });
    console.log(response);
    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. Используйте API-ключ id и секрет коннектора id для обновления коннектора:

    resp = client.connector.update_api_key_id(
        connector_id="my_connector_id>",
        api_key_id="API key_id",
        api_key_secret_id="secret_id",
    )
    print(resp)
    const response = await client.connector.updateApiKeyId({
      connector_id: "my_connector_id>",
      api_key_id: "API key_id",
      api_key_secret_id: "secret_id",
    });
    console.log(response);
    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

Подробную информацию обо всех доступных API коннекторов см. в документации Elasticsearch API.

Использование

Для использования этого коннектора в качестве управляемого коннектора, см. Управляемые коннекторы Elastic.

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

Защищённое соединение

Для настройки защищённого соединения служба Oracle должна быть установлена на системе, на которой работает коннектор.

Выполните следующие шаги:

  1. Установите параметр oracle_home в каталог домашней страницы Oracle. Если файлы конфигурации находятся не в стандартном расположении, установите параметр wallet_configuration_path.
  2. Создайте каталог для хранения кошелька.

    $ mkdir $ORACLE_HOME/ssl_wallet
  3. Создайте файл с именем sqlnet.ora в каталоге $ORACLE_HOME/network/admin и добавьте в него следующее содержимое:

    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet)))
    SSL_CLIENT_AUTHENTICATION = FALSE
    SSL_VERSION = 1.0
    SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
    SSL_SERVER_DN_MATCH = ON
  4. Выполните следующие команды для создания кошелька и прикрепления сертификата SSL. Замените имя файла своим именем файла.

    $ orapki wallet create -wallet path-to-oracle-home/ssl_wallet -auto_login_only
    $ orapki wallet add -wallet path-to-oracle-home/ssl_wallet -trusted_cert -cert path-to-oracle-home/ssl_wallet/root_ca.pem -auto_login_only

Дополнительную информацию см. в этой документации Amazon RDS о SSL для Oracle. Документация Oracle: https://docs.oracle.com/database/121/DBSEG/asossl.htm#DBSEG070.

Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.

Совместимость

Этот коннектор совместим с версиями Oracle Database 18c, 19c и 21c.

Конфигурация

Используйте следующие поля конфигурации для настройки коннектора:

Источник подключения
Выпадающий список для определения подключения к источнику Oracle: Service Name или SID. Значение по умолчанию - SID. Выберите вариант Имя службы, если подключаетесь к подключаемой базе данных.
SID
SID базы данных.
Имя службы
Имя службы базы данных.
Хост
IP-адрес или имя хоста сервера базы данных Oracle. Значение по умолчанию - 127.0.0.1.
Порт
Номер порта сервера базы данных Oracle.
Имя пользователя
Имя пользователя для подключения к серверу базы данных Oracle.
Пароль
Пароль для подключения к серверу базы данных Oracle.
Список таблиц, разделённый запятыми

Список таблиц, разделённый запятыми, для отслеживания изменений. Значение по умолчанию - *. Примеры:

  • TABLE_1, TABLE_2
  • *
Документы и синхронизации
  • Таблицы без первичного ключа пропускаются.
  • Если значение номера изменения системы (SCN) таблицы не находится в диапазоне между min(SCN) и max(SCN) значениями таблицы SMON_SCN_TIME, коннектор не сможет получить время последнего обновления. Данные будут индексироваться в каждой синхронизации. Более подробную информацию см. в данной теме обсуждения.
  • Пользователь sys не поддерживается, поскольку содержит более 1000 системных таблиц. Если вам необходимо работать с пользователем sys, используйте либо sysdba, либо sysoper и настройте это в качестве имени пользователя.
  • Файлы размером более 10 МБ не будут извлечены.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию.
Правила синхронизации

Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.

Расширенные правила синхронизации недоступны для этого коннектора в данной версии. В настоящее время фильтрация управляется конвейерами индексирования.

Известные проблемы

Для этого коннектора известных проблем нет.

См. Известные проблемы для любых проблем, влияющих на все коннекторы.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот коннектор разработан с использованием фреймворка коннекторов Elastic.

Этот коннектор использует исходный код универсального коннектора для баз данных (ветка 8.17, совместима с Elastic 8.17).

Просмотреть дополнительный код, специфичный для этого источника данных (ветка 8.17, совместима с Elastic 8.17).

Справочник по самостоятельно управляемому коннектору

Просмотр справки по самостоятельно управляемому коннектору
Доступность и предварительные требования

Этот коннектор доступен как управляемый пользователем управляемый пользователем коннектор. Этот управляемый пользователем коннектор совместим с версиями Elastic 8.6.0+. Для использования этого коннектора, выполните все требования к управляемым пользователем коннекторам.

Создать коннектор Oracle

Использование интерфейса

Чтобы создать новый коннектор Oracle:

  1. В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям, чтобы создать новый Oracle управляемый пользователем коннектор.

Использование API

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

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
});
console.log(response);
PUT _connector/my-oracle-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from Oracle",
  "service_type": "oracle"
}
Вам также потребуется создать ключ API для использования коннектором.

Пользователю требуются права кластера manage_api_key, manage_connector и write_connector_secrets для программного создания ключей API.

Чтобы создать ключ API для коннектора:

  1. Выполните следующую команду, заменив значения там, где это указано. Обратите внимание на encoded возвращаемые значения из ответа:

    resp = client.security.create_api_key(
        name="connector_name-connector-api-key",
        role_descriptors={
            "connector_name-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "index_name",
                            ".search-acl-filter-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "connector_name-connector-api-key",
      role_descriptors: {
        "connector_name-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "connector_name-connector-api-key",
      "role_descriptors": {
        "connector_name-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Обновите свой config.yml файл с ключом API encoded значением.

Обратитесь к документации API Elasticsearch для получения подробной информации обо всех доступных API коннекторов.

Использование

Чтобы использовать этот коннектор как управляемый пользователем коннектор, см. Управляемые пользователем коннекторы.

Пользователю базы данных необходимы права CONNECT и DBA, и он должен быть владельцем индексируемых таблиц.

Защищенное подключение

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

Выполните эти шаги:

  1. Установите параметр oracle_home в каталог домашней директории Oracle. Если конфигурационные файлы находятся не по умолчанию, установите параметр wallet_configuration_path.
  2. Создайте директорию для хранения кошелька.

    $ mkdir $ORACLE_HOME/ssl_wallet
  3. Создайте файл с именем sqlnet.ora в $ORACLE_HOME/network/admin и добавьте следующее содержимое:

    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet)))
    SSL_CLIENT_AUTHENTICATION = FALSE
    SSL_VERSION = 1.0
    SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
    SSL_SERVER_DN_MATCH = ON
  4. Выполните следующие команды для создания кошелька и добавления сертификата SSL. Замените имя файла своим именем файла.

    $ orapki wallet create -wallet path-to-oracle-home/ssl_wallet -auto_login_only
    $ orapki wallet add -wallet path-to-oracle-home/ssl_wallet -trusted_cert -cert path-to-oracle-home/ssl_wallet/root_ca.pem -auto_login_only

Дополнительную информацию см. в этом документации Amazon RDS об Oracle SSL. Документация Oracle: https://docs.oracle.com/database/121/DBSEG/asossl.htm#DBSEG070.

Для дополнительных операций см. Интерфейс коннекторов в Kibana.

Совместимость

Версии Oracle Database 18c, 19c и 21c совместимы с рамками коннекторов Elastic.

Конфигурация

При использовании потока работы с управляемым пользователем коннектором, эти поля будут использовать значения по умолчанию, заданные в коде источника коннектора. Обратите внимание, что этот источник данных использует generic_database.py код источника коннектора. Дополнительный код, специфичный для этого источника данных, см. в oracle.py.

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

Используйте следующие конфигурационные поля для настройки коннектора:

connection_source
Определяет источник Oracle: Имя службы или SID. Значение по умолчанию — SID. Выберите Имя службы, если подключаетесь к базе данных с разделяемыми схемами.
sid
SID базы данных.
service_name
Имя службы для базы данных.
host
IP-адрес или имя хоста сервера базы данных Oracle. Значение по умолчанию — 127.0.0.1.
port
Номер порта сервера базы данных Oracle.
username
Имя пользователя для подключения к серверу базы данных Oracle.
password
Пароль для подключения к серверу базы данных Oracle.
tables

Список таблиц, разделенных запятыми, которые отслеживаются для изменений. Значение по умолчанию — *. Примеры:

  • TABLE_1, TABLE_2
  • *
oracle_protocol
Протокол, используемый коннектором для установления соединения. Значение по умолчанию — TCP. Для защищенных соединений используйте TCPS.
oracle_home
Путь к каталогу домашней директории Oracle для запуска коннектора в режиме толстого клиента для защищенного подключения. Для незащищенных подключений оставьте это поле пустым.
wallet_configuration_path
Путь к файлам конфигурации кошелька SSL.
fetch_size
Количество строк для извлечения за один запрос. Значение по умолчанию — 50.
retry_count
Количество попыток повторного подключения после неудачного запроса к базе данных Oracle. Значение по умолчанию — 3.
Развертывание с помощью Docker

Вы можете развернуть коннектор Oracle как управляемый пользователем коннектор с помощью Docker. Следуйте этим инструкциям.

Шаг 1: Скачать пример файла конфигурации

Загрузите файл примера конфигурации. Вы можете загрузить его вручную или выполнить следующую команду:

curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml

Не забудьте обновить значение аргумента --output, если имя вашей директории отличается или вы хотите использовать другое имя файла конфигурации.

Шаг 2: Обновить файл конфигурации для вашего управляемого пользователем коннектора

Обновите файл конфигурации следующими настройками, чтобы соответствовать вашей среде:

  • elasticsearch.host
  • elasticsearch.api_key
  • connectors

Если вы запускаете службу коннектора против Dockerized версии Elasticsearch и Kibana, ваш файл конфигурации будет выглядеть так:

# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>

connectors:
  -
    connector_id: <CONNECTOR_ID_FROM_KIBANA>
    service_type: oracle
    api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead

Использование elasticsearch.api_key является рекомендуемым методом аутентификации. Однако, вы также можете использовать elasticsearch.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.

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

Шаг 3: Запустить образ Docker

Запустите образ Docker со службой коннектора, используя следующую команду:

docker run \
-v ~/connectors-config:/config \
--network "elastic" \
--tty \
--rm \
docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \
/app/bin/elastic-ingest \
-c /config/config.yml

См. DOCKER.md в репозитории elastic/connectors для получения более подробной информации.

Найдите все доступные образы Docker в официальном репозитории.

У нас также есть быстрый старт с управляемым пользователем вариантом с помощью Docker Compose, чтобы сразу запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к этому README в репозитории elastic/connectors для получения дополнительной информации.

Документы и синхронизация
  • Таблицы без определённого первичного ключа пропускаются.
  • Если значение номера изменения системы (SCN) таблицы не находится в диапазоне значений min(SCN) и max(SCN) таблицы SMON_SCN_TIME, соединитель не сможет извлечь время последнего обновления. Данные будут поэтому индексироваться при каждом синхронизировании. Более подробная информация представлена в следующей дискуссионной теме.
  • Пользователь sys не поддерживается, так как содержит более 1000 системных таблиц. Если вам нужно работать с пользователем sys, используйте либо sysdba, либо sysoper и настройте это значение в качестве имени пользователя.
  • Файлы размером более 10 МБ не будут извлечены.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Правила синхронизации

Основные правила синхронизации одинаковы для всех соединителей и доступны по умолчанию.

Расширенные правила синхронизации для этого соединителя в данной версии недоступны. В настоящее время фильтрация контролируется конвейерами индексирования.

Операции с самостоятельным соединителем
Тестирование от начала до конца

Фреймворк соединителя позволяет операторам запускать функциональные тесты против реального источника данных. Более подробную информацию см. в разделе Тестирование соединителя.

Чтобы выполнить функциональный тест для соединителя Oracle, выполните следующую команду:

make ftest NAME=oracle

По умолчанию будет использоваться набор данных среднего размера. Чтобы ускорить тест, добавьте аргумент DATA_SIZE=small:

make ftest NAME=oracle DATA_SIZE=small
Известные проблемы

Для этого соединителя известных проблем нет.

См. Известные проблемы для проблем, влияющих на все соединители.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот соединитель создан с помощью фреймворка соединителей Elastic.

Этот соединитель использует исходный код общего соединителя баз данных (ветка 8.17, совместимая с Elastic 8.17).

Просмотреть дополнительный код, специфичный для этого источника данных (ветка 8.17, совместимая с Elastic 8.17).

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-oracle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API