Справочник по коннектору Elastic Oracle
Справочник по управляемому коннектору Elastic
Просмотр справки по управляемому коннектору Elastic
Доступность и предварительные требования
Этот коннектор доступен в Elastic Cloud начиная с версии 8.12.0. Для использования этого коннектора, выполните все требования к управляемым коннекторам.
Создание коннектора Oracle
Использование пользовательского интерфейса
Для создания нового коннектора Oracle:
- В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы в главном меню или используйте поле глобального поиска.
- Следуйте инструкциям по созданию нового родного коннектора 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-ключа для коннектора:
-
Выполните следующую команду, заменив значения в указанных местах. Обратите внимание на значения
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 } ] } } } -
Используйте значение
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" } -
Используйте 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 должна быть установлена на системе, на которой работает коннектор.
Выполните следующие шаги:
- Установите параметр
oracle_homeв каталог домашней страницы Oracle. Если файлы конфигурации находятся не в стандартном расположении, установите параметрwallet_configuration_path. -
Создайте каталог для хранения кошелька.
$ mkdir $ORACLE_HOME/ssl_wallet
-
Создайте файл с именем
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
-
Выполните следующие команды для создания кошелька и прикрепления сертификата 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:
- В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или используйте поле глобального поиска.
- Следуйте инструкциям, чтобы создать новый 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 для коннектора:
-
Выполните следующую команду, заменив значения там, где это указано. Обратите внимание на
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 } ] } } } - Обновите свой
config.ymlфайл с ключом APIencodedзначением.
Обратитесь к документации API Elasticsearch для получения подробной информации обо всех доступных API коннекторов.
Использование
Чтобы использовать этот коннектор как управляемый пользователем коннектор, см. Управляемые пользователем коннекторы.
Пользователю базы данных необходимы права CONNECT и DBA, и он должен быть владельцем индексируемых таблиц.
Защищенное подключение
Для настройки защищенного подключения служба Oracle должна быть установлена на системе, где работает коннектор.
Выполните эти шаги:
- Установите параметр
oracle_homeв каталог домашней директории Oracle. Если конфигурационные файлы находятся не по умолчанию, установите параметрwallet_configuration_path. -
Создайте директорию для хранения кошелька.
$ mkdir $ORACLE_HOME/ssl_wallet
-
Создайте файл с именем
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
-
Выполните следующие команды для создания кошелька и добавления сертификата 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